从AWS API创建新的EC2实例,我如何获得公共IP

时间:2017-04-03 16:28:06

标签: java amazon-web-services amazon-ec2 aws-sdk

通过AWS Java API,我正在从头开始构建一个新的EC2实例。我可以创建一个新的VPC,子网和安全组,然后将它们传递给RunInstanceRequest到API的runInstance(),然后我返回一个正在运行的EC2实例。

我还没想到的是如何获得分配给这个新EC2实例的公共IP。我已经浏览了文档,看起来我是internetGateway,我可以创建,但无法弄清楚如何将它与VPC或实例本身相关联。

在RunInstance对象上,我找到了.withNetworkInterfaces方法,它接受了一个NetworkInstanceSpecfication,它有一个用于启用公共id的标志,但这要求一个deviceId(int),我不知道如何构建或创建

是否有人有任何建议或材料,他们也可以指出我,这可以帮助解决我的问题?

我是否需要为此功能创建NAT,路由表,弹性IP等?

1 个答案:

答案 0 :(得分:0)

初学者,请学习VPC scenarios

您需要做的是将internetGateway IGW放入指定的VPC路由表中。

默认情况下,所有新子网Auto-assign Public IP属性均为false。要使子网为Ec2实例分配公共IP地址,必须使用ModifySubnetAttribute并将MapPublicIpOnLaunch设置为true。

从那时起,子网中启动的所有EC2实例都将自动分配公共IP地址。