【问题标题】:How to attach Elastic IP to EC2 instance during bootstrapping in aws CLI?如何在 aws CLI 中引导期间将弹性 IP 附加到 EC2 实例?
【发布时间】:2016-08-22 15:56:27
【问题描述】:

我可以使用以下命令创建实例

aws ec2 run-instances --image-id $AMI_ID --count 1 --instance-type ${INSTANCE_TYPE} --key-name KEY_NAME --region us-east-1 --security-groups MYSECURITY_GROUP

但我没有找到任何附加弹性 IP 地址的选项。是否可以在引导期间附加弹性 IP?还是后期引导?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-cli aws-ec2


    【解决方案1】:

    您可以将--user-data (string) 选项用于run-instances。您传递的用户数据将包含用于关联弹性 IP 的 CLI。 CLI 命令如下所示。要获取用户数据中的instance-id,请使用元数据服务器:

    curl instance-data/latest/meta-data/instance-id
    

    您还可以在启动后附加弹性 IP。使用associate-address 附加弹性IP。

    更多示例在:associate-address

    此示例使用新样式(更长的)实例 ID。

    aws ec2 associate-address --instance-id i-0b263919b6498b123 --allocation-id eipalloc-64d5890a
    

    你可以从

    获取分配ID

    aws ec2 describe-addresses

    describe-addresses

    【讨论】:

    • 不过,此答案并未回答所述问题。如上所述的问题希望在第一次引导时为实例预分配一个弹性 IP(通过关闭和重新启动与实例保持一致)。一旦实例启动,它就已经被赋予了一些其他的临时 IP 地址。
    【解决方案2】:

    我在问题中读到的愿望是“如何使用给定的已知 IP 地址(来自弹性 IP 池)启动实例,而无需先使用另一个临时 IP 地址启动它。”

    我找到的方法是,先分配一个NetworkInterface,然后分配IP地址,然后将IP地址绑定到NetworkInterface,再将预先分配的NetworkInterface绑定到eth0接口作为 NetworkInterface 启动参数的一部分。是的,四个步骤,只是因为您希望实例以在其生命周期内不会更改的 IP 地址开始!

    对于某种 NAT/负载均衡器后面的“基础设施如牛”,这当然无关紧要。但是对于通过 SSH 连接到或从 IDE “打开远程”到的“云开发者主机”,从一开始就保持 IP 地址相同是一项非常重要的要求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      • 2015-04-10
      • 2021-02-18
      • 2018-12-29
      相关资源
      最近更新 更多