通过AWS Java API,我正在从头开始构建一个新的EC2实例。我可以创建一个新的VPC,子网和安全组,然后将它们传递给RunInstanceRequest到API的runInstance(),然后我返回一个正在运行的EC2实例。
我还没想到的是如何获得分配给这个新EC2实例的公共IP。我已经浏览了文档,看起来我是internetGateway,我可以创建,但无法弄清楚如何将它与VPC或实例本身相关联。
在RunInstance对象上,我找到了.withNetworkInterfaces方法,它接受了一个NetworkInstanceSpecfication,它有一个用于启用公共id的标志,但这要求一个deviceId(int),我不知道如何构建或创建
是否有人有任何建议或材料,他们也可以指出我,这可以帮助解决我的问题?
我是否需要为此功能创建NAT,路由表,弹性IP等?
答案 0 :(得分:0)
初学者,请学习VPC scenarios。
您需要做的是将internetGateway IGW放入指定的VPC路由表中。
默认情况下,所有新子网Auto-assign Public IP
属性均为false。要使子网为Ec2实例分配公共IP地址,必须使用ModifySubnetAttribute
并将MapPublicIpOnLaunch
设置为true。
从那时起,子网中启动的所有EC2实例都将自动分配公共IP地址。