AWS Backupを使ってEC2のバックアップの設定を行い、ついでに復元までやってみた

AWS Backupを使えば、AWSサービスのバックアップを簡単に自動化することができます。今回はAWS Backupを使って簡単なEC2のバックアップを作成します。また、EC2インスタンスの復元も試してきたいと思います。
2023.08.07

はじめに

こんにちは、おのやんです。

みなさん、AWSのバックアップを楽に管理したいと思ったことはありませんか?私はあります。

AWS Backupというサービスを使えば、AWSリソースのバックアップを簡単に管理できます。今回はAWS Backupを使って簡単なバックアップを作成し、復元までやってみたいと思います。

AWS Backupとは

AWS Backupは、フルマネージドなAWSサービスバックアップ管理サービスです。

バックアップジョブを自動化できるほか、バックアップの頻度や対象リソースなどを簡単に管理することができます。

下準備

今回は、バックアップ対象としてEC2インスタンスを2つ建てました。

これらのインスタンスのバックアップを作成したのち、これらを停止してバックアップからの復元を試します。

バックアップの作成

それでは、これら2つのec2インスタンスのバックアップを実際に作成していきましょう。

バックアップボールトの作成

まず、バックアップボールトを作成します。バックアップボールト(Backup Vault)は、バックアップを格納する倉庫のようなものです。作成されたバックアップは、こちらのバックアップボールトに保存されます。

まず、AWSのマネジメントコンソール上でAWS Backupに移動します。左側のナビゲーションバーに「バックアップボールト」があるので、こちらをクリックします。このページには「バックアップ保管庫の作成」のボタンがあるので、こちらをクリックします(英語のVaultが、日本語でいう保管庫)。

遷移先のページで、バックアップボールトに関する設定が行えます。ここでは、画面のようにボールトの名前を設定しておきます。

暗号化キーは、実際に格納するバックアップを暗号化して保護する際につかうキーのことです。今回はデフォルトのAWS Backupが使用する暗号化キーを選んでおきましょう。ちなみに、暗号化キーは後から変更することはできません。この点は注意していください。

設定できましたら、「バックアップ保管庫の作成」を押して、バックアップボールトを作成します。

しっかり作成できていますね!このec2-backup-vaultに、これから作成するバックアップを保存します。

バックアップの作成

それでは、バックアップを実際に作成していきましょう。

まず、左側のナビゲーションバーから「ダッシュボード」をクリックして、「バックアッププランの作成」をクリックします。 

すると、バックアッププランの作成画面に遷移します。ここでは、バックアップを格納する保存庫や頻度、バックアップ期間などを設定できます。

バックアッププランは、1つのバックアップの単位です。このバックアッププランに、追加のバックアップルールやバックアップ対象リソースを追加したりできます。

今回は、一からバックアッププランを設定してみましょう。ここでは分かりやすい名前をつけておきます。

バックアップルールも、ここで設定できます。さきほどと同じく分かりやすい名前をつけておきます。バックアップボールトは、さきほど作成したec2-backup-vaultを指定しておきます。

バックアップを保持する期間やコピー先も選択できます。今回は特にこちらは設定せずに、「プランを作成」ボタンを押して次に進みましょう。

こちらでは、リソースの割り当てを設定できます。今回はわかりやすい名前をつけておきます。IAMロールもデフォルトとしておきます。

バックアップの対象となるリソースも選択します。今回はEC2インスタンスに加えて、これらの作成時に自動でアタッチされるEBSもバックアップの対象とします。

これらの設定が完了したら、ページ下部の「リソースの割り当て」をクリックします。

このような画面が表示されたら、「続行」をクリックします。

これで、バックアッププランが完了しました!

ここで、バックアップが作成されるタイミングを見てみましょう。バックアッププランに設定されているバックアップルールには、「頻度:毎日 次において実施 05:00 AM UTC」とあります。

国際標準時の午前5時は、日本時間だと午後2時です。したがって、午後の2時にバックアップが作成されることになります。

