【问题标题】:Assigning Elastic IP to Auto-Scaled EC2 in VPC - AWS在 VPC 中将弹性 IP 分配给自动扩展的 EC2 - AWS
【发布时间】:2013-08-25 17:46:31
【问题描述】:

我的目标是自动将弹性 IP 分配给自动扩展的 EC2 实例。

我做了以下事情: - 使用启动脚本配置 EC2 实例以分配 IP - 根据规范配置启动配置和自动缩放组。

问题是,在部署自动扩展的启动配置时,我无法允许它在获取弹性 IP 分配之前自动分配公共地址(起初)。

当我手动部署 AMI 时,只要我选中“分配公共 IP 地址”框,实例就会部署,临时分配 xxxx.amazon.xxxx 地址,然后转存到我的弹性 IP 分配。

然而..

当通过自动缩放命令行实用程序(as-create-launch-config + as-create-auto-scaling-group)部署时,IP 将不起作用。我觉得如果在设置启动配置时可以选择临时获取公共 IP 以便与 amazon API 通信以提取弹性分配,则可以修复它。

非常感谢您的帮助!

【问题讨论】:

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


    【解决方案1】:

    您可能希望使用 cloud-init 在附加 EIP 的本地自动缩放服务器上运行命令。以下是首次启动时在服务器上运行的本地命令示例:http://cloudinit.readthedocs.org/en/latest/topics/examples.html#run-commands-on-first-boot

    在该本地命令中,您可以使用亚马逊的内置工具来关联地址:http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-AssociateAddress.html

    在启动配置中,将 cloud-init 语法作为 base64 编码添加到 user-data 属性中,所有未来的自动缩放实例都将完全按照 cloud-init 声明的方式执行。

    我通常做base64编码:

    base64 <filename>
    

    【讨论】:

    • 我认为这根本行不通。在获得 EIP 之前,您无法访问 AWS API 节点。
    • Christopher,您可以调用 EIP,然后将其分配给实例。我已经在一堆节点上这样做了。如果需要预留 EIP 列表,请提前预留并使用 cloud-init 进行分配。
    • @nicrix 我的错。如果您有一个 NAT'd VPC 设置,或者您以某种方式为您的实例启用了公共 IP(使用 EIP 这样做似乎很奇怪),它将起作用。
    • @ChristopherSmith - 当我想确保 DNS 缓存或 DNS 问题不是具有关键服务正在运行且可用的实例的问题时,我会这样做。 (数据库服务器等...)
    猜你喜欢
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    相关资源
    最近更新 更多