使用CloudFormation启动附带EBS的AWS自动调整组

问题描述:

我试图使用CloudFormation(CFN)启动具有单个m3.medium实例和附加EBS的自动调整组。除了EBS部分之外,我已经成功做了一切。我试着加入以下块到我的CFN模板(作为AWS::AutoScaling::LaunchConfiguration block的属性):使用CloudFormation启动附带EBS的AWS自动调整组

"BlockDeviceMappings": [ 
    { 
    "DeviceName": "/dev/sdf", 
    "Ebs": { "VolumeSize": 100, "VolumeType": "gp2" } 
    } 
] 

没有这个发射成功。当我包含它时,aws在尝试创建自动调整组时尝试挂起。没有错误消息来帮助调试此问题。我已经尝试通过aws控制台创建EBS并手动连接到启动的m3实例,并且这可以工作,但我需要通过CFN来实现,以符合我们的自动化部署管道。

我需要在CFN模板中创建其他资源才能使其工作?

+0

要回答直接问题,您只需要启动配置中的此嵌入式属性,并且不需要其他资源。它可能只是语法(请参阅我的答案)或限制。 – 2015-02-11 17:15:00

更新:

与AWS支持沟通后,我解决了这个问题。事实证明,AWS区分了实例存储支持和ebs支持的ami。您只能在使用ebs-backed ami时添加BlockDeviceMappings属性,并且我正在使用其他类型。幸运的是,有一种方法可以将实例存储支持转换为ebs-backed,使用此过程: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-instance-store.html#Using_ConvertingS3toEBS

如果这是一个逐字块,那么你可以将引号添加到卷大小(doc是非常具有误导性的,因为所有数据类型都是字符串)。下面是一个真实的工作对我很好,我看不出有什么差别:

  "BlockDeviceMappings": [ 
       { 
        "DeviceName": { 
         "Ref": "SecondaryDevice" 
        }, 
        "Ebs": { 
         "VolumeType": "gp2", 
         "VolumeSize": "10" 
        } 
       } 
      ] 

一般来说,如果您需要解决助理秘书长,加入SNS notifs用于发射失败的自动缩放组(http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/ASGettingNotifications.html)。您可能会发现自己处于EBS限制的最后一百次(不太可能),或者您的AMI不喜欢您尝试使用的设备类型或标签(更有可能)。

+0

谢谢。我尝试了100和“100”,但都没有成功。此外,我知道我没有用完EBS空间,因为我可以创建一个新的EBS并通过aws控制台将其附加到我的实例。 SNS通知如何帮助您?堆栈启动实际上并没有失败,只是挂起了一段不确定的时间。最后蒂姆我尝试了这一点,我让它超过30分钟。 – 2015-02-11 17:24:51

+0

哎呀。你需要更多关于在自动调节组上启用SNS的细节吗?如果组资源本身完成创建,那么你可以使用它来获得一个很好的错误信息(例如,你会得到一封电子邮件来回应失败的启动,如“不支持的配置”,我认为这是一个潜在的原因)。 – 2015-02-11 17:31:10

+0

如果你有一个链接,我可以看看,这将是有益的。 – 2015-02-11 18:51:25