可以将弹性IP与实例关联而不会立即丢失公共IP吗?

时间:2015-11-26 03:46:05

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

我有一个运行生产网站的Windows EC2实例,并且DNS配置为让我的域名指向其公共IP。目前没有与实例关联的弹性IP(EIP)。我想开始使用弹性IP并让我的域名指向它而不是公共IP(如果我必须更改实例,则可以更改)。

阅读文档我发现这句话令人不安:

  

将EIP与实例关联时,实例的当前关联   公共IP地址发布到EC2-Classic公共IP地址   池。

我担心的是:

  • 我为实例分配了一个EIP,并释放了公共IP。
  • 现在我的网站不再有效,因为域名指向公共IP,不再与我的EC2实例相关联。
  • 然后我必须将DNS记录指向EIP。但这可能需要48小时才能进行传播(即我的网站可能无法访问长达48小时)。

如何在不必通过DNS传播的情况下实现这一目标?

3 个答案:

答案 0 :(得分:3)

在预先确定的切换时间之前48到72小时,将DNS输入的生存时间(TTL)减少到300秒(5分钟)。

在指定的转换时间:

  1. 附加弹性IP地址
  2. 更新您的DNS条目以指向您的弹性IP地址
  3. 这样做,您的有效"停机时间"减少到5分钟。

答案 1 :(得分:3)

如果您的EC2实例位于VPC中,您可以在EC2实例上添加第二个网络接口。您可以将弹性IP地址与第二个网络接口相关联。这样,您的EC2实例就可以响应这两个IP地址。

<强>说明

  1. 在与EC2实例相同的子网中创建新的网络接口。
  2. 为您的VPC分配一个新的弹性IP(如果您还没有这样做)。
  3. 将弹性IP地址与新网络接口(eni)相关联。
  4. 将新网络接口连接到EC2实例。
  5. 请勿更改您的DNS。

    您可能需要在EC2实例中使用RDP / SSH进行一些配置更改,以确保您的EC2实例正确响应新的IP地址。

    修改本地计算机上的hosts文件,以测试通过新IP地址连接到您的网站。

    如果有效,请执行DNS切换并恢复主机文件。

答案 2 :(得分:1)

您可以拥有两个相同的EC2实例。一个具有DNS记录所指向的旧公共IP。一个分配了EIP。请求应该能够访问这两个实例中的任何一个而不会注意到它。您的应用程序必须能够水平扩展。然后,您将DNS记录更改为指向EIP。最终,当DNS更新时,对您域的所有请求将最终通过EIP进入EC2实例。此时您可以停止或终止旧的EC2实例。

如果您的应用程序无法水平扩展并且如果它是Web应用程序,则其他可能性,旧EC2实例中的Web服务器可以将请求重定向到EIP。它会重定向到IP地址,但这是可能的。