我在 EC2 上运行一个 ubuntu AMI。是否可以在不终止并重新启动的情况下为正在运行的 EC2 实例分配/请求新的公共(public) IP 地址?请注意,我对在这里使用弹性 IP 功能不感兴趣,我只想使用由 EC2 分配的常规随机公共(public) IP 地址。
最佳答案
更新
正如 Alex B 在评论中指出的那样,AWS EC2 实例现在按秒计费,最短计费周期为 1 分钟。这是一个巨大且受欢迎的改进。这意味着启动和停止实例应该刷新 IP,而不会增加额外成本。
需要牢记的一件重要事情是,按秒计费仅适用于 Amazon Linux 和 Ubuntu 实例。其他操作系统和以前一样按小时计费。在这些情况下,下面解释的原始方法可能是最佳选择。
停止和启动实例是更改 IP 的一种方式,但它不是最快的,甚至不是最便宜的,但它确实符合您避免使用弹性 IP 的标准。
从计费角度来看,停止和启动实例与终止/重新启动实例相同。
Pricing is per instance-hour consumed for each instance, from the time an instance is launched until it is terminated or stopped. Each partial instance-hour consumed will be billed as a full hour. http://aws.amazon.com/ec2/pricing/
这意味着,如果您启动一个实例,半小时后将其停止,然后再次启动并运行半小时,然后再次停止,那一小时,您实际上需要支付费用使用两个小时。
在这种情况下,弹性 IP 很可能是更好的解决方案,但弹性 IP 的额外成本是大多数人想要避免的。我们实际上并不想要一个固定的 IP。我们只想要一个新的。为每个实例支付唯一的 IP 对此没有意义。有趣的是,我们不需要为每个实例分配一个 EIP 来释放/更新实例的外部 IP。我们只需要一个用于整个 VPC。
当你为一个实例分配一个 EIP 时,旧的 IP 就完全消失了,释放到虚无中。当您从实例中删除 EIP 时,实例将被迫从池中请求一个新的外部 IP。
将单个弹性 IP 附加到俄勒冈地区 (us-west-2) 中的实例是免费的,只要它附加到某物即可。如果未附加,坐在那里的费用为 0.05 美元/小时。
每月前 100 个 IP 重新映射是免费的。对我们来说,这相当于 50 次免费 IP 刷新(1 次重新映射用于发布,1 次用于更新)。如果您突破 100 次重新映射限制,价格会迅速上涨,达到 0.10 美元/重新映射(或 0.20 美元/IP 刷新),因此请尽量保持跟踪。 http://aws.amazon.com/ec2/pricing/
长话短说
免费的 EIP 驱动的解决方案?整个 VPC 的单个 EIP,分配给单个实例。当你想释放/更新时,将该IP转移到需要新IP的实例,然后将其转移回原始实例。现在,您每月最多可以免费更改实例的 IP 50 次。
IP 洗牌,女士们先生们:)
关于ubuntu - 在没有停止/启动或弹性 IP 的情况下更改 EC2 实例的公共(public) IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23383001/