Amazon Aurora
Aurora のユーザーガイド

Amazon Aurora グローバルデータベースの使用

Amazon Aurora グローバルデータベースについて以下に説明します。Aurora グローバルデータベースはそれぞれ、複数の AWS リージョンにまたがっているため、低レイテンシーのグローバル読み取りとリージョン全体の停止からの障害復旧が可能になります。

Aurora グローバルデータベースの概要

Aurora グローバルデータベースは、1 つのプライマリ AWS リージョン (データをマスターとして管理) と 1 つのセカンダリ AWS リージョン (読み取り専用) で構成されます。Aurora は、通常の 1 秒未満のレイテンシーでセカンダリ AWS リージョンにデータをレプリケートします。書き込みオペレーションは、プライマリ AWS リージョン内のプライマリ DB インスタンスに直接発行します。Aurora グローバルデータベースでは、専用のインフラストラクチャを使用してデータをレプリケートします。そのため、データベースのリソースを完全に利用しながら、アプリケーションワークロードを処理します。複数のリージョンをまたいで使用するアプリケーションは、セカンダリの AWS リージョンの読み取りインスタンスを使用して低レイテンシーの読み取りを行うことができます。AWS リージョンで万一データベースの性能低下や切断が発生した場合でも、1 分未満でセカンダリ AWS リージョンを昇格させて、読み取り/書き込みワークロード全体を肩代わりできます。

データをマスターとして管理するプライマリ AWS リージョンの Aurora クラスターは、読み取りと書き込みの両方のオペレーションを実行します。セカンダリリージョンのクラスターは低レイテンシーの読み取りを可能にします。セカンダリクラスターは、1 つ以上の DB インスタンス (Aurora レプリカ) を追加することで別個にスケールアップできます。災害対策の場合は、セカンダリクラスターを解除して昇格させることで、読み取り/書き込みオペレーション全体に対応できます。

書き込みオペレーションはプライマリクラスターのみが実行します。書き込みオペレーションを実行するクライアントは、プライマリクラスターの DB クラスターエンドポイントに接続します。

Aurora グローバルデータベースの利点

Aurora グローバルデータベースは、専用のインフラストラクチャを使用して、プライマリ DB クラスターとセカンダリクラスターの間で変更をレプリケートします。Aurora グローバルデータベースには以下の利点があります。

  • Aurora グローバルデータベースによるレプリケーションは、プライマリ DB クラスターのパフォーマンスに対する影響が一切ないか、限定されます。DB インスタンスのリソースは、全面的に読み取りおよび書き込みのワークロードに当てられます。

  • 変更は、最小限の遅れ (通常は 1 秒未満) で AWS リージョン間でレプリケートされます。

  • セカンダリクラスターは、災害対策の高速なフェイルオーバーを可能にします。通常、1 分未満でセカンダリクラスターを昇格させて書き込みに対応できます。

  • リモートの AWS リージョンのアプリケーションは、セカンダリクラスターから読み取ると、クエリのレイテンシーが低くなります。

  • セカンダリクラスターには最大 16 の Aurora レプリカを追加できるため、単一の Aurora クラスターの容量を超えて読み取りをスケールできます。

Aurora グローバルデータベースの現在の制限

現在、Aurora グローバルデータベースには以下の制限があります。

  • Aurora グローバルデータベースは、MySQL 5.6 互換の Aurora でのみ使用できます。

  • Aurora グローバルデータベースに db.t2 または db.t3 インスタンスクラスを使用することはできません。使用できるインスタンスクラスは、db.r4 または db.r5 です。

  • 現在、Aurora グローバルデータベースは、欧州 (ストックホルム) リージョンおよび アジアパシフィック (香港) リージョンでは使用できません。

  • セカンダリクラスターは、プライマリクラスターとは異なる AWS リージョンに存在する必要があります。

  • セカンダリと同じリージョンでプライマリクラスターのクロスリージョンリードレプリカを作成することはできません。クロスリージョンリードレプリカの詳細については、「AWS リージョン間での Amazon Aurora MySQL DB クラスターのレプリケート」を参照してください。

  • Aurora グローバルデータベースでは以下の機能はサポートされていません。

Aurora グローバルデータベースの作成

Aurora グローバルデータベースは複数の AWS リージョンにまたがります。グローバルデータベース自体と読み取り/書き込みプライマリクラスターを同じ場所に作成します。次に、別の AWS リージョンに読み取り専用のセカンダリクラスターを作成します。

  • 新しいグローバルデータベースを作成するには、グローバルデータベースとそれに伴うプライマリクラスターを作成し、次にセカンダリクラスターを追加します。

  • 既存の Aurora クラスターがある場合は、スナップショットを作成し、新しい Aurora グローバルデータベースとして復元します。これを行うには、「Aurora グローバルデータベースへのデータのインポート」の手順に従います。

