2013-08-22 51 views
4

我的目标是自动将弹性IP分配给自动缩放的EC2实例。将弹性IP分配给VPC中的自动缩放EC2 - AWS

我已完成以下操作: - 配置EC2实例(带启动脚本以分配IP) - 根据规范配置启动配置和自动缩放组。

问题是,当部署自动缩放的启动配置时,我无法允许它在启动弹性IP分配之前自动分配公共地址(首先)。

当我手动部署AMI时,假设我检查“分配公共IP地址”框,实例将部署,临时分配xxxx.amazon.xxxx地址,然后转到我的弹性IP分配。

但是..

当通过自动缩放命令行实用程序部署(如创建,发布,配置+的创建,自动缩放组)的IP将无法正常工作。如果在设置启动配置时暂时获取公共IP以便与amazon API进行通信以拉取弹性分配,我觉得它可以被修复。

我非常感谢您的帮助!

回答

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

在启动配置中,添加云-init语法编译为base64编码的用户数据属性,所有未来的自动标量实例都将完成云初始化的状态。

我通常使用Base64编码做:

base64 <filename> 
+0

我不相信这会在所有的工作。在您获得EIP之前,您无法联系到AWS API节点。 –

+0

克里斯托弗,你可以打电话给EIP,然后把它分配给实例。我已经在一堆节点上做了这个。如果您需要保留EIP列表,请提前保留它们并使用cloud-init来分配它们。 – nictrix

+0

@nicrix我的错误。它会工作,如果你有一个NAT'd VPC设置,或者你以某种方式启用公共IP为您的实例(似乎很奇怪与EIP做)。 –