Auroraのクロスリージョンバックアップにopswitchを使用する
こんにちは、岩城です。
最近Auroraを使う環境でクロスリージョンバックアップについて考える機会がありました。
AWS Backupを使用するとクロスリージョンバックアップを簡単に実装できます。
自分で検証しているうち、Auroraの自動バックアップとAWS Backupで取得したスナップショットが重複して保存されることを知りました。
基本的に重複保存されても問題にならないかと思いますが、個人的に気持ちが悪いと感じ、opswitchを使って重複なしにクロスリージョンバックアップを実現した、というのが本エントリの内容になります。
Auroraの自動バックアップは最低1世代保持される
RDSのバックアップ保持期間は0~35日間で設定でき、0日を指定する自動バックアップが無効になります。
バックアップ保持期間は、0 ~ 35 日間で設定できます。バックアップ保持期間を 0 に設定すると、自動バックアップが無効になります。手動スナップショットの制限(リージョンごとに100)は、自動バックアップには適用されません。
一方、Auroraは1~35日間で設定でき、バックアップで得られたスナップショットを最低1世代保持しなければならず、自動バックアップを無効にすることができません。
・Amazon Aurora DB クラスターの場合、DB クラスターの作成方法に関係なく、デフォルトのバックアップ保持期間は 1 日です。
・Aurora の自動バックアップを無効にすることはできません。Aurora のバックアップ保持期間は、DB クラスターによって管理されます。
RDSやAuroraには、自動バックアップの機能が標準で備わっており、基本的にAWS Backupを使用する必要はないと思います。
ただし、クロスリージョンバックアップを考えると話は別であり、AWS Backupを使用する必要がでてきます。
AWS Backupを使用してクロスリージョンバックアップする
AWS Backupは、フルマネージド型のバックアップサービスであり、様々なAWSのリソースをバックアップすることができます。
当然、Auroraも対象に含まれており、クロスリージョンバックアップだけでなく、クロスアカウントバックアップもできます。
クロスリージョンバックアップの手順については割愛しますので、興味のある方は以下のエントリをご確認ください。(hayashi さん、ありがとうございます!)
Auroraの自動バックアップとAWS Backupのバックアップで取得したスナップショットが重複する
コンソールでスナップショットを確認すると自動とバックアップサービスにより取得されたものがあることを確認できます。
Auroraの自動バックアップとは別に、AWS Backupでもバックアップされており、それぞれスナップショットが作成されます。
日次バックアップで、毎日1世代スナップショットが作成されることを望んでいたのに、毎日2世代となり重複して作成されることは想定していませんでした。
これが私にとって非常に気持ちが悪く、日次バックアップで取得されるスナップショットは1世代にしたかったのです。
opswitchを使用してクロスリージョンバックアップする
opswitchは、弊社から無償提供しているAWS運用かんたん自動化ツールであり、色々なことができます。
ちなみに、最近リニューアルされ新opswitchになっています。
本エントリは、折角なので新opswitchを使ってクロスリージョンバックアップを設定したいと思います。
まずはタスク>RDS(Aurora)>DBクラスタースナップショットのリージョン間コピーを選択し、タスクを作成します。
つぎに、作成したタスクを実行するようにジョブを作成します。
設定したスケジュールまで待つのも良いですが、すぐに動作確認したいので即時実行しました。
すると、AWS Backupの時のようなスナップショットが作成されることなく、Auroraの自動バックアップのみだけで、
別リージョン(この場合、大阪)へのクロスリージョンバックアップができました。
おわりに
Auroraでクロスリージョンバックアップしたい場合は、まずはAWS Backupで間違いないと思います。
opswitchは、AWS Backupと違い個別にスナップショットを作成することなく、Auroraの自動バックアップで作成されたスナップショットを対象のリージョンにコピーします。
私のようにスナップショットの数をきっちり1世代にしたいような要件がある場合、opswitchの利用を検討してみてください。
本エントリがどなかたのお役に立てれば幸いです。