使用 CloudFormation 启动带有附加 EBS 的 AWS 自动缩放组
Using CloudFormation to launch an AWS autoscaling group with attached EBS
我正在尝试使用 CloudFormation (CFN) 使用单个 m3.medium 实例和附加 EBS 启动自动缩放组。除了 EBS 部分,我已经成功地完成了所有工作。我尝试将以下块添加到我的 CFN 模板中(作为 AWS::AutoScaling::LaunchConfiguration block 的 属性):
"BlockDeviceMappings": [
{
"DeviceName": "/dev/sdf",
"Ebs": { "VolumeSize": 100, "VolumeType": "gp2" }
}
]
没有这个启动成功。当我包含它时,aws 在尝试创建自动缩放组时挂起。没有错误消息可帮助调试此问题。我已经尝试通过 aws 控制台创建一个 EBS 并手动附加到启动的 m3 实例,这有效,但我需要通过 CFN 来完成它以符合我们的自动部署管道。
我是否需要在 CFN 模板中创建其他资源才能实现此目的?
如果这是一个逐字块,那么您将引号添加到卷大小(doc 非常具有误导性,因为所有数据类型都是字符串)。这是一个对我来说效果很好的,我看不出有什么不同:
"BlockDeviceMappings": [
{
"DeviceName": {
"Ref": "SecondaryDevice"
},
"Ebs": {
"VolumeType": "gp2",
"VolumeSize": "10"
}
}
]
一般来说,如果您需要对 ASG 进行故障排除,请将启动失败的 SNS 通知添加到 Auto Scaling 组 (http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/ASGettingNotifications.html)。您可能会发现您已达到 EBS 的最后一百个演出限制(不太可能),或者您的 AMI 不喜欢您尝试使用的设备类型或标签(更有可能)。
更新:
在与 AWS 支持人员交谈后,我解决了这个问题。事实证明,AWS 区分了实例存储支持的 ami 和 ebs 支持的 ami。您只能在使用 ebs 支持的 ami 时添加 BlockDeviceMappings 属性,而我使用的是另一种。幸运的是,有一种方法可以使用以下过程将实例存储支持转换为 ebs 支持:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-instance-store.html#Using_ConvertingS3toEBS
我正在尝试使用 CloudFormation (CFN) 使用单个 m3.medium 实例和附加 EBS 启动自动缩放组。除了 EBS 部分,我已经成功地完成了所有工作。我尝试将以下块添加到我的 CFN 模板中(作为 AWS::AutoScaling::LaunchConfiguration block 的 属性):
"BlockDeviceMappings": [
{
"DeviceName": "/dev/sdf",
"Ebs": { "VolumeSize": 100, "VolumeType": "gp2" }
}
]
没有这个启动成功。当我包含它时,aws 在尝试创建自动缩放组时挂起。没有错误消息可帮助调试此问题。我已经尝试通过 aws 控制台创建一个 EBS 并手动附加到启动的 m3 实例,这有效,但我需要通过 CFN 来完成它以符合我们的自动部署管道。
我是否需要在 CFN 模板中创建其他资源才能实现此目的?
如果这是一个逐字块,那么您将引号添加到卷大小(doc 非常具有误导性,因为所有数据类型都是字符串)。这是一个对我来说效果很好的,我看不出有什么不同:
"BlockDeviceMappings": [
{
"DeviceName": {
"Ref": "SecondaryDevice"
},
"Ebs": {
"VolumeType": "gp2",
"VolumeSize": "10"
}
}
]
一般来说,如果您需要对 ASG 进行故障排除,请将启动失败的 SNS 通知添加到 Auto Scaling 组 (http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/ASGettingNotifications.html)。您可能会发现您已达到 EBS 的最后一百个演出限制(不太可能),或者您的 AMI 不喜欢您尝试使用的设备类型或标签(更有可能)。
更新:
在与 AWS 支持人员交谈后,我解决了这个问题。事实证明,AWS 区分了实例存储支持的 ami 和 ebs 支持的 ami。您只能在使用 ebs 支持的 ami 时添加 BlockDeviceMappings 属性,而我使用的是另一种。幸运的是,有一种方法可以使用以下过程将实例存储支持转换为 ebs 支持: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-instance-store.html#Using_ConvertingS3toEBS