在没有公共ip的情况下运行AWS Java SDK代码
我们是否需要internet连接才能从AWS的实例中使用AWS Java SDK 我有一个在VPC中运行的实例,我没有分配任何公共IP地址 根据我最初的调查发现,要从Amazon中的这个实例运行基于AWS Java SDK的Java程序,该实例需要具有internet连接 运行AWS Java SDK附带的示例程序AwsConsoleApp时,我看到以下错误: [javac]/home/ubuntu/aws-java-sdk-1.8.9.1/samples/AwsConsoleApp/build.xml:12:警告:未设置“includeantruntime”,默认为build.sysclasspath=last;对于可重复的生成,将设置为false [爪哇]=========================================== [java]欢迎使用AWS java SDK! [爪哇]===========================================在没有公共ip的情况下运行AWS Java SDK代码,java,amazon-web-services,amazon-ec2,amazon-vpc,Java,Amazon Web Services,Amazon Ec2,Amazon Vpc,我们是否需要internet连接才能从AWS的实例中使用AWS Java SDK 我有一个在VPC中运行的实例,我没有分配任何公共IP地址 根据我最初的调查发现,要从Amazon中的这个实例运行基于AWS Java SDK的Java程序,该实例需要具有internet连接 运行AWS Java SDK附带的示例程序AwsConsoleApp时,我看到以下错误: [javac]/home/ubuntu/aws-java-sdk-1.8.9.1/samples/AwsConsoleApp/build
[java] Sep 09, 2014 9:26:49 PM com.amazonaws.http.AmazonHttpClient executeHelper
[java] INFO: Unable to execute HTTP request: Connect to ec2.us-east-1.amazonaws.com:443 timed out
[java] org.apache.http.conn.ConnectTimeoutException: Connect to ec2.us-east-1.amazonaws.com:443 timed out
[java] at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:551)
[java] at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
[java] at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
[java] at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:645)
[java] at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:480)
[java] at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
[java] at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
[java] at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:464)
[java] at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:273)
[java] at com.amazonaws.services.ec2.AmazonEC2Client.invoke(AmazonEC2Client.java:9320)
[java] at com.amazonaws.services.ec2.AmazonEC2Client.describeAvailabilityZones(AmazonEC2Client.java:359)
[java] at com.amazonaws.services.ec2.AmazonEC2Client.describeAvailabilityZones(AmazonEC2Client.java:8045)
[java] at AwsConsoleApp.main(Unknown Source)
[java]
我发现这与Amazon提供EC2Metadata服务的方式相反
有没有办法在不提供AWS实例公共IP的情况下运行这些Java程序 您需要Internet连接,但不需要通过分配给运行代码的实例的公共IP进行连接 公共IP可以位于NAT实例上,它允许VPC中的其他计算机访问Internet,但不允许Internet上的系统访问您的私有实例 您在虚拟私有云(VPC)中启动到私有子网的实例无法与Internet通信。您可以选择在VPC中的公用子网中使用网络地址转换(NAT)实例,以使专用子网中的实例能够启动到Internet的出站流量,但防止实例接收由Internet上的某人启动的入站流量 有关“专用”与“公用”子网、NAT实例和路由的更多讨论,请参见