目次Category
はじめに
今回の記事では、AWS Backupを使用してAWSリソースのバックアップと復元を行います。
バックアップ対象としてAmazon DynamoDBのテーブルを作成し、AWS Backupからオンデマンドバックアップを取得します。
その後、元データを削除して障害を再現し、作成したRecovery Pointから新しいDynamoDBテーブルとして復元します。
- バックアップ対象のDynamoDBテーブルを作成する
- テストデータを登録する
- Backup Vaultを作成する
- オンデマンドバックアップを取得する
- Recovery Pointを確認する
- 元データを削除して障害を再現する
- Recovery PointからDynamoDBテーブルを復元する
- 復元されたデータを確認する
- Backup Planによる自動バックアップを確認する
- 作成したリソースを削除する
DynamoDB
ojt-backup-[name]-01
│
│ id:001
│ message:AWS Backup test
↓ Backup
AWS Backup
└── Backup Vault
ojt-backup-vault-[name]-01
└── Recovery Point
↓ Restore
DynamoDB
ojt-backup-restore-[name]-01今回のポイントは、バックアップ作成 → 元データ削除 → バックアップから復元 → 削除前のデータを確認という一連の流れです。
0. AWS Backupについて
AWS Backupは、AWS上のさまざまなリソースのバックアップを一元的に管理・自動化するためのフルマネージドサービスです。バックアップのスケジュールや保存期間などをAWS Backup側でまとめて管理できます。
Amazon EBS
Amazon EC2
Amazon DynamoDB
Amazon EFS
Amazon RDS
Amazon S3
│
↓
AWS Backup
│
├── バックアップ
├── 保存期間管理
├── スケジュール管理
└── 復元Backup Vault
バックアップを保存・整理するための入れ物です。
Backup Plan
いつバックアップするかのスケジュールや、どのくらい保存するかなどを定義する設定です。
On-demand backup
スケジュールを待たず、その場ですぐに実行するバックアップです。
Recovery Point
復元に使用するバックアップです。
1. バックアップ対象のDynamoDBテーブルを作成する
1-1. DynamoDBテーブルを作成する
1. AWSマネジメントコンソールで「DynamoDB」を検索します。
2. Amazon DynamoDBを開きます。
3. 左側メニューから「テーブル」を開きます。
4. 「テーブルの作成」をクリックします。
テーブル名: ojt-backup-[name]-01 パーティションキー: id データ型: 文字列(String) ソートキー: 設定しない
5. その他は基本的にデフォルトのままとします。
6. 「テーブルの作成」をクリックします。
7. テーブルのステータスが「ACTIVE」になることを確認します。
[name] の部分は、自分の識別名へ置き換えてください。1-2. テストデータを登録する
1. ojt-backup-[name]-01 を開きます。
2. 「テーブルアイテムを探索」をクリックします。
3. 「項目を作成」をクリックします。
4. idに 001 を入力します。
5. 新しい属性として文字列を追加します。
属性名:message 値:AWS Backup test
6. 「項目を作成」をクリックします。
7. 以下のデータが表示されることを確認します。
id:001 message:AWS Backup test
2. Backup Vaultを作成する
AWS Backupで取得したバックアップはBackup Vaultで保存・整理します。
2-1. Backup Vaultを作成する
1. AWS Backupを開きます。
2. 左側メニューから「バックアップボールト」を開きます。
3. 「バックアップボールトを作成」をクリックします。
バックアップボールト名: ojt-backup-vault-[name]-01 暗号化キー: デフォルトのAWS Backup KMSキー
4. その他はデフォルトのままとします。
5. 「ボールトを作成」をクリックします。
6. ojt-backup-vault-[name]-01 が表示されていることを確認します。
3. オンデマンドバックアップを作成する
本来はBackup Planを使って定期バックアップを設定できますが、今回はバックアップ動作をすぐ確認するためオンデマンドバックアップを使用します。
3-1. オンデマンドバックアップを作成する
1. AWS Backupのオンデマンドバックアップ作成画面を開きます。
2. リソースタイプとして「DynamoDB」を選択します。
3. リソースとして ojt-backup-[name]-01 を選択します。
4. 「今すぐバックアップを作成」を選択します。
5. 保持期間を設定します。例:7日
6. Backup Vaultとして ojt-backup-vault-[name]-01 を選択します。
7. IAMロールはデフォルトのロールを選択します。
8. 「オンデマンドバックアップを作成」をクリックします。
3-2. バックアップジョブを確認する
1. 左側メニューから「ジョブ」を開きます。
2. 今回作成したバックアップジョブを探します。
3. ステータスが「Completed(完了)」になることを確認します。
3-3. Recovery Pointを確認する
1. 「バックアップボールト」を開きます。
2. ojt-backup-vault-[name]-01 を選択します。
3. Recovery Pointが作成されていることを確認します。
4. リソースタイプがDynamoDBであることを確認します。
4. 元データを削除して障害を再現する
バックアップから復元できることを確認するため、今回はDynamoDBテーブルそのものではなく、登録した1件のデータだけを削除します。
4-1. テストデータを削除する
1. DynamoDBから ojt-backup-[name]-01 を開きます。
2. 「テーブル項目を探索」を開きます。
3. id:001 / message:AWS Backup test のデータを選択します。
4. 「項目を削除」をクリックします。
5. 削除後、テーブルにデータが存在しないことを確認します。
5. Recovery PointからDynamoDBを復元する
DynamoDBのバックアップを復元する場合、既存テーブルを直接上書きせず、新しいテーブルとして復元します。
元テーブル: ojt-backup-[name]-01 ↓ Restore 復元テーブル: ojt-backup-restore-[name]-01
5-1. バックアップから復元する
1. AWS Backupを開きます。
2. 左側メニューから「保護されたリソース」を開きます。
3. ojt-backup-[name]-01 を選択します。
4. 作成したRecovery Pointを選択します。
5. 「復元」をクリックします。
6. 新しいテーブル名に ojt-backup-restore-[name]-01 を入力します。
7. Restore roleはAWS Backupのデフォルトロールを選択します。
8. その他は基本的にデフォルトとします。
9. 「バックアップを復元」をクリックします。
5-2. 復元ジョブを確認する
1. AWS Backupの「ジョブ」を開きます。
2. 「復元ジョブ」を確認します。
3. 今回実行したRestore Jobを探します。
4. ステータスが「Completed」になることを確認します。
5-3. 復元されたデータを確認する
1. Amazon DynamoDBを開きます。
2. ojt-backup-restore-[name]-01 が作成されていることを確認します。
3. テーブルのステータスが「ACTIVE」になることを確認します。
4. 「テーブル項目を探索」を開きます。
5. 以下のデータが存在することを確認します。
id:001
message:AWS Backup test削除前のデータが確認できれば復元成功です。
6. Backup Planを作成する
オンデマンドバックアップは「今すぐ1回バックアップする」方法です。実際のシステムではBackup Planを使用して定期バックアップを自動化できます。
毎日1回バックアップ
↓
Backup Vaultへ保存
↓
7日間保持
↓
期限が来たら削除6-1. Backup Planを作成する
1. AWS Backupから「バックアッププラン」を開きます。
2. 「バックアッププランを作成」をクリックします。
3. 「新しいプランを立てる」を選択します。
バックアッププラン名:
ojt-backup-plan-[name]-01
バックアップルール名:
daily-backup
Backup Vault:
ojt-backup-vault-[name]-01
バックアップ頻度:
毎日4. その他は基本的にデフォルトとします。
5. 「プランを作成」をクリックします。
6-2. Backup Planへリソースを割り当てる
1. ojt-backup-plan-[name]-01 を開きます。
2. 「リソースを割り当て」をクリックします。
3. リソース割り当て名に ojt-backup-assignment-[name]-01 を入力します。
4. IAMロールはデフォルトロールを選択します。
5. リソース選択方法としてResource IDを使用します。
6. リソースタイプとしてDynamoDBを選択します。
7. 対象として ojt-backup-[name]-01 を選択します。
8. 「リソースを割り当て」をクリックします。
7. On-demand backupとBackup Planの違い
On-demand backup
今すぐバックアップしたい場合に使用します。設定変更前、システム更新前、バックアップ動作のテストなどが例です。
Backup Plan
定期的に自動バックアップしたい場合に使用します。毎日・毎週のバックアップや一定期間の保持などに利用します。
On-demand backup = 手動バックアップ Backup Plan = 自動バックアップ
8. AWS Backupのメリットと今回のポイント
- 複数のAWSサービスのバックアップを一元管理できる
- 定期バックアップを自動化できる
- バックアップの保存期間を管理できる
- Recovery Pointからリソースを復元できる
- サービスごとにバックアップ用スクリプトを作成する必要性を減らせる
AWS Backup:AWSリソースのバックアップを一元管理するサービス
Backup Vault:バックアップを保存・整理する場所
Recovery Point:復元に使用するバックアップ
On-demand backup:必要なタイミングで実行するバックアップ
Backup Plan:バックアップのスケジュールや保存期間を定義する設定9. ハンズオンで作成したリソースを削除する
削除対象が今回のハンズオンで作成したリソースであることを確認してください。Backup VaultはRecovery Pointが残っている状態では削除できないため、先にRecovery Pointを削除します。
9-1. Backup Planを削除する
ojt-backup-plan-[name]-01 を選択して削除します。定期バックアップが実行されないよう、先にBackup Planを削除します。
9-2. Recovery Pointを削除する
ojt-backup-vault-[name]-01 を開き、今回作成したRecovery Pointを削除します。
9-3. Backup Vaultを削除する
Recovery Pointが存在しないことを確認してから ojt-backup-vault-[name]-01 を削除します。
9-4. DynamoDBテーブルを削除する
ojt-backup-[name]-01 ojt-backup-restore-[name]-01
上記2つのテーブルを削除します。
9-5. IAMロールを確認する
AWS Backupの操作で新しいIAMロールが作成された場合は、他のリソースで使用されていないことを確認し、不要な場合のみ削除します。
まとめ
今回のハンズオンでは、DynamoDBのデータをAWS Backupでバックアップし、Recovery Pointから新しいDynamoDBテーブルへ復元する一連の流れを確認しました。
DynamoDBにデータを作成 ↓ AWS Backupでバックアップ ↓ Recovery Pointを作成 ↓ 元データを削除 ↓ Recovery Pointから復元 ↓ 削除前のデータを確認
AWS Backupは、バックアップを取得するだけではなく、「何をバックアップするか」「いつバックアップするか」「どのくらい保持するか」「どこに保存するか」「必要になったときにどう復元するか」までを一元的に管理するためのサービスです。
AWS Backupの各機能について、以下のAWS公式ドキュメントを参考にしました。
「Backup creation, maintenance, and restore」
https://docs.aws.amazon.com/aws-backup/latest/devguide/recovery-points.html「Backup vault creation and deletion」
https://docs.aws.amazon.com/aws-backup/latest/devguide/create-a-vault.html「Backup creation by resource type」
https://docs.aws.amazon.com/aws-backup/latest/devguide/creating-a-backup.html「Backup plans」
https://docs.aws.amazon.com/aws-backup/latest/devguide/about-backup-plans.html「Create a backup plan」
https://docs.aws.amazon.com/aws-backup/latest/devguide/creating-a-backup-plan.html「Amazon DynamoDB テーブルの復元」
https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/restoring-dynamodb.html
同じカテゴリーの記事
同じカテゴリの記事を読む