Json 如何在cloudformation中更改默认根EBS大小?[美国焊接学会]
考虑到cloudformation的在线文档和解决方案数量较少,我决定解决一个常见问题,即更改通过cloudformation模板启动的EBS卷的默认大小 默认情况下,启动的实例的大小为8GB,如果您想知道如何根据自己的喜好将其更改为正确的解决方案,那么您将获得正确的解决方案 有两种方法可以避免这个问题 解决方案1:使用VolumeAttachment创建新卷(方式不正确) 在这里,我创建了一个新卷,并尝试将其附加到不起作用的实例。(CF模板未能启动) 解决方案2。块设备映射(正确的方式) 使用BlockDeviceMappings是正确的方法Json 如何在cloudformation中更改默认根EBS大小?[美国焊接学会],json,amazon-web-services,amazon-ebs,amazon-cloudformation,Json,Amazon Web Services,Amazon Ebs,Amazon Cloudformation,考虑到cloudformation的在线文档和解决方案数量较少,我决定解决一个常见问题,即更改通过cloudformation模板启动的EBS卷的默认大小 默认情况下,启动的实例的大小为8GB,如果您想知道如何根据自己的喜好将其更改为正确的解决方案,那么您将获得正确的解决方案 有两种方法可以避免这个问题 解决方案1:使用VolumeAttachment创建新卷(方式不正确) 在这里,我创建了一个新卷,并尝试将其附加到不起作用的实例。(CF模板未能启动) 解决方案2。块设备映射(正确的方式) 使用
"BlockDeviceMappings": [
{
"DeviceName": "/dev/xvda",
"Ebs": {
"VolumeType": "io1",
"Iops": "300",
"DeleteOnTermination": "false",
"VolumeSize": "30"
}
}
],
不要将设备名称保留为/dev/xvda1,否则它将无法工作如果所选操作系统是Amazon Linux,则将块设备映射的“DeviceName”属性设置为“/dev/xvda”,否则对于Ubuntu或CentOS,将其设置为“/dev/sda1”因此,考虑到您有多个操作系统并且希望增加EBS卷的默认大小,最终的解决方案是使用Fn::If intrinsive function将块设备映射的“
DeviceName
”属性设置为“/dev/xvda
”,如果所选操作系统是Amazon Linux,否则将设置为其他操作系统的“/dev/sda1
”
代码段将如下所示:
"BlockDeviceMappings": [
{
"DeviceName": {
"Fn::If": [
"Amazon-AMI", // condition satisfying that if amazon is OS then use /dev/xvda or else /dev/sda1
"/dev/xvda",
"/dev/sda1"
]
},
"Ebs": {
"VolumeType": "io1",
"Iops": "300",
"DeleteOnTermination": "false",
"VolumeSize": "100"
}
}
]
这将使您的cloudformation运行时不会出现任何错误。
如果您仍然有任何错误,请检查您的模板并正确验证它忘记了我之前的评论,我发现您需要添加一个条件部分。您能否显示您的条件部分以了解您如何决定“Amazon AMI”的值“设置为true吗?嗨@CarlR我没有使用条件部分,我只是使用if语句来决定操作系统类型。”。我的模板从参数部分中允许的值中获取OS名称,这些值在下面提到的条件中进一步使用<代码>“Fn::If”:[//If”--此处为亚马逊操作系统名称--“,//然后为“/dev/xvda”,“使用xvda”/dev/sda1”//或使用sda1]
相关问题-启动期间是否还需要在用户数据中运行“growpart”和“resize2fs”?设备命名
"BlockDeviceMappings": [
{
"DeviceName": {
"Fn::If": [
"Amazon-AMI", // condition satisfying that if amazon is OS then use /dev/xvda or else /dev/sda1
"/dev/xvda",
"/dev/sda1"
]
},
"Ebs": {
"VolumeType": "io1",
"Iops": "300",
"DeleteOnTermination": "false",
"VolumeSize": "100"
}
}
]