【问题标题】:EC2 Instances will not keep elastic IPEC2 实例不会保留弹性 IP
【发布时间】:2014-03-03 18:39:15
【问题描述】:

所以,我不明白这里发生了什么...我有 (3) 个已启动的微型 EC2 实例(没有弹性 ip)

然后我转到Network Security->Elastic IPs 并单击关联IP 地址。我选择了一个正在运行的 EC2 实例,然后该实例使用弹性 ip。

如果我stop那么start这个相同的ec2实例,它没有相同的以前的弹性IP地址,而是一些全新的IP地址。这会弄乱脚本,然后依赖于先前关联到该 EC2 实例的弹性 IP。

为什么会发生这种情况,为什么我不能让任何 (3) 个实例采用并保留这个分配的弹性 IP?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 elastic-ip


    【解决方案1】:

    如果您创建 VPC,然后在 VPC 下重新配置 3 个微实例,则您关联的 EIP 将在停止/启动周期内保持关联。您将无法重用现有的 EC2 实例或 EIP;您必须在新 VPC 下重新创建它们。

    【讨论】:

    • 感谢杰夫提供的信息
    【解决方案2】:

    当您停止弹性 IP 时,它们会与 EC2 实例(在 EC2-Classic 中)解除关联。您需要在启动时再次重新关联它们,这可以通过 API(通过AssociateAddress)、CLI(通过ec2-associate-address)或via the AWS Console 完成。

    以下是 Elastic IP documentation 对此事的看法:

    当您将 EIP 与实例关联时,该实例的当前 公网IP地址发布到EC2-Classic公网IP地址 水池。如果您取消一个 EIP 与实例的关联,则该实例是 在几分钟内自动分配一个新的公共 IP 地址。 此外,停止实例也会解除 EIP 与它的关联。

    我们通过使用所需的弹性 IP 标记我们的开发实例(在夜间关闭)并在早上运行脚本首先将它们打开,然后重新关联弹性 IP,从而在工作中解决了这个问题。

    【讨论】:

    • 有没有办法在阻止他们时保留该 IP 地址?
    • @CodeTalk 不使用 AWS,但您可以添加一个脚本,该脚本将在实例启动时通过命令行工具或直接通过 API 关联 IP 地址
    • @datasage 同意。我们在工作中通过使用所需的弹性 IP 标记我们的开发实例(在夜间关闭)并在早上运行脚本首先打开它们,然后重新关联弹性 IP 来解决这个问题。
    • @HyperAnthony - 好点子,这很可能也是必须要做的事情
    • @CodeTalk:EIP地址不会改变,因为它没有从账户中释放,不能被其他人保留。
    【解决方案3】:

    如果您愿意为 NAT 网关付费(按小时收费 + 每处理 GB 流量),您可以创建一个 NAT 网关以使弹性 IP 附加到您的 VPC 私有子网(您需要为子网创建路由,指向nat-gateway,并将您的默认路由点修改为 igw-id)。

    之后任何 EC2 实例重启都会对弹性 IP 产生影响。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-15
      • 2015-11-21
      • 2020-11-17
      • 1970-01-01
      • 2017-01-12
      • 1970-01-01
      • 1970-01-01
      • 2012-06-16
      相关资源
      最近更新 更多