实例终止时保留数据
根据用例,您可能想要在 Amazon EC2 实例终止时保留实例存储卷,或 Amazon EBS 卷上的数据。当终止实例时,实例存储卷上的数据不再保留。如果需要在实例的生命周期之后保留存储在实例存储卷上的数据,必须手动将该数据复制到更持久的存储中,例如 Amazon EBS 卷、Amazon S3 存储桶或 Amazon EFS 文件系统。有关更多信息,请参阅 适用于 Amazon EC2 实例的存储选项。
对于 Amazon EBS 卷上的数据,Amazon EC2 会使用每个附加的 Amazon EBS 卷的 DeleteOnTermination
属性值,来确定是保留还是删除该卷。
根据卷是实例的根卷还是附加到实例的非根卷,DeleteOnTermination
属性的默认值会有所不同。
- 根卷
-
默认情况下,启动实例后,实例根卷的
DeleteOnTermination
属性将设置为true
。因此,当某个实例终止时,默认为删除该实例的根卷。 - 非根卷
-
默认情况下,当您将非根 EBS 卷附加到某个实例时,其
DeleteOnTermination
属性将设置为false
。因此,默认为保留这些卷。注意
在该实例终止后,您可以为保留的卷拍摄快照,或将其附加到另一个实例。您必须删除卷以避免产生更多费用。
DeleteOnTermination
属性可由 AMI 的创建者以及实例的启动者设置。当 AMI 的创建者或实例的启动者更改属性时,新的设置将覆盖原始 AMI 默认设置。我们建议您在使用 AMI 启动实例后验证 DeleteOnTermination
属性的默认设置。
要验证在实例终止时是否会删除 Amazon EBS 卷,请在实例的详细信息窗格中查看卷的详细信息。在存储库的存储选项卡,在块储存设备中,向右滚动以查看终止时删除设置。
-
如果为是,则在实例终止时将会删除卷。
-
如果为否,则在实例终止时将不会删除卷。任何在实例终止时未删除的卷将继续产生费用。
将根卷更改为在启动时持久保留
当您启动实例时,可以使用控制台更改 DeleteOnTermination
属性。要对正在运行的实例更改此属性,您必须使用命令行。
使用以下方法之一将根卷更改为在启动时持久保留。
将运行的实例的根卷更改为持久保留
您可以使用以下命令之一将正在运行的 EBS 支持实例的根设备卷更改为持久保留。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2。
modify-instance-attribute (AWS CLI)
Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)
例如,使用以下命令:
aws ec2 modify-instance-attribute --instance-id
i-1234567890abcdef0
--block-device-mappings file://mapping.json
在 mapping.json
中,指定设备名称,例如 /dev/sda1
或 /dev/xvda
,并为 --DeleteOnTermination
指定 false
。
[ { "DeviceName": "
device_name
", "Ebs": { "DeleteOnTermination": false } } ]