我们可以将EC2的用户数据中的CLI命令传递给自动附加和挂载EBS卷吗?

时间:2016-10-13 08:24:34

标签: amazon-web-services amazon-ec2 high-availability

我正在使用自动缩放,主节点的所需计数为1。如果实例终止,为了保持高可用性,我们需要将先前终止的实例中的相同EBS卷与新创建的实例相连。

如果在我的AMI上配置了CLI,我尝试了用户数据中的以下每一项,但它不起作用。

#!/bin/bash
EC2_INSTANCE_ID=$(ec2metadata --instance-id)
aws ec2 attach-volume --volume-id vol-777099d8 --instance-id $EC2_INSTANCE_ID --device /dev/sdk


#!/bin/bash
echo "aws ec2 attach-volume --volume-id vol-777099d8 --instance-id $(ec2metadata --instance-id) --device /dev/sdk" > /tmp/xyz.sh
sudo chmod 755 /tmp/xyz.sh
sudo sh /tmp/xyz.sh 2>> 


#!/bin/bash
var='ec2 attach-volume --volume-id vol-777099d8 --instance-id $(ec2metadata --instance-id) --device /dev/sdk'
aws "$var"


aws ec2 attach-volume --volume-id vol-777099d8 --instance-id $(ec2metadata --instance-id) --device /dev/sdk

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

它可能无法正常工作,因为EBS卷一次只能附加到单个实例。如果它不起作用,您应该有错误消息以响应CLI命令,以帮助您理解它不起作用的原因,因此请检查实例的日志。

我认为您应该重新审视一下您的架构,因为尝试这样做会给我发送一个红旗。首先,HA架构不应该运行单个实例。当实例按比例放大和缩小时,良好的体系结构将保持HA。如果您有多个实例需要的数据,则应使用S3或EFS存储该数据而不是EBS卷。