如何修改AWS CloudFormation模板让EC2仅挂载gp3 EBS卷
解决CloudFormation部署EC2时仅挂载gp3 EBS卷的问题
你的模板只定义了附加卷/dev/sdf为gp3类型,但EC2实例的根卷会默认继承所用AMI的卷类型(通常是gp2),因此会同时存在gp2和gp3两种卷。要让实例仅挂载gp3卷,需要在BlockDeviceMappings中同时覆盖根设备的配置,将其也指定为gp3类型。
修改后的模板片段
"MyServer":{ "Type":"AWS::EC2::Instance", "DependsOn":[ "ExecuteCheckCompliance" ], "Properties":{ "ImageId":{ "Fn::FindInMap":[ "Ami", { "Ref":"AWS::Region" }, "ImageId" ] }, "KeyName":{ "Ref":"keyPairName" }, "SecurityGroupIds":[ { "Ref":"InstanceSecurityGroup" } ], "IamInstanceProfile":{ "Ref":"RootInstanceProfile" }, "InstanceType":{ "Fn::FindInMap":[ "Model2InstanceType", { "Ref":"Model" }, "InstanceType" ] }, "SubnetId":{ "Ref":"Subnet" }, "DisableApiTermination":"True", "BlockDeviceMappings":[ // 覆盖根设备,指定为gp3 { "DeviceName": "/dev/sda1", // 替换为你的AMI根设备名称,可在AWS控制台AMI详情中查看 "Ebs":{ "DeleteOnTermination":"True", "VolumeType":"gp3", "VolumeSize": 30 // 根据需求调整根卷大小 } }, // 原有gp3附加卷 { "DeviceName":"/dev/sdf", "Ebs":{ "DeleteOnTermination":"True", "VolumeType":"gp3", "VolumeSize": 500 } } ] } }
关键说明
- 根设备名称:不同AMI的根设备名称可能不同(如
/dev/xvda或/dev/sda1),可在AWS控制台进入目标AMI的详情页面,查看“根设备名称”字段获取准确值。 - 卷大小:根卷大小可根据业务需求调整,若想保留AMI默认的根卷大小,也可以去掉
VolumeSize参数,CloudFormation会自动继承AMI的配置。
内容的提问来源于stack exchange,提问作者Orly Orly
相关产品推荐
相关产品推荐

