AWSのSAA(ソリューションアーキテクトアソシエイト)試験に受かることを目論むエンジニア1年目の者です!
最近はAWSの仕事を任されていて、特にEC2を動かすことが多いのですが、
先日、「大事なEC2インスタンスを誤って終了させてしまう」というビッグイベントを経験しまして(大ごとでは無かったけど死ぬほど動揺した)、
今回はその時どうやって復元に成功したかについて、備忘録として記しておきたいなと思います。
最初に言いたいこと
スナップショットを取得しておいてよかった!!!
EC2インスタンス終了するとどうなるか
EC2インスタンスの状態が「終了済み」になった場合、終了を取り消したり、再び起動させたりすることはできない。
そして、そのインスタンスにアタッチされているEBSも終了と同時に自動で削除されてしまう。
そう、一度終わったら元には戻れないんです…。
でも、まだ諦めちゃいけない。
終了したEC2インスタンスをどうにか元に戻したい時、最後の望みとなるのが、スナップショット。
スナップショットは、「ある時点(瞬間)における対象の全体像を丸ごと写し取ったもの」という意味で、ここではEBSのボリュームのイメージをS3に保存したものを指します。
復元の手順としては、スナップショットからAMIとEBSを復元し、復元したAMIからEC2インスタンスを作成し、そのインスタンスに復元したEBSをアタッチさせる流れとなります。
復元した手順
スナップショットからEBSとAMIを作成
・AWSコンソールを開き、左上のサービスから「EC2」を選択
・「スナップショット」を選択
・作成されたスナップショットを選択し、左上の「アクション」をクリック
・「ボリュームの作成」をクリック
・ボリュームタイプをGeneral Purpose SSD (gp3)に設定し、「ボリュームの作成」をクリック

・もう一度スナップショットを選択し、左上の「アクション」をクリック
・「イメージの作成」をクリック
・任意の名前を記入
・ルートデバイス名(例:/dev/sda1)をメモしておく
・「作成」をクリック

AMIからEC2インスタンスを作成しEBSを紐付ける
・EC2の左側のリストから「AMI」をクリック
・先ほど作成されたAMIを選択し、「起動」をクリック

・EC2の作成手順に従いEC2インスタンスを作成する
・作成されたインスタンスが実行中なのを確認したら右上の「インスタンスの状態」をクリック
・「インスタンスの停止」をクリック

・インスタンスが停止済みになったらEC2の左側のリストから「ボリューム」をクリック
・EC2作成と同時に作成されたボリュームを選択し、左上の「アクション」をクリック
・「ボリュームの強制デタッチ」を選択し、「デタッチする」をクリック

・スナップショットから作成されたボリュームを選択し、左上の「アクション」をクリック
・「ボリュームのアタッチ」を選択し、任意の名前を記入
・インスタンスを先ほど作成したEC2インスタンスを選択し、デバイスを先ほどメモしたルートデバイス名を記入して、「アタッチする」をクリック

・EC2の左側のリストから「インスタンス」をクリック
・停止したEC2インスタンスを選択し、「インスタンスの状態」をクリック
・「インスタンスの開始」をクリック
もう誤って終了させないために
機能として、EC2の起動設定時あるいはインスタンス作成後にで終了保護の設定ができます。
この機能のおかげで間違えてインスタンスを終了させてしまう事態を防ぐことができます。
EC2の起動設定で終了保護を設定
・EC2のインスタンスの画面で「インスタンスの起動」をクリック
・ステップ3「インスタンスの詳細の設定」で「終了保護の有効化」にチェックを入れる
インスタンス作成後に終了保護を設定
・EC2のインスタンスの画面で終了保護したいインスタンスをチェックし
・「アクション」→「インスタンスの設定」→「終了保護を変更」と進む
・「終了保護の有効化」にチェックを入れる
最後に
そもそも終了の処理をする時にインスタンスのチェックがついてることをきちんと確認しておけばよかった。反省。
ただ、これを機にスナップショットと終了保護機能の重要性に気づけたので、次に活かしていきたいと思います!
この記事はAWS初学者を導く体系的な動画学習サービスAWS Cloud Techの課題として作成しております。
[https://aws-cloud-tech.com](https://aws-cloud-tech.com)
私みたいなおっちょこちょいな人でもしっかり学べる大変優しい環境です!!!