Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在没有公共ip的情况下运行AWS Java SDK代码_Java_Amazon Web Services_Amazon Ec2_Amazon Vpc - Fatal编程技术网

在没有公共ip的情况下运行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

我们是否需要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! [爪哇]===========================================

 [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实例和路由的更多讨论,请参见