Hank Lin

A new blog

Recovery of EBS-boot EC2 Instances. Part 2

| Comments

E is for Elastic

EC2在cloud computing裡, 提供的是最底層的IaaS. 這代表著很多比較高階的東西, 如: provisioning, monitoring, backup and disaster recovery 等等. 都要自己做, 這對development或deployment會增加許多額外負擔. 相對的, 以正面的觀點來看, 代表著EC2有最大的彈性, 能應付各種不同的需求. 也能用不同的作法來達成目的.

A picture is worth a thousand words

前一陣子我寫了一篇Recovery of EBS-boot EC2 Instances, 提供一種回復EBS-boot 的EC2 instances作法. 但是之前在alestic有看到一篇Move a Running EBS Boot Instance to New Hardware on Amazon EC2, 其實是作一樣的事. 不過我現在覺得Eric Hammond的作法比較好, 步驟少一點, 要清理的東西也少一些. 現在我把Eric Hammond的作法, 和我的作法用圖解比較一下. (啊! 好難得畫圖啊! 雖然本blog以圖少著稱, 但是偶爾還是得花點時間, 畫一些讓人比較易懂的圖咩!) 我先把我的作法用圖解講一次, 可以和上一篇的文字對照著看.

My approach

(a) 一開始, 有之前做好的一個EBS-boot image, (EBS-boot image的作法可以看creating EBS-backed AMIs from running instances 這篇) 我把它叫snap-1, 把snap-1註冊為AMI時, 得到AMI ID : ami-1. 然後我用ami-1來開新的EC2 instances. EC2 會依據snap-1 開一個新的EBS Volume, Volume ID是vol-1, 然後用vol-1作為boot partition, 開了一個新的EC2 instance, Instance ID 是i-1 (b) 有一天, 很不幸的, i-1掛了. 但是vol-1上的資料還在!! (c) 我的作法, 對vol-1作snapshot, 得到snap-2, 也把vol-1i-1 detach 掉. (d) 然後用snap-2作AMI, 得到ami-2, 然後用ami-2開新的EC2 instance, 新的instance的volume 是vol-2 (e) 最後, 把i-1, ami-1, snap-1, vol-1都給清乾淨, 免得浪費錢咩!

Eric’s approach

(a), (b)流程和上面一樣, 但是從(c)開始, 就不一樣了咩! (c) 直接用舊的AMI(ami-1, 用的是舊的snapshot: snap-1) 開一個新的EC2 instance, 得到Instance ID: i-2, Volume ID: vol-2. (d) 把i-2先stop一下, 然後把vol-2i-2 detach掉. 然後把原來的vol-1 attach回i-2. 最後再把i-2重新start就可以了! (e) 要清的東西只有vol-2, i-1!

Conclusion

好啦, 我承認Eric的作法確實比較好啦! 步驟較簡單, 要清理的東西也比較少. 所以我以後也會改用Eric的作法咩!