ローカル書き込み転送の有効化 - Amazon Aurora

ローカル書き込み転送の有効化

デフォルトでは、Aurora MySQL DB クラスターのローカル書き込み転送は有効になっていません。ローカル書き込み転送は、インスタンスレベルではなくクラスターレベルで有効にします。

重要

バイナリロギングを使用するクロスリージョンリードレプリカに対してローカル書き込み転送を有効にすることもできますが、書き込み操作はソース AWS リージョン に転送されません。これらは、binlog リードレプリカクラスターのライター DB インスタンスに転送されます。

この方法は、セカンダリ AWS リージョン の binlog リードレプリカへの書き込みの用途がある場合にのみ使用してください。そうしないと、複製されたデータセットが互いに矛盾する「スプリットブレイン」シナリオになってしまう可能性があります。

どうしても必要な場合を除いて、クロスリージョンのリードレプリカでのローカル書き込み転送ではなく、グローバルデータベースでのグローバル書き込み転送を使用することをお勧めします。詳しくは、「Amazon Aurora Global Database の書き込み転送を使用する」を参照してください。

DB クラスターを作成または変更するときに、AWS Management Console を使用して、[リードレプリカの書き込み転送] の [ローカル書き込み転送を有効にする] チェックボックスを選択します。

AWS CLI で書き込み転送を有効にするには、--enable-local-write-forwarding オプションを使用します。このオプションは、create-db-cluster コマンドを使用して新しい DB クラスターを作成するときに機能します。modify-db-cluster コマンドを使用して、既存の DB クラスターを変更する場合にも機能します。これらの同じ CLI コマンドで --no-enable-local-write-forwarding オプションを使用することで、書き込み転送をオフにすることができます。

次の例では、書き込み転送を有効にした Aurora MySQL DB クラスターを作成します。

aws rds create-db-cluster \ --db-cluster-identifier write-forwarding-test-cluster \ --enable-local-write-forwarding \ --engine aurora-mysql \ --engine-version 8.0.mysql_aurora.3.04.0 \ --master-username myuser \ --master-user-password mypassword \ --backup-retention 1

次に、書き込み転送を使用できるように、ライター DB インスタンスとリーダー DB インスタンスを作成します。詳しくは、「Amazon Aurora DB クラスターの作成」を参照してください。

Amazon RDS API を使用して書き込み転送を有効にするには、EnableLocalWriteForwarding パラメータを true に設定します。このパラメータは、CreateDBCluster オペレーションを使用して新しい DB クラスターを作成するときに機能します。この操作は、ModifyDBCluster オペレーションを使用して既存の DB クラスターを変更する場合にも機能します。EnableLocalWriteForwarding パラメータを false に設定することで、書き込み転送をオフにすることができます。

データベースセッションの書き込み転送を有効にする

aurora_replica_read_consistency パラメータは、書き込み転送を有効にする DB パラメータと DB クラスターパラメータです。読み取り整合性レベルには、EVENTUALSESSION、または GLOBAL を指定できます。整合性レベルの詳細については、書き込み転送の読み取り整合性 を参照してください。

このパラメータには、次の規則が適用されます。

  • デフォルト値は null です。

  • 書き込み転送は、aurora_replica_read_consistency を EVENTUALSESSION、または GLOBAL に設定した場合にのみ使用できます。このパラメータは、書き込み転送が有効な DB クラスターのリーダーインスタンスにのみ関係します。

  • マルチステートメントトランザクション内で、このパラメータを設定したり (空の場合)、設定解除したり (既に設定されている場合) することはできません。そのようなトランザクション中に、ある有効な値から別の有効な値に変更できますが、このアクションはお勧めしません。