Amazon web services 将EBS卷连接到自动校准组

Amazon web services 将EBS卷连接到自动校准组,amazon-web-services,amazon-ec2,amazon-cloudformation,Amazon Web Services,Amazon Ec2,Amazon Cloudformation,我需要设置一个EC2实例,并通过CloudFormation连接一个现有的EBS卷 目前,EC2实例有一个自动校准组,其中minsize=1和maxsize=1已就位。我无法将EBS卷连接到AutoScalingGroup的启动配置。原因是我找不到类似于AWS::EC2::VolumeAttachment的选项 问题: 最小值和最大值为1的当前设置有意义吗?目标是在出现故障时自动重新创建VM。有更好的办法吗 我是否可以使用当前的自动缩放设置将EBS卷附加到具有CloudFormation的实例

我需要设置一个EC2实例,并通过CloudFormation连接一个现有的EBS卷

目前,EC2实例有一个自动校准组,其中
minsize=1
maxsize=1
已就位。我无法将EBS卷连接到AutoScalingGroup的启动配置。原因是我找不到类似于AWS::EC2::VolumeAttachment的选项

问题:

  • 最小值和最大值为1的当前设置有意义吗?目标是在出现故障时自动重新创建VM。有更好的办法吗
  • 我是否可以使用当前的自动缩放设置将EBS卷附加到具有CloudFormation的实例
您说“我无法将EBS卷连接到启动配置”,但没有说明原因。因此,我不确定您是说无法让EC2实例调配和装载EBS卷,还是说您已经尝试为AutoScalingGroup创建启动配置,但它不起作用。我假设是前者,但如果是后者,请提供错误消息或一些调试日志,以便我们可以对其进行故障排除,因为这是实现目标的方法。此外,您应该知道,如果可能,最好在启动配置上使用


您需要为LaunchTemplate创建一个CloudFormation条目,该模板指定了。在其中,您将获得EBS卷的ARN。您可能还使用CloudFormation创建了该卷。

您似乎希望将现有的Amazon EBS卷附加到通过自动缩放启动的Amazon EC2实例

通常使用最小/最大值为1的自动缩放。这确保了即使实例出现故障或可用性区域出现故障,实例仍在运行

但是,我认为您不会找到自动缩放或CloudFormation选项来连接现有的Amazon EBS卷。自动缩放组用于为水平缩放启动大量相同的实例。他们将拥有自己的EBS卷,但不会“共享”EBS卷


您可以使用启动实例时运行的用户数据脚本,而不是尝试通过自动缩放/CloudFormation配置来连接它。它可以使用AWS CLI将卷连接到自身。脚本需要通过元数据检索实例的InstanceId,然后将其传递给附件调用。

我没有找到launch config的卷附件选项,因此关于第二个问题,我认为使用userdata会更容易

在userdata中,您可以使用以下命令提取
实例ID

$instanceId = Invoke-WebRequest -Uri http://169.254.169.254/latest/meta-data/instance-id 
然后,可以使用AWS CLI命令连接EBS卷。例如:

aws ec2 attach-volume --volume-id vol-1234567890abcdef0 --instance-id i-01474ef662b89480 --device /dev/sdf

关于调试日志,您始终可以设置userdata执行日志或将命令的输出重定向到文件以获取调试信息。

如果您向海报提问,请将其添加为注释,而不是将其添加到您的答案中。答案应该是独立的。干杯谢谢,我不知道LaunchTemplates。我会调查的。我无法连接EBS卷的原因是,我找不到类似于AWS::EC2::VolumeAttachment的启动配置选项,因此得出结论,可能是设计的一部分,用于服务器VM的启动配置通常不应全部访问相同的EBS卷。您指的是新的(空的)卷吗您希望附加的Amazon EBS卷,或者您指的是希望重新附加到已启动的新实例的附加EBS卷?参考已存在的附加EBS卷。因此,我正在寻找用于启动配置的AWS::EC2::VolumeAttachment?按标签/名称/id查找现有EBS卷并在启动时装载?需要调用
描述卷
,然后调用
附加卷
。这可以通过在启动时运行的用户数据脚本来完成。谢谢,是的,我已经做到了。非常适合单节点ECS群集的使用情况