在aws控制檯創建EC2的時候,我們在添加存儲步驟中,如果使用默認配置的情況下,“終止時刪除”配置默認是被選中的,就是說在這個實例被終止的時候,所掛載的這個EBS卷也同時會被刪除;這樣帶來的影響就是我們在這個卷中所配置的軟件包或者存儲的數據也就直接被刪除了。
但是很不幸,aws的web管理控制檯並沒有選項取消這個默認配置,那麼我們有沒有方案能夠滿足這個需求呢?答案是有的,就是需要通過aws的cli命令行工具才能實現。
在aws的ec2服務中,這個關聯屬性是“DeleteOnTermination
”,當用戶在終止一個ec2實例的時候,系統會檢查這個屬性值來確定是保留還是刪除該卷。根據卷是否爲實例的根卷,DeleteOnTermination
屬性的默認值會有所不同,我們直接來看如何來處理這個問題吧。
首先我們先啓動一個ec2實例,就是我們上面提到的,在添加存儲時“終止時刪除”配置選項使用默認配置。這時我們通過cli工具來查看一下DeleteOnTermination
屬性值,見下圖:
然後這個時候我們嘗試終止這個實例,然後看一下系統提示:
上圖時當終止實例時,系統給出的提示,在警告中明確給出了對應信息。
然後我們來操作將DeleteOnTermination
屬性值置爲
false
,使用命令
modify-instance-attribute
,完整命令爲:
aws ec2 modify-instance-attribute --instance-id <instance-id> --block-device-mappings "[{\"DeviceName\": \"<RootDeviceName>\",\"Ebs\":{\"DeleteOnTermination\":false}}]"
,將紅色斜體字部分根據實際情況進行修改。然後我們執行指令,並查看更改結果:
我們看到實例對應的屬性已經被修改了,然後我們在看一下終止實例時系統的提示:
這時我們已經看到了系統提示的變化了,這個時候我們來嘗試直接終止實例後,EBS卷的狀態。
上圖實例已經被正常終止了。
上圖我們看到這個EBS卷的狀態依然是正常,仍然可以繼續使用。
作者:光環雲 尹曉徵