Amazon Auroraのバックアップ/リカバリを整理する

AWS
この記事は約4分で読めます。
スポンサーリンク

AWS環境でRDSを使用する場合、よほどの理由が無い限りはAuroraを使用するのが一番良いと思います。
Auroraは他のRDSと比べてAWS環境用にチューニングが行われておりAuroraでのみ使用できる機能があります。また、性能面でもAuroraの方が高速で処理できる場合が多いと思います。

今回は、運用面で問題になる「バックアップ/リストア」について整理してみます。

バックアップ/リストア方式の決定する順番

通常のデータベースでは、バックアップを取得する際にデータベースを停止させたりアーカイブログ等を取得することを検討する場合があると思います。
この理由としては「バックアップ中にデータ更新が発生した場合はどうなるのか?」という問題を回避するために必要となります。

通常のデータベースでは、バックアップを取得する場合は「ファイルをバックアップ」することになります。設定ファイルのバックアップは問題無いのですが、データを保存しているファイルをバックアップするときに「常に更新される」状態では正常な状態でのバックアップが取得できません。

例えば、バックアップに10分かかる場合はバックアップしたファイルの状態が「バックアップを開始して1分後の状態」なのか「バックアップを開始して9分後の状態」なのかが分からないからです。

その為、バックアップを取得する場合はデータベースを停止させデータの更新が発生しない状態でバックアップを取得します。

Auroraの場合は停止せずに一貫性のあるデータバックアップを行う事が可能です。
内部的には色々な技術が使用されているのですが、とりあえずは「AWSのすごい技術力で実現されている」くらいの認識で問題ありません。
その為、バックアップについてはあまり考えることはありません。

どういう形でバックアップを保持するか?という部分は「どういう形でデータをリストアしたいか?」ということに依存します。
その為、一番最初に考えるべきことは「リストア方式」になります。

リストア方式の決定

Auroraの場合、リストア方式は2種類あります。「ポイントインタイムリカバリ」と「バックトラック」です。

ポイントインタイムリカバリは新規にAurora環境を作成して、そこにデータを復元します。そのため、既存のAuroraは影響を受けませんしリストア中に停止させる必要もありません。
リストア後にAuroraの名称を変更して既存のAuroraと切り替えるか、特定のデータをエクスポートして既存のAuroraにインポートするかはユーザー次第です。

リストアに使用するデータは自動バックアップで取得されたデータと5分間隔で保存される増分データです。そのため、リストアできる期間は自動バックアップの保持期間となります。現在のAWS仕様だと35日間になります。

バックトラックは、既存のAuroraにデータを復元します。そのため、リストア中はAuroraを停止させる必要があります。
さらにリストアできる期間は72時間(3日)だけになります。
リストアに使用するデータはポイントインタイムリカバリと異なりAurora内部に保持されているのでリストアにかかる時間が短いのが特徴です。

ポイントインタイムリカバリと異なり制限事項が多い分、短い時間でリストアが可能です。運用条件に合えば採用できますが、しっかりと制限事項を理解することが必要です。

バックアップ方式の決定

リストア方式が決定されれば、バックアップ方式は自動的に決定されます。

ポイントインタイムリカバリを使用する場合はAuroraの自動バックアップ保持期間を「何日にするか?」というところが調整事項となります。

バックトラックを使用する場合は、「何時間分保存するか?」という部分が調整事項となります。ただ、Auroraの仕様上自動バックアップを無効化することはできないので最低でも1日分は自動バックアップを保持する必要があります。
また、「本当に自動バックアップ(ポイントインタイムリカバリ)を使用しないのか?」という部分はきちんと確認するようにしましょう。

例えば、年末年始などの長期休暇時期は3日以上ありますが大丈夫ですか?とか・・・

コメント

タイトルとURLをコピーしました