Amazon Aurora MySQL 互換エディションの DB クラスタースナップショットを復元したいのですが、時間がかかります。
簡単な説明
Amazon Aurora MySQL 互換版 DB クラスターのスナップショット復元プロセスには、いくつかの重要なタスクが含まれます。例えば、このプロセス中に Aurora クラスターが作成され、高可用性クラスターボリュームも作成されます。ステータスチェック、ストレージとハードウェアの割り当て、データボリュームの書き込みなどのプロセスはすべて、スナップショットの復元にかかる時間に影響します。
スナップショットの復元時間は、次のさまざまな要因の影響を受けます。
- Aurora クラスターでは、1 つのクラスターが 3 つのアベイラビリティーゾーン (AZ) に分散され、高可用性が実現されます。Aurora クラスターをスナップショットから復元すると、これら 3 つの AZ にストレージがプロビジョニングされます。クラスターが使用可能になると、データを保存するためにクラスターボリューム内にさらに 6 つのコピーが作成されます。ストレージボリュームは数百のストレージノードに分散され、3 つの異なる AZ に分散されます。
- Aurora クラスターが作成されると、クラスターは Amazon Simple Storage Solution S3 (Amazon S3) からストレージノードにデータをダウンロードします。クラスターは、データが利用可能になる前にこれを行います。MySQL インスタンス用 Amazon Relational Database Service (Amazon RDS) の復元プロセスとは異なり、復元後に遅延読み込みは発生しません。
- Aurora の復元は非線形です。そのため、例えば、1 つは 1 GB のデータで、もう 1 つは 10 GB のデータを含む 2 つの別々のクラスターを復元できます。大きいデータセットの復元には、10 倍の時間がかかるのではなく、小さいデータセットの復元にかかる時間よりもほんの少し時間がかかるのみです。
- 復元に含まれるその他のプロセスには、ステータスチェック、ストレージとハードウェアの割り当て、データボリュームの書き込みなどがあります。これらのプロセスはすべて時間がかかりますが、最高のパフォーマンスを得るには正確に実行する必要があります。
解決方法
Aurora データベースに変更を加えるときは、ユースケースに応じて Aurora クラスタークローン機能またはバックトラック機能を使用できます。
Aurora クラスタークローン
Aurora クラスタークローン機能を使用することが、今あるクラスターの同一のコピーを作成する最も速い方法です。クラスターのクローンが作成されたら、元のクラスターに影響を与えずに、クラスターのクローンに対して変更をテストできます。テストに合格すると、元のクラスターに変更を適用できます。
注: データベースに変更を加える前に、クラスターのスナップショットを作成することが依然としてベストプラクティスです。
既存の Aurora クラスターのクローン作成の一般的なユースケースは次のとおりです。
- スキーマの変更やパラメータグループの変更などの変更の影響を試して評価したい場合。
- データのエクスポートや分析クエリの実行など、作業負荷の高い操作を実行したい場合。
- 開発またはテスト用に、本番環境以外で本番用 DB クラスターのコピーを作成したい場合。
Aurora バックトラッキング機能
Aurora クラスターのバックトラッキング機能を使用することもできます。バックトラッキングを使用すると、データをその場で巻き戻すことで、エラーをすばやく元に戻すことができます。DB クラスターをバックトラッキングするには、新しい DB クラスターを作成する必要がないため、完了するまでに数分しかかかりません。
ただし、この機能には制限があります。まず、この機能を有効にして作成されたクラスターでのみ使用できます。そのため、クラスターでこの機能が有効になっていない場合は、スナップショットの復元を実行してバックトラッキングを有効にする必要があります。また、バックトラッキングはバイナリログのレプリケーションをサポートしていないため、バックトラッキングを設定または使用する前に、クロスリージョンレプリケーションをオフにする必要があります。バックトラックウィンドウの上限は 72 時間です。
検討事項
Aurora クラスターのクローンとバックトラック機能は、特定のユースケースでの Aurora の復元時間を改善するために導入されました。ただし、スナップショットを定期的に作成することが依然としてベストプラクティスであり、データベースに計画的な変更を加える前にこのアプローチをとることをお勧めします。
また、スナップショット、ポイントインタイム、またはクローンの時点で、ソースデータベース上で長時間実行される書き込み操作が実行されていないことを確認してください。長時間実行される DCL、DDL、または DML (オープン書き込みトランザクション) によって、復元されたデータベースが使用可能になるまでにかかる時間が長くなる場合があります。
関連情報
Amazon Aurora DB クラスターのボリュームのクローン作成
Aurora DB クラスターのバックトラッキング