プライマリクラスターとセカンダリクラスターの名前を指定する場合は、既存の Aurora クラスター (他の AWS リージョンにある場合でも) とは異なる名前を選択します。

重要

Aurora グローバルデータベースを作成する前に、Amazon Relational Database Service ユーザーガイドの「Amazon RDS のセットアップ」に従ってアカウント、ネットワーク、およびセキュリティ設定のセットアップタスクを完了してください。

注記

Aurora クラスターを AWS CLI または RDS API で作成し、後で Aurora グローバルデータベースに追加する場合は、エンジンモードパラメータで global 値を使用する必要があります。

コンソール

AWS マネジメントコンソール を使用して Aurora グローバルデータベースを作成するには

  1. AWS マネジメントコンソール にサインインし、Aurora グローバルデータベースが使用できるリージョンで Amazon RDS コンソールを開きます。

  2. [データベースの作成] を選択します。

  3. [エンジンの選択] ページで MySQL 5.6 互換の Aurora エンジンを選択し、[Database location (データベースの場所)] で [Global (グローバル)] を選択します。例については、以下のイメージを参照してください。

    注記

    [Standard Create (標準作成)] が選択されていることを確認してください。Aurora グローバルデータベースに必要なオプションは、[Standard create (標準作成)] で表示されます。[Easy Create (簡易作成)] を選択しないでください。

    1. エンジンとして Aurora を選択します。

      
                    データベースを作成するときのエンジンオプションのスクリーンショット。
    2. MySQL 5.6 互換性を選択します。

      
                    Aurora クラスターを作成するときのエディションとエンジンバージョンのオプションのスクリーンショット。
    3. 場所として [Global (グローバル)] を選択します。

      
                    Aurora クラスターの作成時にデータベースの場所を選択するオプションのスクリーンショット。Aurora グローバルデータベースを作成するには [グローバル] を選択する。

      注記

      [Global (グローバル)] を選択すると、グローバルデータベースとプライマリ Aurora クラスターが作成されます。グローバルデータベースが作成されて使用可能になると、セカンダリ AWS リージョンを追加できます。

  4. 他の Aurora クラスターの場合と同じ決定プロセスを使用して残りの設定を完了します。Aurora DB クラスター作成の詳細については、「Amazon Aurora DB クラスターの作成」を参照してください。

    
                Aurora グローバルデータベース作成時のその他の設定を示すスクリーンショット。
  5. [作成] を選択します。

プライマリ DB クラスターが作成されて使用可能になったら、「Aurora グローバルデータベースへの AWS リージョンの追加」の手順に従ってセカンダリクラスターを作成します。

AWS CLI

CLI を使用して Aurora グローバルデータベースを作成するには

  1. Aurora グローバルデータベースを作成し、次にプライマリ AWS リージョンを追加して、この AWS リージョンに DB インスタンスを追加します。

    1. Aurora グローバルデータベース自体を作成します。当初は、関連付けられているクラスターがありません。

      Linux、OS X、Unix の場合:

      aws rds create-global-cluster \ --global-cluster-identifier global_database_id \ --engine aurora \ --engine-version 5.6.10a

      Windows の場合:

      aws rds create-global-cluster ^ --global-cluster-identifier global_database_id ^ --engine aurora ^ --engine-version 5.6.10a

      その他のオプションの詳細については、「create-global-cluster」を参照してください。

    2. 次の例に示すように、AWS CLI の describe-global-clusters コマンドを使用して、Aurora グローバルデータベースが使用可能になったことを確認します。

      aws rds --region primary_region \ describe-global-clusters \ --global-cluster-identifier global_database_id # optional
    3. describe-global-clusters の結果にステータスが available と表示されたら、Aurora グローバルデータベースのプライマリクラスターを作成します。これを行うには、AWS CLI の create-db-cluster コマンドを使用します。--engine パラメータには aurora--engine-version パラメータには 5.6.10a、および --engine-mode パラメータには global をそれぞれ指定します。グローバルデータベースを作成したときと同じ --global-cluster-identifier 値を指定します。以下の例のように指定します。

      Linux、OS X、Unix の場合:

      aws rds create-db-cluster \ --region primary_region \ --db-cluster-identifier db_cluster_id \ --master-username master_userid \ --master-user-password master_password \ --engine aurora \ --engine-version 5.6.10a \ --engine-mode global \ --global-cluster-identifier global_database_id

      Windows の場合:

      aws rds create-db-cluster ^ --region primary_region ^ --db-cluster-identifier db_cluster_id ^ --master-username master_userid ^ --master-user-password master_password ^ --engine aurora ^ --engine-version 5.6.10a ^ --engine-mode global ^ --global-cluster-identifier global_database_id

      グローバルデータベース。

      その他のオプションの詳細については、「create-db-cluster」を参照してください。

    4. Aurora クラスターが使用可能になったことを確認します。次の例に示すように、AWS CLI の describe-db-clusters コマンドを使用して確認します。

      aws rds --region primary_region \ describe-db-clusters \ --db-cluster-identifier db_cluster_id # optional
    5. describe-db-clusters の結果にステータスが available と表示されたら、プライマリクラスターのプライマリ DB インスタンスを作成します。これを行うには、AWS CLI の create-db-instance コマンドを使用します。--engine パラメータには aurora--engine-version パラメータには 5.6.10a、および --engine-mode パラメータには global をそれぞれ指定します。以下の例のように指定します。

      Linux、OS X、Unix の場合:

      aws rds create-db-instance \ --db-cluster-identifier db_cluster_id \ --db-instance-class instance_class \ --db-instance-identifier db_instance_id \ --engine aurora \ --engine-version 5.6.10a

      Windows の場合:

      aws rds create-db-instance ^ --db-cluster-identifier db_cluster_id ^ --db-instance-class instance_class ^ --db-instance-identifier db_instance_id ^ --engine aurora ^ --engine-version 5.6.10a

      --master-username パラメータと --master-user-password パラメータを含める必要はありません。これらのパラメータ値は、プライマリ DB クラスターから取得されます。

      その他のオプションの詳細については、「create-db-instance」を参照してください。

  2. Aurora グローバルデータベースのプライマリクラスターが使用可能になったことを確認します。次の例に示すように、AWS CLI の describe-db-clusters コマンドを使用して確認します。

    aws rds describe-db-clusters --db-cluster-identifier sample-global-cluster

    describe-db-clusters の結果にステータスが available と表示されたら、レプリケーションを開始できるようにプライマリクラスターのプライマリインスタンスを作成します。そのためには、以下の例に示すように AWS CLI の create-db-instance コマンドを使用します。

    Linux、OS X、Unix の場合:

    aws rds create-db-instance \ --db-cluster-identifier sample-global-cluster \ --db-instance-class instance_class \ --db-instance-identifier sample-replica-instance \ --engine aurora

    Windows の場合:

    aws rds create-db-instance ^ --db-cluster-identifier sample-global-cluster ^ --db-instance-class instance_class ^ --db-instance-identifier sample-replica-instance ^ --engine aurora

    DB インスタンスが作成されて使用可能になると、レプリケーションが始まります。DB インスタンスが使用可能かどうかを確認するには、AWS CLI の describe-db-instances コマンドを呼び出します。

  3. または、最初にプライマリクラスターを作成し、次にグローバルデータベースを作成して、どのクラスターをプライマリクラスターとして使用するかを指定することもできます。

    1. 空の Aurora クラスターを global エンジンモードで作成し、このクラスター内に DB インスタンスを作成します。エンジンモード global は、このクラスターを Aurora グローバルデータベースに追加できることを意味します。

      Linux、OS X、Unix の場合:

      aws rds --region primary_region \ create-db-cluster \ --db-cluster-identifier primary_cluster_id \ --master-username master_userid \ --master-user-password master_password \ --engine aurora \ --engine-version 5.6.10a \ --engine-mode global aws rds --region primary_region \ create-db-instance \ --db-instance-class instance_class \ --db-cluster-identifier primary_cluster_id \ --db-instance-identifier db_instance_id \ --engine aurora

      Windows の場合:

      aws rds --region primary_region ^ create-db-cluster ^ --db-cluster-identifier primary_cluster_id ^ --master-username master_userid ^ --master-user-password master_password ^ --engine aurora ^ --engine-version 5.6.10a ^ --engine-mode global aws rds --region primary_region ^ create-db-instance ^ --db-instance-class instance_class ^ --db-cluster-identifier primary_cluster_id ^ --db-instance-identifier db_instance_id ^ --engine aurora
    2. プライマリ DB クラスターと DB インスタンスが作成されて使用可能になったら、Aurora グローバルデータベースを作成します。これを行うには、Aurora グローバルデータベースを作成する AWS リージョンで、AWS CLI の create-global-cluster コマンドを呼び出します。

      Linux、OS X、Unix の場合:

      aws rds create-global-cluster \ --global-cluster-identifier global_database_id \ --source-db-cluster-identifier primary_cluster_ARN

      Windows の場合:

      aws rds create-global-cluster ^ --global-cluster-identifier global_database_id ^ --source-db-cluster-identifier primary_cluster_ARN
RDS API

RDS API を使用して Aurora グローバルデータベースを作成するには、CreateGlobalCluster オペレーションを実行します。

Aurora グローバルデータベースへの AWS リージョンの追加

Aurora グローバルデータベースとそのプライマリクラスターを作成したら、新しい AWS リージョンを追加してグローバルフットプリントを拡大します。このプロセスでは、セカンダリ Aurora クラスターをアタッチします。セカンダリクラスターは、プライマリクラスターとは異なる AWS リージョンに存在する必要があります。

注記

現時点では、Aurora グローバルデータベースにアタッチできるセカンダリ Aurora クラスターの最大数は 1 です。

コンソール

AWS マネジメントコンソール を使用して Aurora グローバルデータベースに AWS リージョンを追加するには

  1. AWS マネジメントコンソール の右上で、Aurora グローバルデータベースを使用できる AWS リージョンを選択します。

  2. ナビゲーションペインで、[データベース] を選択します。

  3. セカンダリクラスターを作成する Aurora グローバルデータベースのチェックボックスを選択します。プライマリクラスターまたはそれに含まれている DB インスタンスがまだ Creating の状態である場合は、すべてが Available の状態になるまで待ちます。

  4. [アクション] で、[リージョンの追加] を選択します。

    
                Aurora グローバルデータベースの [リージョンの追加] オプションを示すスクリーンショット。
  5. [リージョンの追加] ページで、セカンダリ AWS リージョンを選択します。

    
                Aurora グローバルデータベースの [リージョンの追加] ダイアログを示すスクリーンショット。
  6. 新しい AWS リージョンで Aurora クラスターの残りのフィールドを設定し、[作成] を選択します。

AWS CLI

AWS CLI を使用して Aurora グローバルデータベースに AWS リージョンを追加するには、create-db-cluster コマンドを実行します。

以下のコマンドでは、新しい Aurora クラスターを作成し、これを読み取り専用のセカンダリクラスターとしてグローバルデータベースにアタッチします。次に、この新しいクラスターに DB インスタンスを追加します。create-db-cluster コマンドの --global-cluster-identifier オプションで、新しいクラスターをアタッチする先のグローバルデータベースを指定します。

暗号化されたクラスターの場合は、--source-region オプションでプライマリ AWS リージョンと一致する値を指定します。

Linux、OS X、Unix の場合:

aws rds --region secondary_region \ create-db-cluster \ --db-cluster-identifier secondary_cluster_id \ --global-cluster-identifier global_database_id \ --engine aurora aws rds --region secondary_region \ create-db-instance \ --db-instance-class instance_class \ --db-cluster-identifier secondary_cluster_id \ --db-instance-identifier db_instance_id \ --engine aurora

Windows の場合:

aws rds --region secondary_region ^ create-db-cluster ^ --db-cluster-identifier secondary_cluster_id ^ --global-cluster-identifier global_database_id_id ^ --engine aurora aws rds --region secondary_region ^ create-db-instance ^ --db-instance-class instance_class ^ --db-cluster-identifier secondary_cluster_id ^ --db-instance-identifier db_instance_id ^ --engine aurora
RDS API

RDS API を使用して Aurora グローバルデータベースに新しい AWS リージョンを追加するには、CreateDBCluster オペレーションを実行します。GlobalClusterIdentifier パラメータを使用して、既存のグローバルデータベースの識別子を指定します。

Aurora グローバルデータベースからのクラスターの削除

Aurora グローバルデータベースから Aurora クラスターを削除すると、クラスターはリージョンレベルのクラスターに戻ります。読み取り/書き込み機能は完全に保持されますが、プライマリクラスターとは同期されなくなります。

プライマリクラスターの性能低下や切断が発生した場合は、グローバルデータベースから Aurora クラスターを解除できます。Aurora グローバルデータベースのフェイルオーバーでは、元のグローバルデータベースからセカンダリクラスターを削除し、これを新しい Aurora グローバルデータベースのプライマリクラスターとして使用します。

グローバルデータベースが不要になった場合は、グローバルデータベース自体を削除する前に、セカンダリクラスターを解除し、さらにプライマリクラスターを解除する必要があります。次に、解除した 2 つのクラスターの 1 つまたは両方を削除するか、1 つまたは両方を引き続き単一リージョンの Aurora クラスターとして使用できます。

コンソール

AWS マネジメントコンソール を使用して Aurora グローバルデータベースから Aurora クラスターを解除するには、[データベース] ページで該当するクラスターを選択します。[アクション] で [グローバルから削除] を選択します。解除したクラスターは、読み取り/書き込み機能を完全に備えた、通常の Aurora クラスターになります。プライマリクラスターとは同期されなくなります。


            Aurora グローバルデータベースからのセカンダリクラスターの解除を確認するプロンプトを示すスクリーンショット。

グローバルデータベースにセカンダリクラスターがまだ関連付けられている場合は、プライマリクラスターを解除できません。

セカンダリクラスターを解除または削除すると、次にプライマリクラスターを同じ方法で解除できます。

Aurora グローバルデータベースから解除したクラスターは、依然として [データベース] ページに表示されますが、[Global (グローバル)]、[Primary (プライマリ)] [Secondary (セカンダリ)] のラベルは付かなくなります。


            Aurora グローバルデータベースから解除された後のクラスターを示すスクリーンショット。
AWS CLI

AWS CLI を使用して Aurora グローバルデータベースから Aurora クラスターを解除するには、remove-from-global-cluster コマンドを実行します。

以下のコマンドはセカンダリクラスターを解除し、次に Aurora グローバルデータベースからプライマリクラスターを解除します。解除するクラスターを識別するには、どちらの場合も --db-cluster-identifier パラメータを使用します。Aurora グローバルデータベースを識別するには、--global-cluster-identifier パラメータを使用します。

Linux、OS X、Unix の場合:

aws rds --region secondary_region \ remove-from-global-cluster \ --db-cluster-identifier secondary_cluster_ARN \ --global-cluster-identifier global_database_id aws rds --region primary_region \ remove-from-global-cluster \ --db-cluster-identifier primary_cluster_ARN \ --global-cluster-identifier global_database_id

Windows の場合:

aws rds --region secondary_region ^ remove-from-global-cluster ^ --db-cluster-identifier secondary_cluster_ARN ^ --global-cluster-identifier global_database_id aws rds --region primary_region ^ remove-from-global-cluster ^ --db-cluster-identifier primary_cluster_ARN ^ --global-cluster-identifier global_database_id
RDS API

RDS API を使用して Aurora グローバルデータベースから Aurora クラスターを解除するには、RemoveFromGlobalCluster オペレーションを実行します。

Aurora グローバルデータベースの削除

Aurora グローバルデータベースを削除するには、その前にグローバルデータベースに関連付けられているセカンダリクラスターとプライマリクラスターを削除または解除する必要があります。クラスターをグローバルデータベースから解除して再度スタンドアロンの Aurora クラスターにする手順については、「Aurora グローバルデータベースからのクラスターの削除」を参照してください。

コンソール

AWS マネジメントコンソール を使用して Aurora グローバルデータベースを削除するには

AWS マネジメントコンソール を使用して Aurora グローバルデータベースの一部であるクラスターを削除するには、グローバルデータベースに関連付けられているセカンダリクラスターを解除または削除し、プライマリクラスターを解除して、次にグローバルデータベース自体を削除します。通常、グローバルデータベースにはビジネスクリティカルなデータが含まれているため、グローバルデータベースおよび関連付けられているクラスターを単一のステップで削除することはできません。グローバルデータベースからクラスターを解除する手順については、「Aurora グローバルデータベースからのクラスターの削除」を参照してください。解除したクラスターを削除する手順については、「Aurora DB クラスターのDB インスタンスを削除する」を参照してください。Aurora クラスターからプライマリインスタンスを削除すると、クラスター自体が削除されます。

  1. Aurora グローバルデータベースから他のすべてのクラスターが解除されていることを確認します。

    次のスクリーンショットに示すように、グローバルデータベースにネストされたクラスターが含まれている場合は、グローバルデータベースをまだ削除できません。グローバルデータベースに関連付けられているクラスターごとに、「Aurora グローバルデータベースからのクラスターの削除」の手順に従ってください。

    
                このグローバルデータベースには、まだ関連付けられたクラスターが残っているため、削除できない。

    グローバルデータベースに関連付けられたクラスターがなくなると、グローバルデータベースを削除できます。次のスクリーンショットは、グローバルデータベースとの関連付けを解除された global-db-demo クラスターを示しています。

    
                グローバルデータベースからすべてのクラスターが解除されたので、グローバルデータベースを削除できる。
  2. [データベース] ページまたはグローバルデータベースの詳細ページで、[アクション]、[削除] の順に選択します。

AWS CLI

AWS CLI を使用して Aurora グローバルデータベースの一部であるクラスターを削除するには、delete-global-cluster コマンドを実行します。

次のコマンドでは、指定したグローバルクラスター ID の Aurora グローバルデータベースを削除します。

Linux、OS X、Unix の場合:

aws rds --region primary_region \ delete-global-cluster \ --global-cluster-identifier global_database_id

Windows の場合:

aws rds --region primary_region ^ delete-global-cluster ^ --global-cluster-identifier global_database_id
RDS API

RDS API を使用して Aurora グローバルデータベースの一部であるクラスターを削除するには、DeleteGlobalCluster オペレーションを実行します。

Aurora グローバルデータベースへのデータのインポート

データを Aurora グローバルデータベースにインポートするには、以下のいずれかの技術を使用します。

  • Aurora MySQL クラスターまたは Amazon RDS MySQL DB インスタンスのスナップショットを作成し、これを Aurora グローバルデータベースのプライマリクラスターとして復元します。現時点では、MySQL 5.6 と互換性があるソースからのスナップショットであることが必要です。

    
            Aurora グローバルデータベースの [スナップショットの復元] ページを示すスクリーンショット。
  • クラスターデータを前の状態に復元するには、プライマリクラスターで特定時点への復元を使用します。

  • 論理インポート手法を使用します (たとえば、データを mysqldump コマンドで準備し、mysql コマンドでロードします)。

Aurora グローバルデータベースの場合の決定的な違いは、データのインポート先が常にプライマリクラスターとして指定したクラスターであることです。最初のデータインポートは、インポート先のクラスターを Aurora グローバルデータベースに追加する前または追加した後に行うことができます。プライマリクラスターのすべてのデータは、セカンダリクラスターに自動的にレプリケートされます。

Aurora グローバルデータベースの管理

Aurora グローバルデータベースを構成する個別のクラスターに対して、ほとんどの管理オペレーションを実行できます。コンソールの [データベース] ページで [Group related resources (グループ関連のリソース)] を選択すると、プライマリクラスターとセカンダリクラスターが、関連付けられたグローバルデータベースオブジェクトの下にグループとして表示されます。


        AWS マネジメントコンソール の [データベース] ページにおける Aurora グローバルデータベースの表示方法を示すスクリーンショット。

Aurora グローバルデータベース全体に適用されるプロパティを表示するには、グローバルデータベースを選択します。


        AWS マネジメントコンソール にある Aurora グローバルデータベースおよび関連付けられた設定を示すスクリーンショット。

Aurora グローバルデータベースの設定

AWS マネジメントコンソール の [データベース] ページには、すべての Aurora グローバルデータベースが、プライマリクラスターおよびセカンダリクラスターと一緒に表示されます。Aurora グローバルデータベースは、独自の構成設定を持つオブジェクトです。プライマリクラスターとセカンダリクラスターに関連付けられた AWS リージョンなどの設定が含まれています。


        AWS マネジメントコンソール にある Aurora グローバルデータベースおよび関連付けられた構成設定を示すスクリーンショット。

次のスクリーンショットに示すように、Aurora グローバルデータベースを選択し、その設定を変更できます。


        Aurora グローバルデータベースの設定を変更するページを示すスクリーンショット。

Aurora グローバルデータベース内の Aurora クラスターごとに個別にパラメータグループを設定できます。ほとんどのパラメータの動作は、他の種類の Aurora クラスターと同じです。aurora_enable_repl_bin_log_filteringaurora_enable_replica_log_compression の構成設定は何の効果もありません。セカンダリクラスターをプライマリクラスターに昇格させる場合は、予期しない動作の変化を避けるために、グローバルデータベース内のすべてのクラスター間で設定を一貫させることをお勧めします。たとえば、別のクラスターがプライマリクラスターを肩代わりしたときに動作が変わらないように、タイムゾーンと文字セットに同じ設定を使用します。

Aurora グローバルデータベースへの接続

読み取り専用クエリトラフィックの場合、AWS リージョンの Aurora クラスターの読み取りエンドポイントに接続します。

データ操作言語 (DML) またはデータ定義言語 (DDL) のステートメントを実行するには、プライマリクラスターのクラスターエンドポイントに接続します。このエンドポイントは、アプリケーションとは異なる AWS リージョンに存在する場合があります。

AWS マネジメントコンソール で Aurora グローバルデータベースを表示すると、次のスクリーンショットに示すように、そのすべてのクラスターに関連付けられているすべての汎用エンドポイントを確認できます。プライマリクラスターに関連付けられた単一のクラスターエンドポイントは、書き込みオペレーションに使用します。プライマリクラスターとセカンダリクラスターの読み取りエンドポイントは、読み取り専用クエリに使用します。レイテンシーを最小限にするには、貴社が存在している AWS リージョンまたは最寄りの AWS リージョンの読み取りエンドポイントを選択してください。


        AWS マネジメントコンソール にある Aurora グローバルデータベースおよび関連付けられた接続設定 (エンドポイント) を示すスクリーンショット。

Aurora グローバルデータベースのフェイルオーバー

Aurora グローバルデータベースは、デフォルトの Aurora クラスターよりも高度なフェイルオーバー機能を提供します。特定の AWS リージョンでクラスター全体が使用不可になった場合は、グローバルデータベースの別のクラスターを昇格させて読み取り/書き込み機能を持たせることができます。

別の AWS リージョンにあるクラスターがプライマリクラスターとしてより適格である場合は、フェイルオーバー機能を手動で有効にすることができます。たとえば、セカンダリクラスターの容量を増やして、プライマリクラスターに昇格させることができます。または、AWS リージョン間のアクティビティのバランスが変わる場合があり、プライマリクラスターを別の AWS リージョンに切り替えるほうが書き込みオペレーションのレイテンシーが低くなることがあります。

以下のステップでは、Aurora グローバルデータベースのセカンダリクラスターを昇格させる場合のイベントのシーケンスを示します。

  1. プライマリクラスターが使用不可になります。

  2. Aurora グローバルデータベースからセカンダリクラスターを解除します。これにより、セカンダリクラスターは昇格されて完全な読み取り/書き込み機能を持ちます。グローバルデータベースから Aurora クラスターを解除する方法については、「Aurora グローバルデータベースからのクラスターの削除」を参照してください。

  3. 新しく昇格させたクラスターに書き込みトラフィックを振り向けるようにアプリケーションを設定し直します。

    重要

    この時点で、使用不可になったクラスターに対する DML ステートメントや他の書き込みオペレーションの発行を停止します。クラスター間のデータの不一致 ("スプリットブレイン" シナリオと呼ばれます) を避けるために、以前のプライマリクラスターには (それが再度オンラインになったとしても) 書き込まないでください。

  4. 新しく昇格させたクラスターをプライマリクラスターとして新しい Aurora グローバルデータベースを作成します。Aurora グローバルデータベースの作成方法については、「Aurora グローバルデータベースの作成」を参照してください。

  5. Aurora グローバルデータベースに、問題が発生したクラスターの AWS リージョンを追加します。この AWS リージョンに新しいセカンダリクラスターを含めます。AWS リージョンを Aurora グローバルデータベースに追加する方法については、「Aurora グローバルデータベースへの AWS リージョンの追加」を参照してください。

  6. 停止状態が解決されて元の AWS リージョンをプライマリクラスターとして再度割り当てる準備が完了したら、同じステップを逆に実行します。

    1. Aurora グローバルデータベースからセカンダリクラスターを解除します。

    2. このクラスターを、元の AWS リージョンで新しい Aurora グローバルデータベースのプライマリクラスターにします。

    3. 元の AWS リージョンのプライマリクラスターにすべての書き込みトラフィックをリダイレクトします。

    4. AWS リージョンを追加し、前と同じ AWS リージョンにセカンダリクラスターをセットアップします。

Aurora グローバルデータベースの Performance Insights

Amazon RDS Performance Insights と Aurora グローバルデータベースは一緒に使用することができます。一緒に使用した場合、Performance Insights レポートはグローバルデータベース内の各クラスターに個別に適用されます。グローバルデータベースの一部である各クラスターに対して Performance Insights を有効または無効にすることができます。すでに Performance Insights を使用しているグローバルデータベースに新しいセカンダリリージョンを追加するときは、新しく追加したクラスターで Performance Insights を有効にする必要があります。既存のグローバルデータベースから Performance Insights 設定が継承されることはありません。

グローバルデータベースにアタッチされている DB インスタンスの Performance Insights ページを表示しながら、AWS リージョンを切り替えることができます。ただし、AWS リージョンを切り替えた直後は、パフォーマンス情報が表示されない場合があります。DB インスタンスの名前が AWS の各リージョンで同じ場合がありますが、関連付けられている Performance Insights の URL は DB インスタンスごとに異なります。AWS リージョンを切り替えたら、Performance Insights のナビゲーションペインで DB インスタンスの名前をもう一度選択します。

グローバルデータベースに関連付けられている DB インスタンスの場合、パフォーマンスに影響を与える要因は AWS の各リージョンで異なる場合があります。たとえば、各リージョンの DB インスタンスのキャパシティーは異なります。

Performance Insights の使用については、「Amazon RDSパフォーマンスインサイトの使用」を参照してください。

Aurora グローバルデータベースと AWS の他のサービスの併用

Aurora グローバルデータベースと一緒に AWS の他のサービスを利用する場合があります。このような場合は、すべての関連付けられたクラスターの対応する AWS リージョンで、同じ特権や外部関数などが必要です。グローバルデータベースの Aurora クラスターは、最初は読み取り専用レプリケーションターゲットであっても、後でプライマリクラスターに昇格させる可能性があります。この可能性に備えて、グローバルデータベースのすべての Aurora クラスターで、事前に他のサービスに必要な書き込み特権をセットアップしておきます。

以下のリストは、AWS のサービスごとに行うセットアップの概要です。

Lambda 関数を呼び出す

Aurora グローバルデータベースを構成するすべての Aurora クラスターで、「Amazon Aurora MySQL DB クラスターからの Lambda 関数の呼び出し」の手順を実行します。

Aurora グローバルデータベースのクラスターごとに aws_default_lambda_role パラメータを新しい IAM ロールの Amazon リソースネーム (ARN) に設定します。

Aurora グローバルデータベースのデータベースユーザーに Lambda 関数を呼び出すことを許可するには、「Amazon Aurora から AWS のサービスにアクセスすることを許可する IAM ロールの作成」で作成したロールを Aurora グローバルデータベースの各クラスターに関連付けます。

Lambda へのアウトバウンド接続を許可するように Aurora グローバルデータベースの各クラスターを設定します。手順については、「Amazon Aurora MySQL から AWS の他のサービスへのネットワーク通信の有効化」を参照してください。

S3 からデータをロードする

Aurora グローバルデータベースを構成するすべての Aurora クラスターで、「Amazon S3 バケットのテキストファイルから Amazon Aurora MySQL DB クラスターへのデータのロード」の手順を実行します。

グローバルデータベースの Aurora クラスターごとに、DB クラスターの aurora_load_from_s3_role パラメータまたは aws_default_s3_role パラメータを新しい IAM ロールの Amazon リソースネーム (ARN) に設定します。IAM ロールが aurora_load_from_s3_role に指定されていない場合、Aurora は aws_default_s3_role に指定されている IAM ロールを使用します。

Aurora グローバルデータベースのデータベースユーザーに Amazon S3 を呼び出すことを許可するには、「Amazon Aurora から AWS のサービスにアクセスすることを許可する IAM ロールの作成」で作成したロールを、グローバルデータベースの各 Aurora クラスターに関連付けます。

Amazon S3 へのアウトバウンド接続を許可するようにグローバルデータベースの各 Aurora クラスターを設定します。手順については、「Amazon Aurora MySQL から AWS の他のサービスへのネットワーク通信の有効化」を参照してください。

クエリのデータを S3 に保存する

Aurora グローバルデータベースを構成するすべての Aurora クラスターで、「Amazon Aurora MySQL DB クラスターから Amazon S3 バケット内のテキストファイルへのデータの保存」の手順を実行します。

グローバルデータベースの Aurora クラスターごとに、DB クラスターの aurora_select_into_s3_role パラメータまたは aws_default_s3_role パラメータを新しい IAM ロールの Amazon リソースネーム (ARN) に設定します。IAM ロールが aurora_select_into_s3_role に指定されていない場合、Aurora は aws_default_s3_role に指定されている IAM ロールを使用します。

Aurora グローバルデータベースのデータベースユーザーに Amazon S3 を呼び出すことを許可するには、「Amazon Aurora から AWS のサービスにアクセスすることを許可する IAM ロールの作成」で作成したロールを、グローバルデータベースの各 Aurora クラスターに関連付けます。

Amazon S3 へのアウトバウンド接続を許可するようにグローバルデータベースの各 Aurora クラスターを設定します。手順については、「Amazon Aurora MySQL から AWS の他のサービスへのネットワーク通信の有効化」を参照してください。