在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卷的狀態依然是正常,仍然能夠繼續使用。
做者:光環雲 尹曉徵
查看原文