こんにちは、櫻井です。
EC2のスナップショットを作成しておくことで、利用しているインスタンスが壊れてしまった場合や、インスタンスを間違って削除してしまった場合にスナップショットを作成した時点の状態までの復元をすることが可能になります。
さて、今回はEC2のスナップショットからインスタンスを復元する方法を2種類のやり方で紹介しようと思います。
1つ目は、スナップショットからEBSボリューム(以下ボリューム)を作成して対象のインスタンスのボリュームと付け替える方法です。
2つ目は、スナップショットからAMIを作成し、インスタンスを起動させる方法です。
手順
AWSマネジメントコンソール上での作業をするので、AWSにログインしておいてください。
2パターン共通でやること
復元できたかの確認がしやすいようにEC2にファイルを配置する
スナップショットを作成する対象のインスタンスにログインし、以下のコマンドで “restore_test.txt” というファイルを任意のディレクトリに配置します。
1 |
$touch restore_test.txt |
正常にファイルが作成されたかの確認をします。
1 2 |
$ls restore_test.txt |
インスタンス内の作業は一旦終わりなのでログアウトしてください。
インスタンスからスナップショットを作成する
EC2に移動し、左側のタブの “ボリューム” を選択します。スナップショットを作成したいインスタンスにアタッチされているボリュームを選択し”アクション” から “スナップショットの作成” をクリックします。
“スナップショットの作成” をクリックします。
ネームタグを付けていますが、わかりやすくするために付けたものなので必須ではありません。
“restore_test.txt”を削除する
“復元できたかの確認がしやすいようにEC2にファイルを配置する” のステップで作成した “restore_test.txt” を 対象のインスタンスから削除します。先程 “restore_test.txt” を配置したディレクトリで以下のコマンドを実行してください。
1 |
$rm restore_test.txt |
削除されているかの確認をします。以下のコマンドを実行して”restore_test.txt” が出力されていなければ削除できています。
1 |
$ls |
これで、先ほど作成したスナップショットには “restore_test.txt” があり、対象のインスタンスには “restore_test.txt” がないという状況を作れました。
“restore_test.txt” があるスナップショットから作成したボリュームを対象のインスタンスのボリュームと付け替え、インスタンスにログインをして”restore_test.txt” があれば復元をすることが出来たということになります。
パターン1:スナップショットからボリュームを作成して対象のインスタンスのボリュームと付け替える
対象のインスタンスのIDをクリックして、詳細画面に移動します。
詳細画面の下部の “ストレージ” のタブを開き “ルートボリュームを置き換える” をクリックします。
スナップショットの欄で先ほど作成したスナップショットを選択し “置き換えタスクの作成” をクリックします。
選択するスナップショットの候補に先程選択したスナップショットがなかった場合は、作成したスナップショットのIDをコピー&ペーストしてください。
しばらく待つと、”タスクの状態” が “保留中” から “成功” に変わります。これでボリュームの置き換えが出来ました。これで復元ができているはずです。
ではインスタンスにログインして、復元が出来ているかの確認をします。
先程 “restore_test.txt” を配置したディレクトリに移動して以下のコマンドを実行してください。”restore_test.txt” ファイルがあれば成功です。
1 2 |
$ls restore_test.txt |
パターン2:スナップショットからAMIを作成し、インスタンスを起動させる
左側のタブからスナップショットを選択し、先ほど作成したスナップショットを選択します。 “アクション” から “スナップショットからイメージを作成” をクリックします。
任意のAMI名を入力し、その他はデフォルトで “イメージの作成” をクリックします。
左側のタブから “AMI” を選択し、先ほど作成したAMIを選択して “AMIからインスタンスを起動” をクリックします。
インスタンスを設定を行い “インスタンスの起動” をクリックします。
AMIから作成したインスタンスにログインして “restore_text.txt”を配置したディレクトリに移動します。以下のコマンドを実行し “restore_text.txt” が出力されていれば復元成功です。
1 2 |
$ls restore_test.txt |
まとめ
カジュアル面談も実施中!
ギークフィードではAWSエンジニアを募集しています。
弊社に興味を持っていただいたり、会社のことをカジュアルに聞いてみたいという場合でも、ご気軽にフォームからお問い合わせください。その場合はコメント欄に、カジュアルにお話したいです、と記載ください!
- 特定の時間あたりのlambda実行数をSlackに通知する - 2023-12-23
- 公衆電話からでも使える電話帳サービスをLEX + AmazonConnectで作ってみた - 2023-12-19
- SQSを使ってlambdaを10秒ごとに定期実行する - 2023-12-14
- Slack と AWS の電話番号登録アプリ – Bolt + CDK ソースコード解説 - 2023-03-26
- SlackとAWSを組み合わせた電話番号登録アプリの開発 – Boltフレームワーク+CDKで作ってみた - 2023-03-26