Amazon EC2 – 需要更改IP地址,而无需停机

我在亚马逊EC2上维护着一个相当高调的网站,以前的开发者将Alogging指向实例的“公共IP”,而不是使用“弹性IP”。 据我所知,“公有知识产权”并不是永久性的,所以如果我需要停止这个事例,它将会得到一个新的。 另外,如果我分配一个弹性IP,它将删除公共IP,所以如果我改变它,站点将无法访问,直到Alogging更改传播。

显然这不好。

有没有什么办法可以分配一个弹性(或永久性)的IP地址,而不去除当前的“公共IP”? 或者,还有没有其他的解决办法,我没有想到要摆脱这个混乱?

就在这里! 拥抱DNS最终一致性的力量。

  1. 设置一个ELB,指向你的实例。
  2. 使用ELB的CNAME更新公共实例的Alogging。
  3. 等一个星期吧
  4. 将Elastic-IP与实例相关联。
  5. 用EIP的新Alogging更新您的应用程序的CNAMElogging。
  6. 等一个星期吧
  7. 关掉ELB。

对于等待的两个星期,站点可能会在旧的和新的IP地址上得到命中。 您可能无法分辨,但由于两者都可以访问,您可以快速pipe理此更改。

另一种select是创build一个ENI并附上一个EIP。 然后将ENI附加到您的实例并更改DNS条目。