客戶在使用EC2過程中,難免會碰到諸如根卷損壞或作業系統配置錯誤,導致無法連線和登入的情況。這會增加日常遷移、重建等繁雜的工作。尤其是客戶在採用了儲存優化例項(如i3、i3en、d2等)下,自建的服務下(如Hadoop、Kafka),資料丟失、拷貝等成本會非常高。
這些在例項儲存上昂貴的資料複製操作、繁雜的遷移重建等工作,往往是客戶無法承受的。現在依託Amazon ReplaceRootVolume新特性,將幫助客戶解決上述問題,輕鬆應對出現的各種挑戰。
Amazon ReplaceRootVolume
新特性簡介
ReplaceRootVolume是一個新特性,它允許客戶替換EC2例項的EBS根卷,同時保留例項儲存資料、網路和IAM配置。當例項由於啟動卷問題而無法訪問時,可以避免丟失、複製例項儲存資料。在保留例項儲存資料的同時,可以將根卷還原為以前的快照。
ReplaceRootVolume功能的使用非常便捷、快速,無需複雜的操作,下面一起來詳細看看在d2機型上(其他機型是相同操作),如何配置和使用該功能。
Amazon ReplaceRootVolume
配置
目前最新版的Amazon Cli已經支援ReplaceRootVolume相關操作的命令,所以第一步需要將Amazon Cli升級到最新的版本,具體介紹可以參考官方文件:
https://docs.aws.amazon.com/z...
在Amazon Cli升級完成後,即可以開始使用ReplaceRootVolume建立任務了。
建立恢復任務
通過create-replace-root-volume-task命令,可以將例項的EBS根卷替換為最後一個已知的良好快照或啟動狀態。Create-replace-root-volume-task命令的輸入包括instance-id和snapshot-id。Instance-id是必需的欄位,snapshot-id是可選的。如果沒有提供快照id,那麼例項根卷將還原到其啟動狀態。
*如果根卷在建立了快照後,請至少保留一個快照檔案,以作為恢復點。
下面的命令將例項 i-055c4533f35830923的根卷,恢復到其啟動狀態。
aws ec2 create-replace-root-volume-task [--region 例項所在區域] [--instance-id <例項ID>]
下面的命令將例項 i-055c4533f35830923的根卷,恢復到指定快照狀態。
aws ec2 create-replace-root-volume-task [--region 例項所在區域] [--instance-id <例項ID>] [-snapshot-id <快照ID> ]
在執行恢復任務後,會看到如下輸出:
查詢任務執行狀態:
在執行完上述命令後,可以通過如下命令檢視當前任務的狀態:
aws ec2 describe-replace-root-volume-tasks –region “例項所在區域” –replace-root-volume-task-ids “執行完任務後輸出中的TaskId” –filters Name=instance-id,Values=“例項ID”,“例項ID”
可以看到任務執行的情況
檢查恢復前後的各項資訊,確認符合預期
恢復完成後的工作
在恢復完成後,首先需要檢查恢復的版本是否為預期版本。
然後將例項儲存重新掛載到對應掛載點(如恢復的系統版本已配置自動掛載,則無需手動掛載)。
檢查例項儲存中的資料是否符合預期。
使用控制檯執行恢復任務
上面介紹瞭如果使用命令列來執行ReplaceRootVolume操作,該操作同樣也能在控制檯便捷的執行。
通過在控制檯中選取需要執行的EC2,在儲存資訊中,找到替換根卷。
進入替換功能頁面後,選擇快照ID,即可建立根卷恢復任務。
在EC2的儲存資訊欄中,可以看到當前任務的狀態。
通過上述ReplaceRootVolume的操作方法和新的特性,簡單替換根卷後,即可以高效、便捷、輕鬆的處理例項無法登陸、例項儲存資料丟失風險和遷移成本高等問題。
本篇作者
邱萌
亞馬遜雲科技解決方案架構師
負責基於亞馬遜雲科技方案架構的諮詢和設計,推廣亞馬遜雲科技平臺技術和解決方案。在加入亞馬遜雲科技之前,曾在企業上雲、網際網路娛樂、媒體等行業耕耘多年,對公有云業務和架構有很深的理解。
吳金福
亞馬遜雲科技混合雲方案架構師
負責基於亞馬遜雲科技的混合雲方案架構的諮詢和設計。在加入亞馬遜雲科技之前,就職於大型集團企業。負責私有云資料中心的方案設計和建設,在資料中心基礎設施、虛擬化、高效能運算和混合雲等領域有著多年的經驗積累。