gpt4 book ai didi

json - 如何更改cloudformation中的默认根EBS大小? [AWS]

转载 作者:行者123 更新时间:2023-12-03 11:56:58 24 4
gpt4 key购买 nike

考虑到 cloudformation 的在线文档和解决方案数量较少,我决定解决有关更改通过 cloudformation 模板启动的 EBS 卷的默认大小的常见问题

默认情况下,启动的实例具有 8GB 大小,如果您想知道如何根据您的偏好将其更改为某个大小,那么您已经找到了正确的解决方案。

有两种方法可以避免这个问题

解决方案 1:使用 VolumeAttachment 创建新卷(错误方式)

"EBS" : {
"Type" : "AWS::EC2::Volume",
"Properties" : {
"Size" : "100",
"AvailabilityZone" : { "Fn::GetAtt" : [ "EC2Instance", "AvailabilityZone" ] }
}
},

"MountPoint" : {
"Type" : "AWS::EC2::VolumeAttachment",
"Properties" : {
"InstanceId" : { "Ref" : "EC2Instance" },
"VolumeId" : { "Ref" : "EBS" },
"Device" : "/dev/sda1"
}
}

在这里,我创建了一个新卷,但厌倦了将其附加到不起作用的实例。(CF 模板无法启动)

解决方案2. block 设备映射(正确方法)

使用BlockDeviceMappings是正确的处理方法

 "BlockDeviceMappings": [
{
"DeviceName": "/dev/xvda",
"Ebs": {
"VolumeType": "io1",
"Iops": "300",
"DeleteOnTermination": "false",
"VolumeSize": "30"
}
}
],

不要将设备名称保留为/dev/xvda1 否则它将无法工作。 相反,如果所选操作系统是 Amazon Linux,请将 block 储存设备映射的“DeviceName”属性设置为“/dev/xvda”,否则对于 Ubuntu 或 CentOS,请将其设置为“/dev/sda1”

最佳答案

因此,考虑到您有多个操作系统并且希望增加 EBS 卷的默认大小,最终解决方案使用 Fn::If 内部函数 来设置“DeviceName”如果所选操作系统是 Amazon Linux,则 block 设备映射到“/dev/xvda”的“属性,否则会将其设置为“/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"
}
}
]

这应该会让您的云信息正常运行,不会出现任何错误。如果仍有任何错误,请检查您的模板并正确验证它

关于json - 如何更改cloudformation中的默认根EBS大小? [AWS],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39768904/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com