AWS EC2避免误删软件包和数据的方法:取消“终止删除”默认配置

本文介绍AWS在终止实例的时候如何保留根卷,避免误删软件包和数据。

作者:光环云 尹晓征

在aws控制台创建EC2的时候,我们在添加存储步骤中,如果使用默认配置的情况下,“终止时删除”配置默认是被选中的,就是说在这个实例被终止的时候,所挂载的这个EBS卷也同时会被删除;这样带来的影响就是我们在这个卷中所配置的软件包或者存储的数据也就直接被删除了。

但是很不幸,aws的web管理控制台并没有选项取消这个默认配置,那么我们有没有方案能够满足这个需求呢?答案是有的,就是需要通过aws的cli命令行工具才能实现。

在aws的ec2服务中,这个关联属性是“DeleteOnTermination ”,当用户在终止一个ec2实例的时候,系统会检查这个属性值来确定是保留还是删除该卷。根据卷是否为实例的根卷,DeleteOnTermination 属性的默认值会有所不同,我们直接来看如何来处理这个问题吧。

首先我们先启动一个ec2实例,就是我们上面提到的,在添加存储时“终止时删除”配置选项使用默认配置。这时我们通过cli工具来查看一下DeleteOnTermination属性值,见下图:

 
AWS EC2避免误删软件包和数据的方法:取消“终止删除”默认配置

然后这个时候我们尝试终止这个实例,然后看一下系统提示:

 
AWS EC2避免误删软件包和数据的方法:取消“终止删除”默认配置

上图时当终止实例时,系统给出的提示,在警告中明确给出了对应信息。

然后我们来操作将DeleteOnTermination属性值置为false,使用命令modify-instance-attribute,完整命令为:aws ec2 modify-instance-attribute --instance-id <instance-id> --block-device-mappings "[{\"DeviceName\": \"<RootDeviceName>\",\"Ebs\":{\"DeleteOnTermination\":false}}]",将红色斜体字部分根据实际情况进行修改。然后我们执行指令,并查看更改结果:

 
AWS EC2避免误删软件包和数据的方法:取消“终止删除”默认配置

我们看到实例对应的属性已经被修改了,然后我们在看一下终止实例时系统的提示:

 
AWS EC2避免误删软件包和数据的方法:取消“终止删除”默认配置

这时我们已经看到了系统提示的变化了,这个时候我们来尝试直接终止实例后,EBS卷的状态。

 
AWS EC2避免误删软件包和数据的方法:取消“终止删除”默认配置

上图实例已经被正常终止了。

 
AWS EC2避免误删软件包和数据的方法:取消“终止删除”默认配置

上图我们看到这个EBS卷的状态依然是正常,仍然可以继续使用。

原文地址:https://www.jianshu.com/p/f26d9546d800