Amazon web services CloudFormation/CDK:如何替换EC2实例并保留EBS存储?
使用AWS CDK,可以如下方式创建带有附加EBS的EC2实例:Amazon web services CloudFormation/CDK:如何替换EC2实例并保留EBS存储?,amazon-web-services,amazon-ec2,amazon-cloudformation,aws-cdk,Amazon Web Services,Amazon Ec2,Amazon Cloudformation,Aws Cdk,使用AWS CDK,可以如下方式创建带有附加EBS的EC2实例: BlockDevice durableStorage = BlockDevice.builder() .deviceName("/dev/sdf") .volume(BlockDeviceVolume.ebs(
BlockDevice durableStorage = BlockDevice.builder()
.deviceName("/dev/sdf")
.volume(BlockDeviceVolume.ebs(
DURABLE_STORAGE_GB,
EbsDeviceOptions.builder()
.deleteOnTermination(false)
.encrypted(true)
.volumeType(EbsDeviceVolumeType.GP2)
.build()))
.build();
Instance instance = new Instance(
this,
"MyInstance",
InstanceProps.builder()
.blockDevices(List.of(durableStorage))
// more config here
.build());
如果有涉及EC2实例替换的堆栈更新,如何管理EBS附件?旧实例将一直保留到创建新实例,然后才将其销毁,因此应如何管理EBS卷到新服务器的传输?这会以云计算的方式进行管理吗
那么,应该如何管理EBS卷到新服务器的传输呢?这会以云计算的方式进行管理吗
它没有得到管理。需要更换实例(例如AMI id更改)的更新将失败,并显示以下错误消息:
不支持更新资源类型AWS::EC2::VolumeAttachment
处理此问题的一种方法是分阶段进行更新。首先,删除模板中的附件(只需将其注释掉),并更新堆栈以将实例与卷分离。然后对实例进行替换更新。最后,取消对附件的注释并再次更新。这将导致卷重新附加到新实例
p、 美国
我写这个答案是基于我在CloudFormation中为这个特定场景做的快速实验,我为这个问题做了这个实验。也许有更好的办法,我现在不知道