在終止AWS EC2實例的時候如何保留根卷

在aws控制檯建立EC2的時候,咱們在添加存儲步驟中,若是使用默認配置的狀況下,「終止時刪除」配置默認是被選中的,就是說在這個實例被終止的時候,所掛載的這個EBS卷也同時會被刪除;這樣帶來的影響就是咱們在這個卷中所配置的軟件包或者存儲的數據也就直接被刪除了。php

可是很不幸,aws的web管理控制檯並無選項取消這個默認配置,那麼咱們有沒有方案可以知足這個需求呢?答案是有的,就是須要經過aws的cli命令行工具才能實現。web

在aws的ec2服務中,這個關聯屬性是「DeleteOnTermination」,當用戶在終止一個ec2實例的時候,系統會檢查這個屬性值來肯定是保留仍是刪除該卷。根據卷是否爲實例的根卷,DeleteOnTermination屬性的默認值會有所不一樣,咱們直接來看如何來處理這個問題吧。app

首先咱們先啓動一個ec2實例,就是咱們上面提到的,在添加存儲時「終止時刪除」配置選項使用默認配置。這時咱們經過cli工具來查看一下DeleteOnTermination屬性值,見下圖:工具

image1.png

而後這個時候咱們嘗試終止這個實例,而後看一下系統提示:spa

image2.png

上圖時當終止實例時,系統給出的提示,在警告中明確給出了對應信息。命令行

而後咱們來操做將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

image3.png

咱們看到實例對應的屬性已經被修改了,而後咱們在看一下終止實例時系統的提示:blog

image4.png

這時咱們已經看到了系統提示的變化了,這個時候咱們來嘗試直接終止實例後,EBS卷的狀態。get

image5.png

上圖實例已經被正常終止了。it

image6.png

上圖咱們看到這個EBS卷的狀態依然是正常,仍然能夠繼續使用。


做者:光環雲 尹曉徵
查看原文

相關文章
相關標籤/搜索