当我在 AWS 控制台中启动实例时,我可以将“自动分配公共 IP”设置为 true,并且将为新创建的实例分配池中的公共 IP 地址。
现在假设我已经启动了这个设置为 false 的实例,并且想要为这个实例分配公共 IP。与第一种情况相同的公共 IP,而不是弹性 IP。
PS我知道我可以启动新实例并关闭旧实例。我对分配给已经运行的人特别感兴趣。
当我在 AWS 控制台中启动实例时,我可以将“自动分配公共 IP”设置为 true,并且将为新创建的实例分配池中的公共 IP 地址。
现在假设我已经启动了这个设置为 false 的实例,并且想要为这个实例分配公共 IP。与第一种情况相同的公共 IP,而不是弹性 IP。
PS我知道我可以启动新实例并关闭旧实例。我对分配给已经运行的人特别感兴趣。
您在没有公共 IP 的情况下启动的实例将保持没有公共 IP,因为它只能在您启动实例时分配。如果您在启动实例时选择不使用公共 IP,即使打开子网
auto assign public IP
也不会为您的实例分配公共 IP。我知道的唯一方法是在启动实例
assign a public IP
之前进行选择,或者将子网设置为自动分配公共 IP,只有在您启动新实例时才会这样做。assign a public IP
总结一下:除非您使用 EIP,否则在启动该实例后是不可能的。之后要更正它,请关闭您的原始服务器,启动一个启用了自动分配公共 IP 并附加现有卷的新服务器。
然后,您可以丢弃原始实例。
如果您使用 ELB 和 Autoscaling,动态创建实例并对实例进行压力测试是很困难的。这种情况下的一种解决方案:
选择 EC2 实例 > 操作 > 网络 > 管理 IP 地址。然后使用选项“添加或编辑 IPv4 公共 IP 将弹性 IP 分配到此实例或网络接口”。
现在您将拥有具有公共 IP 的 EC2 实例,而无需重新启动/删除 EC2 实例。
假设您的实例在 VPC 中运行,您可以创建一个分配有公共 IP 的弹性网络接口(ENI),然后将该 ENI 与您的实例相关联,而无需创建新的。
在运行时为实例分配公共 IP:
这在 2016 年是不可能的,但现在 AWS 当然允许它: