Amazon Aurora Global Database の使用 - Amazon Aurora

Amazon Aurora Global Database の使用

Amazon Aurora Global Database は複数の AWS リージョン にまたがり配置されます。これにより、低レイテンシーのグローバル読み取りを実現し、AWS リージョン 全体に影響が及ぶ可能性のある停止がまれに起きても、すばやい復旧を可能にします。Aurora Global Database には、1 つのリージョンにプライマリ DB クラスターがあり、異なるリージョンに最大 5 つのセカンダリ DB クラスターがあります。

Amazon Aurora Global Database の概要

Amazon Aurora Global Database により、複数の AWS リージョン にまたがる単一の Aurora データベースを使用して、グローバルに分散したアプリケーションを実行できます。

Aurora Global Database は、データが書き込まれる 1 つのプライマリ AWS リージョン と、最大 5 つの読み取り専用セカンダリ AWS リージョン で構成されます。書き込みオペレーションは、プライマリ AWS リージョン 内のプライマリ DB クラスターに直接発行します。Aurora は、専用インフラストラクチャを使用しながら、通常 1 秒未満のレイテンシーで、データをセカンダリ AWS リージョン にレプリケートします。

次の図に、2 つの AWS リージョン にまたがる Aurora Global Database の例を示します。

Auroraグローバルデータベースには、1 つのプライマリと、1 つ以上のセカンダリの Aurora DB クラスターがあります。

各セカンダリクラスターは、読み取り専用のワークロードを処理するために 1 つまたは複数の Aurora レプリカ (読み取り専用の Aurora DB インスタンス) を追加することで、個別にスケールアップすることができます。

書き込みオペレーションはプライマリクラスターのみが実行します。書き込みオペレーションを実行するクライアントは、プライマリクラスターの DB クラスターエンドポイントに接続します。図に示すように、Aurora Global Database では、レプリケーションにはデータベースエンジンではなく、クラスターストレージボリュームを使用します。詳細については、「Amazon Aurora ストレージの概要」を参照してください。

Aurora Global Database は、ワールドワイドなフットプリントを持つアプリケーション向けに設計されています。読み取り専用セカンダリ DB クラスター (AWS リージョン) を使用することで、アプリケーションユーザーのさらに近くで読み取りオペレーションをサポートできます。書き込み転送機能を使用することで、Aurora Global Database をセカンダリのクラスターからプライマリクラスターにデータを送信するように構成することもできます。詳細については、「Amazon Aurora Global Database の書き込み転送を使用する」を参照してください。

プライマリ DB クラスターのリージョン変更にあたって、Aurora グローバルデータベースはシナリオに応じて、グローバルデータベーススイッチオーバーとグローバルデータベースフェイルオーバーの操作をサポートしています。

  • 地域ローテーションなどの計画済みの運用手順には、グローバルデータベーススイッチオーバー(以前は「管理型計画フェイルオーバー」と呼ばれていました) を使用します。この機能を使用すると、正常な Aurora Global Database のプライマリクラスターを、データを損失せず、セカンダリリージョンの 1 つに再配置できます。詳細については、「Amazon Aurora Global Database に対するスイッチオーバーの実行」を参照してください。

  • プライマリリージョンの機能停止後に、Aurora Global Database を復旧するには、グローバルデータベースフェイルオーバーを使用します。この特徴量では、プライマリ DB クラスターを別のリージョンにフェイルオーバーします (クロスリージョンフェイルオーバー)。詳細については、「Aurora Global Database のマネージドフェイルオーバーを実行する」を参照してください。

Amazon Aurora Global Database の利点

Aurora Global Database を使用すると、次の利点を得ることができます。

  • ローカルのレイテンシーによるグローバルな読み取り – 世界中にオフィスを持つ企業は、Aurora Global Database を使用することで、プライマリ AWS リージョン にある自社の主要な情報源を最新状態に保つことができます。他のリージョンにあるオフィスは、自社のリージョンにある情報にローカルのレイテンシーでアクセスすることができます。

  • スケーラブルなセカンダリ Aurora DB クラスター – セカンダリクラスターは、読み取り専用のインスタンス (Aurora レプリカ) をセカンダリ AWS リージョン にさらに追加することでスケールできます。セカンダリクラスターは読み取り専用です。したがって、読み取り専用の Aurora レプリカインスタンスを、1 つの Aurora クラスターにつき、通常の 15 件ではなく最大 16 件サポートします。

  • プライマリからセカンダリの Aurora DB クラスターへの迅速なレプリケーション-Aurora Global Database によるレプリケーションは、プライマリ DB クラスターのパフォーマンスにほとんど影響しません。DB インスタンスのリソースは、全面的にアプリケーションの読み取りおよび書き込みワークロードに当てられます。

  • リージョン全体にわたる停止からの回復 – セカンダリクラスターを使用すると、従来のレプリケーションソリューションと比較して迅速 (低い RTO) かつ少ないデータ損失 (低い RPO) で、Aurora Global Database を新しいプライマリ AWS リージョン で使用できるようになります。

利用可能なリージョンとバージョン

機能の可用性とサポートは、各 Aurora データベースエンジンの特定のバージョン、および AWS リージョン によって異なります。Aurora とグローバルデータベースでのバージョンとリージョン可用性については、「Aurora グローバルデータベースでサポートされているリージョンと DB エンジン」を参照してください。

Amazon Aurora Global Database の制限

現在、Aurora Global Database には以下の制限があります。

  • Aurora Global Database を使用できるのは、一部の AWS リージョン、および Aurora MySQL と Aurora PostgreSQL の特定バージョンのみです。詳細については、「Aurora グローバルデータベースでサポートされているリージョンと DB エンジン」を参照してください。

  • Aurora Global Database には、サポートされる Aurora DB インスタンスクラス、AWS リージョン の最大数などに関する特定の設定要件があります。詳細については、「Amazon Aurora Global Database の構成要件」を参照してください。

  • MySQL 5.7 と互換性のある Aurora MySQL の場合、Aurora グローバルデータベースのスイッチオーバーにはバージョン 2.09.1 以降のマイナーバージョンが必要です。

  • プライマリ DB クラスターとセカンダリ DB クラスターが同じメジャー、マイナー、パッチレベルのエンジンバージョンである場合にのみ、Aurora グローバルデータベースでマネージドクロスリージョンスイッチオーバーまたはフェイルオーバーを実行できます。ただし、マイナーエンジンバージョンが次のいずれかである場合、パッチレベルは異なる場合があります。

    データベースエンジン マイナーエンジンバージョン

    Aurora PostgreSQL

    • バージョン 14.5 以上 のマイナーバージョン

    • バージョン 13.8 以上 のマイナーバージョン

    • バージョン 12.12 以上 のマイナーバージョン

    • バージョン 11.17 以上 のマイナーバージョン

    詳細については、「マネージドクロスリージョンスイッチオーバーまたはフェイルオーバーに対するパッチレベルの互換性」を参照してください。

  • Aurora Global Database は、現在、以下の Aurora 機能をサポートしていません。

    • Aurora Serverless v1

    • Aurora でのバックトラック

  • グローバルデータベースで RDS プロキシ機能を使用する際の制限については、「グローバル データベースを使用した RDS Proxy の制約事項」を参照してください。

  • マイナーバージョンの自動アップグレードは、Aurora Global Database の一部である Aurora MySQL クラスターや Aurora PostgreSQL クラスターには適用されません。なお、グローバルデータベースクラスターの一部である DB インスタンスに対してこの設定を指定できますが、その設定に効果はありません。

  • Aurora Global Database は、現在、セカンダリ DB クラスターの Aurora Auto Scaling をサポートしていません。

  • Aurora MySQL 5.7 を実行している Aurora グローバルデータベースでデータベースアクティビティストリームを使用するには、エンジンバージョンがバージョン 2.08 以降である必要があります。データベースアクティビティストリーミングについては、「データベースアクティビティストリームを使用した Amazon Aurora のモニタリング」を参照してください。

  • 現在、Aurora Global Database のアップグレードには以下の制限があります。

    • Aurora グローバルデータベースのメジャーバージョンアップグレードを実行している間、グローバルデータベースクラスターにカスタムパラメータグループを適用できません。グローバルクラスターの各リージョンにカスタムパラメータグループを作成し、アップグレード後に手動でリージョンクラスターに適用します。

    • Aurora MySQL に基づく Aurora グローバルデータベースでは、lower_case_table_names パラメータがオンの場合、Aurora MySQL バージョン 2 からバージョン 3 へのインプレースアップグレードを実行できません。使用できる方法の詳細については、「メジャーバージョンのアップグレード」を参照してください。

    • Aurora PostgreSQL に基づく Aurora グローバルデータベースでは、目標復旧時点 (RPO) 機能がオンになっている場合、Aurora DB エンジンのメジャーバージョンアップグレードを実行できません。RPO 機能については、「Aurora PostgreSQL- ベースのグローバルデータベースの RPO (目標復旧時点) 管理」を参照してください。

    • Aurora MySQL に基づく Aurora グローバルデータベースでは、標準プロセスを使用して、バージョン 3.01 または 3.02 から 3.03 以降へのマイナーバージョンアップグレードを実行できません。使用するプロセスの詳細については、「エンジンのバージョンを変更して Aurora MySQL アップグレードする」を参照してください。

    Aurora Global Database のアップグレードについては、「Amazon Aurora Global Database のアップグレード」を参照してください。

  • Aurora Global Database にある Aurora DB クラスターは、個別に停止またはスタートすることはできません。詳細については、「Amazon Aurora DB クラスターの停止と開始」を参照してください。

  • セカンダリ Aurora DB クラスターにアタッチされた Aurora レプリカは、特定の場合に再起動することが可能です。プライマリ AWS リージョン のライター DB インスタンスが再起動またはフェイルオーバーすると、セカンダリリージョンにある Aurora レプリカも再起動します。このセカンダリクラスターは、その後すべてのレプリカがプライマリ DB クラスターのライターインスタンスと再び同期するまでは、使用できません。再起動またはフェイルオーバー時のプライマリクラスターの動作は、単一で非グローバルな DB クラスターの動作と同じです。詳細については、「Amazon Aurora でのレプリケーション」を参照してください。

    プライマリ DB クラスターに変更を加えるときは、必ず事前に、Aurora Global Database への影響を把握してください。詳細については、「予期しない停止からの Amazon Aurora Global Database の復旧」を参照してください。

  • Aurora Global Database は現在、Amazon Aurora が DB クラスターの AWS KMS キーにアクセスできなくなった場合の inaccessible-encryption-credentials-recoverable ステータスをサポートしていません。このような場合、暗号化された DB クラスターはターミナルの inaccessible-encryption-credentials 状態になります。上記の状態についての詳細は、「DB クラスターステータスの表示」を参照してください。

  • Aurora Global Database で実行されている Aurora PostgreSQL- ベースのDBクラスターには、以下の制限があります。

    • クラスターキャッシュ管理は、Aurora Global Database の一部である Aurora PostgreSQL DB クラスターではサポートされません。

    • Aurora Global Database のプライマリ DB クラスターが Amazon RDS PostgreSQL インスタンスのレプリカをベースとしている場合、セカンダリクラスターを作成することはできません。そのクラスターから、AWS Management Console、AWS CLI、または CreateDBCluster API オペレーションを使用してセカンダリを作成しようとしないでください。作成しようとするとタイムアウトし、セカンダリクラスターは作成されません。

プライマリと同じバージョンの Aurora DB エンジンを使用して、Aurora Global Database のセカンダリ DB クラスターを作成することを推奨します。詳細については、「Amazon Aurora Global Database の作成」を参照してください。