如何用常规的公共IP地址而不是EIP指定网络接口?

时间:2018-10-29 14:35:51

标签: amazon-web-services amazon-ec2 amazon-cloudformation

我有一个Cloudformation模板,其中包括AWS::EC2::InstanceAWS::EC2::NetworkInterfaceAWS::EC2::EIP。它们相互连接,网络接口获取EIP,然后连接到实例,一切正常。

现在,我想对其进行更改,以便模板不创建EIP,而仅创建常规的随机公共IP地址。我可以通过删除EIP资源并在网络接口中指定AssociatePublicIpAddress选项来实现。问题是,该选项仅对嵌入式NetworkInterface属性类型有效,而对AWS::EC2::NetworkInterface资源无效。网络接口在其他地方(在AWS::EC2::Route资源中)用作参考,因此我无法将其转换为嵌入式类型。我该怎么办?

EC2 instance docs

NetworkInterface embedded property

NetworkInterface resource

1 个答案:

答案 0 :(得分:0)

可以将弹性网络接口(ENI)设置为从(非EIP)池中获取公共IP地址,但这仅在将ENI附加到实例且该实例正在启动过程中才发生。该地址直到实例启动才获得,并在实例停止时释放。如果实例再次启动,则ENI将从池中获取其他公共地址。每当实例停止并启动时,该过程就会重复。

具有来自池中的公共IP的ENI不适合此用例。

如果您需要的EIP超出了默认限制所允许的数量,则可以Bits Types并描述您的用例。附加到任何正在运行的实例的EIP是免费的,只要它是附加到该实例的唯一EIP。