Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 是否可以在不立即丢失公共IP的情况下将弹性IP与实例关联?_Amazon Web Services_Amazon Ec2_Dns - Fatal编程技术网

Amazon web services 是否可以在不立即丢失公共IP的情况下将弹性IP与实例关联?

Amazon web services 是否可以在不立即丢失公共IP的情况下将弹性IP与实例关联?,amazon-web-services,amazon-ec2,dns,Amazon Web Services,Amazon Ec2,Dns,我有一个运行生产网站的windows EC2实例,DNS配置为使我的域名指向其公共IP。当前没有与实例关联的弹性IP(EIP)。我想开始使用弹性IP,让我的域名指向它,而不是公共IP(如果我需要更改实例,它可以更改) 阅读文档后,我发现这一说法令人不安: 将EIP与实例关联时,实例的当前 公共IP地址发布到EC2经典公共IP地址 游泳池 我担心的是: 我为实例分配了一个EIP,公共IP被释放 现在我的网站不再工作,因为域名指向公共IP,它不再与我的EC2实例关联 然后我必须将DNS记录指向EI

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

阅读文档后,我发现这一说法令人不安:

将EIP与实例关联时,实例的当前 公共IP地址发布到EC2经典公共IP地址 游泳池

我担心的是:

  • 我为实例分配了一个EIP,公共IP被释放
  • 现在我的网站不再工作,因为域名指向公共IP,它不再与我的EC2实例关联
  • 然后我必须将DNS记录指向EIP。但这可能需要48小时才能进行传播(也就是说,我的网站可能在48小时内无法访问)

我如何做到这一点而不必通过DNS传播?

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


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

在您预定的切换时间之前48到72小时,将DNS条目上的生存时间(TTL)减少到300秒(5分钟)

在指定的切换时间:

  • 附加弹性IP地址
  • 更新DNS条目以指向您的弹性IP地址

  • 这样,您的有效“停机时间”将减少到5分钟。

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

    说明

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

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

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


    工作时,请切换DNS并还原主机文件。

    yikes。。。这就是我害怕的。。。因此,一旦我将EIP与实例关联,它将成为“公共ip”?可以发誓在过去的某个时刻,我有一个与实例关联的EIP,它不同于它的公共IP。因此,您实际上可以通过EIP和公共ip访问服务器。我只想在这里非常小心,这样我就不会关闭网站,而不得不等待传播。@MSchenkel,是的,EIP将成为“公共IP”谢谢,我对DNS了解不够。因此,通过将TTL设置为该值,DNS服务器实际上是否每5分钟“重新检查”与我的域名关联的ip地址?如果它们的行为正确,则是。没有什么可以阻止他们忽略你的TTL,但是大多数表现良好的DNS服务器都遵守TTL值。是的,我相信这是在VPC中。在EC2控制台中,它有一个“VPC ID”:VPC-76930813。所以我想这就解释了为什么它能够拥有不同于公共IP的弹性IP(参见我对@rodolk的评论)。我该怎么办?如果我没记错的话,过去我创建了一个EIP并将其与EC2关联。然后我可以通过公共和EIP访问。这就是我所做的吗?对不起,我只是想弄清楚。不久前,我搞砸了DNS,把网站关闭了48小时。太好了。指示也很好。这一定是我过去做过的(但不知道我在做什么)。因此,一旦DNS传播后经过足够的时间(即48小时),我是否应该删除与公共IP相关联的网络接口?拥有2个网络接口是否会收取更多费用?您只需为未使用的弹性IP地址和“辅助”弹性IP地址收取费用。网络接口不向您收费。您无法分离主网络接口。相反,在48小时后,将弹性IP地址从辅助ENI移动到实例(或主ENI)。然后拆下您的第二个ENI。