[アップデート]AWS BackupがAmazon Auroraに対応しました

2020.06.18

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。大阪オフィスの林です。

2020年6月10日(水)の公式アナウンスにて「Amazon Aurora スナップショットが AWS Backup 経由で管理可能に」と発表がありました。公式ページはこちら
ちょうどAuroraのバックアップ設計をしていたので試してみました!

RDS標準のスナップショットじゃダメなの?

まず気になるのはこの疑問かと思います。僕自身はRDSのスナップショットでも構わないと思ってます。

ただし、取得したスナップショットの「リージョン退避要件」がある場合には今後AWS Backupをご利用いただく方が効率的になったりする場合があります。
過去、RDSのスナップショットのリージョン間コピーでバックアップを設計・実装していた時は少々手間な作りこみをしていたようです。(確かに世代管理とかとのあたりの作りこみも考えるとそれなりに大変そうですね。。。)

Auroraを除くRDSは一足先にAWS Backup対応していたのですが、今回ようやくAuroraも仲間入り出来たということです。

本アップデートの(個人的な)総括

  1. Auroraのスナップショットを別のリージョンに退避したい場合の選択肢として有効
  2. リストア時のインスタンス作成は現状手動での対応が必要

やってみた

今回はこちらのAurora PostgreSQL 11.6で検証していきたいと思います。

AWS Backupの「オンデマンド実行」と「スケジュール実行」で検証行っていきますが、リージョン間コピーはバックアッププランを作成する必要があるため「スケジュール実行」の方で確認していきます。

オンデマンド実行

AWS Backupのダッシュボードから「オンデマンドバックアップを作成」を選択します。

「リソースタイプ」で「Aurora」が選択できるようになっています。

「Aurora」を選択すると稼働中リソースが選択できるので検証でつかうリソースを選択します。その他のパラメータはデフォルトとし「オンデマンドバックアップを作成」を選択します。

本記事執筆時点では初期状態だとエラーが出ます。
デフォルトだとAuroraのオプトインが「無効」になっているためです。

メニューから「設定」を確認します。デフォルトだとAuroraのオプトインが「無効」になっています。

オプトインを「有効」にします。

再びオンデマンドバックアップを作成し実行します。

バックアップが完了しました。

RDSのダッシュボードからも「スナップショット」-「バックアップサービス」を選択することでAWS Backupで取得されたスナップショットが確認できます。

スケジュール実行

バックアッププランを作っておきます。設定内容はデフォルトとしています。

バックアップルールを作成しておきます。

リージョン間コピーの検証を行うため、ルール作成時の設定でスナップショットのコピー先リージョンに「米国西部(オレゴン)」を指定しておきます。なお、コピー先のリージョンでAuroraのオプトインを「有効」に変更していなくてもコピー自体は出来ましたので、コピー先リージョンのAuroraオプトイン設定は必要に応じて設定してください。

指定した時間にバックアップが開始され、バックアップのジョブが完了しました。

「コピージョブ」を確認するとオレゴンへのコピーも完了していることが分かります。

コピージョブのIDをクリックすると詳細が確認できます。

オレゴンリージョンに移動し、先ほどのコピージョブIDを確認すると、ちゃんと存在していました。

リストア

AWS Backupのダッシュボードから「バックアップを復元」を選択します。

保護されたリソースから対象のリソースを選択します。

復旧ポイントを選択し、「復元」を選択します。 

各種パラメータを指定して「バックアップを復元」を選択します。 

リストアジョブが「実行中」になりました。

RDS側を見てみると、指定したインスタンス識別子でAuroraデータベースのクラスタが「作成中」になりました。

リストアジョブが「完了」になりました。

RDS側を見てみると、AWS Backupで復元したAuroraデータベースのクラスタが「利用可能」になりました。
インスタンスの数が「0」になっているのですが、「AWS Backup」ではクラスタの復元までしかやってくれないようなので、手動でインスタンスを作っていきます。

復元されたクラスタにインスタンスを追加します。AWSマネージメントコンソールからは作成が出来なかったのでCLIから実行していきます。

[ec2-user@ip-172-16-0-227 ~]$ aws rds create-db-instance --db-instance-identifier instanse-1 --db-cluster-identifier restore-aurora-db --engine aurora-postgresql --db-instance-class db.t3.medium

書き込みのインスタンスが作成されました。

復元されたクラスタにリードオンリーのインスタンスを追加します。

[ec2-user@ip-172-16-0-227 ~]$ aws rds create-db-instance --db-instance-identifier instanse-1-ro --db-cluster-identifier restore-aurora-db --engine aurora-postgresql --db-instance-class db.t3.medium

リードオンリーのインスタンスが作成されました。

まとめ

リストア時のひと手間は今後のアップデートに期待するとして、Auroraのスナップショットをリージョン跨ぎで退避する要件がある場合は非常に簡単に実現できるアップデートではないでしょうか!

以上、大阪オフィスの林がお送りしました!