AWS Backup で RDS をバックアップ/リストアする
前回は、AWS Backup を使って EFS のお手軽なバックアップをご紹介しました。
今回は「AWS Backup で RDS のバックアップを取得したときって、どういう管理になんの?」って疑問を解消するために試してみました。
毎度お伝えしていますが、AWS Backup は、まだ東京リージョンで使えませんので、ご注意を。来る日のために予習ということで読んでいただければと思います。
やってみた
AWS Backup がサポートする RDS
執筆時点の AWS Backup の公式ガイドでは、下記のとおり記載されています。
AWS Backup currently supports all Amazon RDS database engines except Amazon Aurora MySQL.
Aurora MySQL 以外のすべての RDS でサポートされています。
Aurora については、"MySQL" と明示されているので、「ふーん、じゃぁ Aurora PostgreSQL は使えるんやな。」と思って試してみましたが、バックアップ対象のリソースとして Aurora PostgreSQL インスタンスは表示されなかったので、Aurora についてはいずれも対象外のようです。
検証環境
- オレゴンリージョン(us-west-2)
- RDS
- MySQL 5.7.23
- db.t2.micro
- マルチAZ なし
- 暗号化 なし
AWS Backup の取得
実際の運用ではバックアッププランを作成し、スケジュール実行することになるかと思いますが、今回は検証ということで on-demand backup
で実施します。バックアッププランの使用される場合は、以下の記事を参考にしてください。
AWS Backup の管理メニューから、protected resources
を開き Create on-demand backup
をクリックします。以下のように設定し、Create on-demand backup
をクリックし、即時にバックアップを取得します。
項目 | 設定値 | 備考 |
---|---|---|
Resource | RDS/testdb | リソースタイプ、対象の ID, Database name 等を指定 |
Backup window | Create backup now | Customize backup window の場合、1〜12時間以内の指定が可能 |
Transition to cold storage | N/A | 執筆時点でコールドストレージへの移行は EFS のみサポート |
Expire | Never | その他に x日後,x週間後,xヶ月後,x年後の指定が可能 |
Backup vault | Default | Backup vault で、アクセス制限、暗号化キーなどを個別に分けて管理することも可能 |
IAM role | Default role | AWSBackupDefaultServiceRole が作成されます |
Tags | N/A |
しばらくするとバックアップが完了し、ステータスが Completed
であること確認しましす。
バックアップ一覧
AWS Backup でバックアップの一覧を確認してみると、以下のように AWS Backup だけではなく、RDS で取得された手動バックアップおよび、自動バックアップも表示されており、統合的に管理できていることがわかります。
では、RDS 側ではどうでしょう。RDS 側でも AWS Backup で取得されたバックアップが表示されています。
次に AWS Backup によるリストア画面を確認してみましょう。
リストア画面
AWS Backup の画面から、リストア対象を選択し Restore
をクリックします。AWS Backup のメニューからでも、RDSの手動および自動バックアップを選択してリストアすることは可能です。逆に、RDS のメニューから AWS Backup を選択してリストアすることも可能です。
ただし、特定時点への復元
は AWS Backup には表示されていないので、RDS のメニューから実施する必要がありそうです。
AWS Backup のリストア画面は、まだ日本語対応していないものの、RDS のリスト画面とほぼ同じです。なので、差異があった部分のみをピックアップします。
パラメータグループ
AWS Backup のリストアでは、パラメータグループの指定が出来ませんでした。リストア後に default パラメータグループに戻ってしまうので、別途、変更が必要になります。
暗号化
RDS のリストア画面では暗号化の設定変更はグレーアウトされていますが、AWS Backup では選択可能でした。
「非暗号化のバックアップから、リストア時に暗号化できるのかな?」と思い、暗号化サポートの db.t2.small
を選択し、Enable encryption
と default キーを指定しましたが、暗号化は無効状態でリストアされました。
別のパターンとして、default キーで暗号化済みのバックアップから、「暗号化無効を指定」および、「暗号化キーの変更」の2パターンも試してみましたが、いずれも元の状態でリストアされました。執筆時点では、暗号化メニューは実施的に機能していないように見えました。RDS のリストア時にそもそも暗号化の設定変更ができないので、問題ないとは思いますが。。
さいごに、AWS Backup 側ではリストア用のロール指定があります。
パラメータグループの指定ができないので、個人的にはリストアは RDS メニューからで良いかな、と思いました。(いずれ AWS Backup 側も対応してくれるはず!)
さいごに
結果としては、「まぁ、そうだろうよ」という感じですねw
これまで RDS 手動バックアップのスケジューリングやライフサイクルを管理するには、Cloudwatch Events + Lambda など、別途の作り込みが必要でしたが、AWS Backup の利用で随分と楽に実装できそうです。標準機能によるバックアップと統合的に管理できることもわかったので、手動バックアップが必要なケースでは、積極的に使っていきたいですね!
あとは東京リージョンに来るのを待つだけです(2回目w)
以上!大阪オフィスの丸毛(@marumo1981)でした!