背景
「EC2の"終了"は"削除"だ」 めちゃくちゃデカい声で言いたい.
仕事を通して,AWSに関する一通りの基礎知識が身についたころ,
「テスト環境EC2インスタンスを削除する」やらかしをしてしまった.
結構間違えると思うので,屍として経緯と3つの学びを残しておこうと思う.
失敗した経緯
EC2にsshで接続し,「EC2が起動した際に自動でプロセスが立ち上がるようにする」作業していた.
プロセス設定の作業をやり終えた後,動作確認をするため,EC2をAWSコンソールから再起動した.
ssh接続して,指定したプロセスが動いているのを確認したのちに,
「次は,シャットダウンして起動する方の動作確認」をしようと考えた.
普段別の人が,EC2を落とす担当だったのでシャットダウンをするのは初めての作業だった.
EC2インスタンスの状況変更のオプションのうち,シャットダウンできそうなのは,"停止"・"休止"・"終了"の3つがある.迷った.
自分がよく使うwin10の電源オプションに当てはめて解釈した.
3つあるうち,停止はスリープ的なもの,休止は文字通り休止状態,終了はシャットダウンと解釈し,
「インスタンスを終了」をした.すると確認画面が出る.
... わからない文字が並んだ.
自分にとって,EBS-Backedインスタンス/ルートEBSボリュームが何か当然分からない.
「ローカルドライブにあるストレージは失われます」に関しては,思考停止して読んでいない.
もしくは,「割り当てたストレージへの接続が切れるだけでどこかにはデータが残っている」と解釈したかのどちらかだったと思う.
今読むと,明らかに「インスタンスにあるデータが消えます」という意味だと思う.
そしてそのまま終了ボタンを押して...
本番環境じゃなくてよかったと本当に思う.
学んだこと
終了保護をしよう:削除不可
作業中のインスタンスを,削除するタイミングってないと思う.
なので,「削除できないようにする」方法を取るならば,終了保護を有効にするのが一番早い.
終了保護を有効化すると,終了確認画面にも遷移するし,終了ボタンも押せるが,
押した後に削除できないエラーが発生し,削除処理が止まる.
終了確認画面では,終了保護が有効になっている情報も表示される.
バックアップを取る:復旧可能
バックアップに関しては,今回のような人災以外にもしておいて損はないと思う.
AWSでバックアップを取ることを,スナップショットの作成と言うので,
毎回思い出すのに時間がかかる.
EC2インスタンスを指定してバックアップするようにしている.
分からなかったら聞こう:事故防止
自分は聞き方に関して,以下の順で話すようにルールを設けている(とはいいつつ得意ではない).
- 自分のしたい事を最初に言う
「EC2のインスタンスをシャットダウンしたい」 - 自分がつまずいていることをする
「インスタンスの状態の選択肢が3つあって分からない」 - 補足する形で情報共有をする
「現在,テスト環境で自動でプロセスが立ち上がるようにする設定をしていて....」
この形式だと,相手がせっかちなら1.か2.で情報をもらえて,
ちゃんと適材適所つかんで処置・教育目的で話を聞いてくれる場合でも3.まで行けば情報をもらえる形となる.
まとめ
「EC2の"終了"は"削除"だ」
インスタンス1つを生贄にしたことで得られたものは大きいと思う.
終了保護・バックアップ・聞くの3つは可能な限り必ず続けていく.