午後2時を過ぎたタイミングでバックアップを確認すると、こちらの通り、ちゃんと作成されているのが分かります。実際にはバックアップの作成には時間がかかるため、だいたい午後4時くらいに確認してボールトを確認しました。作成時間が日本時間の14時になっていることから、正常にバックアップ作成の処理が走ったことが分かります。

ちなみにこれらのバックアップから分かる通り、AWSのサービスによって異なるデータが保存されます。今回のケースだと、EC2インスタンスとEBSのバックアップを作成しました。EC2インスタンスの場合、バックアップとして保存されるのはAMIです。EBSの場合、バックアップとして保存されるのはスナップショットになります。

またAWSのバックアップを取得した際は、2つのEC2インスタンスは同一のAMIから作成しました。そのため、AWS BackupにバックアップされるAMIは1つになります。さらにEBSスナップショットはインスタンスごとに区別されるため、バックアップされるスナップショットは2つ、ということになります。

バックアップから復旧

バックアップというからには、元のデータを復旧できなければ意味がありません。ということで、さきほど作成したEC2・EBSを削除して、バックアップから復元してみましょう。

EC2インスタンス・EBSの削除

EC2一覧画面に移動して、2つのインスタンスを選択し、「インスタンスを終了」をクリックします。

すると、こちらのポップアップが表示されます。デフォルトでは、EC2インスタンスが終了すると自動でEBSも削除されます。まとめて削除してもらいましょう。

EC2インスタンスの復元

再びAWS Backupのバックアップボールトに移動します。

最初に、EC2インスタンスの復元を行います。復旧ポイントから該当のAMIを選択し、「アクション」のプルダウンから「復元」を選択します。

すると、こちらのEC2インスタンスのスペックを選択する画面に移ります。今回はインスタンスタイプはt2.micro、VPCはデフォルトのものを、サブネットもデフォルトのものを選びました。

また、インスタンスIAMロールは、「IAMロールなしで続行」を選んでください。(※後述しますが、バックアップされたEC2インスタンスはIAMロールがアタッチされていません。そのため、本来なら復元後のEC2インスタンスに適切なIAMロールをアタッチする必要があります)。

IAMロールについてはデフォルトのままで大丈夫です。こちらで、「バックアップを復元」をクリックします。

正常に復元されると、こちらのように「完了」のステータスが表示されます。

EC2インスタンス画面を見ても、正しく復元されていることが分かります。

バックアップを取った2つのEC2インスタンスのAMIは同一だったので、ボールト内のAMIは1つでした。1つのAMIから復元されるEC2インスタンスは1つなので、今回ではbackup-target-1のみの復元となっています。

EBSの復元

同様にEBSの復元も行います。この時点で、さきほど復元したEC2インスタンスのEBSが表示されています。

AWS BackupのバックアップボールトからEBSスナップショットを選び、「復元」を選びます。

復元するEBSのスペックは、今回はすべてデフォルトのものを選びます。なおアベイラビリティゾーンのみ選択する必要があるので、東京リージョンを選んでおきます。

これらが選択できたら、「バックアップを復元」をクリックします。

正常に復元できたら、ステータス部分に「完了」と表示されます。

名無しではありますが、EBSボリュームも正常に復元できています。

おまけ:復元に失敗する例

さきほどのEC2インスタンスを復元する際に、インスタンスIAMロールについて「IAMロールなしで続行」を選んだと思います。

ここで「元のIAMロールで復元」を選ぶと、復元に失敗することが確認されています。

そのため、EC2インスタンスをバックアップする場合は「IAMロールなしで続行」を選びましょう。

またこの際、バックアップされたEC2インスタンスはIAMロールがアタッチされていません。そのため、本来なら復元後のEC2インスタンスに適切なIAMロールをアタッチする点には注意してください。

公式のre:Postにも同様の解決法が言及されているため、よければご参考ください。

おわりに

AWS Backupを使えば、複数のAWSリソースを効率的に管理できます。

特に、バックアップ作業を自動化できる点で、AWS Backupは非常に有用です。バックアップを取っていない際には、ぜひ使ってみましょう!

では!

参考資料