在aws控制台建立EC2的时候,咱们在添加存储步骤中,若是使用默认配置的状况下,“终止时删除”配置默认是被选中的,就是说在这个实例被终止的时候,所挂载的这个EBS卷也同时会被删除;这样带来的影响就是咱们在这个卷中所配置的软件包或者存储的数据也就直接被删除了。php
可是很不幸,aws的web管理控制台并无选项取消这个默认配置,那么咱们有没有方案可以知足这个需求呢?答案是有的,就是须要经过aws的cli命令行工具才能实现。web
在aws的ec2服务中,这个关联属性是“DeleteOnTermination
”,当用户在终止一个ec2实例的时候,系统会检查这个属性值来肯定是保留仍是删除该卷。根据卷是否为实例的根卷,DeleteOnTermination
属性的默认值会有所不一样,咱们直接来看如何来处理这个问题吧。app
首先咱们先启动一个ec2实例,就是咱们上面提到的,在添加存储时“终止时删除”配置选项使用默认配置。这时咱们经过cli工具来查看一下DeleteOnTermination
属性值,见下图:工具
而后这个时候咱们尝试终止这个实例,而后看一下系统提示:spa
上图时当终止实例时,系统给出的提示,在警告中明确给出了对应信息。命令行
而后咱们来操做将DeleteOnTermination
属性值置为false
,使用命令modify-instance-attribute
,完整命令为:aws ec2 modify-instance-attribute --instance-id <instance-id> --block-device-mappings "[{"DeviceName": "<RootDeviceName>","Ebs":{"DeleteOnTermination":false}}]",将<instance-id>和<RootDeviceName>部分根据实际状况进行修改。而后咱们执行指令,并查看更改结果:code
咱们看到实例对应的属性已经被修改了,而后咱们在看一下终止实例时系统的提示:blog
这时咱们已经看到了系统提示的变化了,这个时候咱们来尝试直接终止实例后,EBS卷的状态。get
上图实例已经被正常终止了。it
上图咱们看到这个EBS卷的状态依然是正常,仍然能够继续使用。
做者:光环云 尹晓征
查看原文