Amazon web services EC2具有弹性IP的自动缩放

Amazon web services EC2具有弹性IP的自动缩放,amazon-web-services,amazon-ec2,high-availability,autoscaling,elastic-ip,Amazon Web Services,Amazon Ec2,High Availability,Autoscaling,Elastic Ip,我部署了一个自动伸缩的EC2,并将一个弹性IP地址与之关联。我没有使用负载平衡器,因为用户总数不超过20。因此,我当前的设置是拥有1个最小和1个最大服务器 如果EC2服务器出现故障,将创建另一个服务器,这就是我正在尝试做的。但是,弹性IP不会自动重新映射到新创建的服务器 如何将弹性IP自动分配给新创建的EC2实例?这个问题有解决办法吗 更新: 我已经在用户数据中添加了以下内容,但是新的EC2创建时仍然没有公共ip #!/bin/bash INSTANCE_ID=$(curl -s http://

我部署了一个自动伸缩的EC2,并将一个弹性IP地址与之关联。我没有使用负载平衡器,因为用户总数不超过20。因此,我当前的设置是拥有1个最小1个最大服务器

如果EC2服务器出现故障,将创建另一个服务器,这就是我正在尝试做的。但是,弹性IP不会自动重新映射到新创建的服务器

如何将弹性IP自动分配给新创建的EC2实例?这个问题有解决办法吗

更新:

我已经在用户数据中添加了以下内容,但是新的EC2创建时仍然没有公共ip

#!/bin/bash
INSTANCE_ID=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
aws ec2 associate-address --instance-id $INSTANCE_ID --allocation-id=eipalloc-**.***.***.***

如果没有ELB来管理弹性IP,则需要在创建实例时使用EC2实例上的用户数据字段来调用
aws EC2关联地址
API端点:

aws ec2 associate-address --instance-id <instance id> --allocation-id <eip-alloc-id>

使用EC2和自动缩放功能,您需要在EC2中使用
用户数据
,将弹性IP自动连接到EC2实例以实现自动缩放

#!/bin/bash
aws configure set aws_access_key_id "XYZ..."
aws configure set aws_secret_access_key "ABC..."
aws configure set region "ap-..."
aws ec2 associate-address --instance-id "$(curl -X GET "http://169.254.169.254/latest/meta-data/instance-id")" --public-ip your_elastic_IP
注意:您应该创建新用户&IAM只有创建/获取aws密钥的权限关联地址


希望对您有所帮助:)

我认为您需要诚实地删除引号。仍然没有分配公共ipty在
实例ID
周围删除引号,正如@DrSatan1推荐的那样,您还应该将
--AllocationId
更改为
--AllocationId
-请参见此处的参数列表:我已经实现了建议的编辑,但是它仍然没有分配一个公共ip,而是添加了一个公共ip,但是EIBYou不能在
/var/log/cloud init output.log
中查看错误输出。确保您已为实例分配了IAM角色,使其有权调用
aws ec2关联地址
,并在进行调用时指定一个
--区域
。这两种方法对我都很有效。
#!/bin/bash
aws configure set aws_access_key_id "XYZ..."
aws configure set aws_secret_access_key "ABC..."
aws configure set region "ap-..."
aws ec2 associate-address --instance-id "$(curl -X GET "http://169.254.169.254/latest/meta-data/instance-id")" --public-ip your_elastic_IP