amazon-ec2 - 由于超时,无法从 EC2 实例连接到 SQS

我看到的错误是:无法执行 http 请求:连接到 sqs.us-east-1.amazonaws.com:443

org.apache.http.conn.ConnectTimeoutException: Connect to sqs.us-east-1.amazonaws.com:443 [sqs.us-east-1.amazonaws.com/54.239.27.172] failed: connect timed out
        at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:151)
        at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:359)
        at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.amazonaws.http.conn.ClientConnectionManagerFactory$Handler.invoke(ClientConnectionManagerFactory.java:76)
        at com.amazonaws.http.conn.$Proxy54.connect(Unknown Source)
        at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:381)
        at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237)
        at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)
        at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
        at com.amazonaws.http.apache.client.impl.SdkHttpClient.execute(SdkHttpClient.java:72)
        at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1181)
        at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1030)
        ... 21 common frames omitted

我的安全组的出站规则是: 所有流量 10.0.0.0/8

我无法更改出站规则以允许所有互联网 - 这是一个限制。

知道我们如何做到这一点吗?

最佳答案

Amazon SQS 是一项基于 Internet 的服务。连接到 Amazon SQS Endpoint (sqs.us-east-1.amazonaws.com),Amazon EC2 实例需要访问 Internet。

您的 Amazon EC2 实例位于私有(private)子网中,这意味着它无法直接访问互联网。因此,您需要:

  • 要么 NAT Instance或 NAT Gateway在 VPC 的公共(public)子网中
  • 与私有(private)子网关联的路由表,将互联网绑定(bind)流量路由到 NAT 实例或 NAT 网关

https://stackoverflow.com/questions/44156566/

相关文章:

c# - C# 中的匿名类

Python 3.6.1 - 权限错误 : [Errno 13] Permission denied

css - PrimeNG - 如何改变 p-growl 风格

c# - 为什么 csv 文件在导出时不显示特殊字符?

python - 为什么 'WriteOnlyWorksheet' 对象没有属性 'cell' ?

c# - 在 Canvas 上画圆

Scala - 查找列表当前元素的确切索引

swagger - 在响应文本中显示换行符

angular - 如何截断 typescript 中的数字

amazon-web-services - 使用 Laravel 5.3 的 Amazon SES