Amazon Aurora MySQL DB インスタンスのリードレプリカを作成するにはどうすればよいですか?

最終更新日: 2020 年 12 月 9 日

Amazon Aurora MySQL クラスターを持っています。Aurora DB クラスター用にリージョン内リードレプリカまたはクロスリージョンリードレプリカを作成したいと考えています。これを行うにはどうすればよいですか?

簡単な説明

Amazon Aurora レプリカをフェイルオーバーターゲットとして使用できます。つまり、プライマリ DB インスタンスに障害が発生すると、Aurora レプリカがプライマリインスタンスに昇格されます。クロスリージョンリードレプリカを作成すると、まれに Amazon RDS リージョンに障害が発生した場合に可用性が向上します。

Aurora レプリカは、クラスターボリュームに対する読み取り操作に完全に特化しているため、読み込みスケーリングにも機能します。プライマリインスタンスは書き込みオペレーションを管理します。クラスター内のすべての DB インスタンスはクラスターボリュームを共有するため、各 Aurora レプリカのデータをコピーする作業は最小限です。

注: Aurora レプリカは、(RDS MySQL リードレプリカで使用される) バイナリログレプリケーションを使用しません。このため、プライマリインスタンスが更新を書き込んだ後、通常、遅延は 100 ミリ秒未満になります。これは Amazon Aurora を使用する際の利点です。これは、MySQL ベースのレプリケーションに比べてレプリケーションラグが一般的に低く、予測可能なためです。リージョン間で多様な読み取りトラフィックがある場合、クロスリージョンレプリケーション機能が役立ちます。

Aurora MySQL DB クラスターのリージョンまたはクロスリージョンリードレプリカを作成するには、この記事の手順を実行してください。

注: これらの手順は、Aurora サーバーレスクラスターまたは Aurora マルチマスタークラスターには適用されません。

解決方法

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、最新の AWS CLI バージョンを使用していることを確認してください

Amazon RDS コンソールを使用して Aurora MySQL クラスター用のリージョン内リードレプリカを作成する

注: 暗号化されていない Aurora DB クラスターでは、暗号化された Aurora レプリカを作成することはできません。暗号化された Aurora DB クラスターでは、暗号化されていない Aurora レプリカを作成することはできません。

1.    Amazon RDS コンソールを開きナビゲーションペインから [データベース] を選択します。

2.    新しい DB インスタンスを追加する DB クラスターを選択します。

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

4.    [リーダーの追加] ページで、Aurora レプリカのオプションをカスタマイズします。

5.    [リーダーの追加] を選択してレプリカを作成します。

AWS CLI を使用して Aurora MySQL クラスターのリージョン内リードレプリカを作成する

AWS CLI を使用して DB クラスターに Aurora レプリカを作成するには、create-db-instance コマンドを実行します。--db-cluster-identifier オプションを使用して、DB クラスターの名前を含めます。availability-zone パラメータ を使用して、Aurora レプリカのアベイラビリティーゾーン (AZ) を指定することもできます。

このサンプルコマンドにより、(同じリージョンにあり、Aurora MySQL 5.7 の互換性がある) Aurora MySQL のリードレプリカが作成されます。

Linux、macOS、Unix の場合:

aws rds create-db-instance --db-instance-identifier sample-instance-us-west-2a \
    --db-cluster-identifier sample-cluster --engine aurora-mysql --db-instance-class db.r4.large \
    --availability-zone us-west-2a

Windows の場合:

aws rds create-db-instance --db-instance-identifier sample-instance-us-west-2a ^
    --db-cluster-identifier sample-cluster --engine aurora-mysql --db-instance-class db.r4.large ^
    --availability-zone us-west-2a

: Aurora MySQL 5.6 互換クラスターのリードレプリカを作成する場合は、このコマンドで --engine パラメータ--engine aurora に変更します。

Aurora MySQL クラスターのクロスリージョンリードレプリカを作成する

ソース DB クラスターとは異なるリードレプリカを AWS リージョンで作成すると、いくつかの利点があります。これにより、災害対策機能が向上し、読み取りオペレーションをユーザーに近いリージョンに拡張できます。また、AWS リージョンから別のリージョンへの移行も容易になります。

: クロスリージョンリードレプリカを作成する前に、ソース Aurora MySQL DB クラスターでバイナリログ記録を有効にしてください。クロスリージョンレプリケーションは、MySQL バイナリレプリケーションを使用して、クロスリージョンリードレプリカクラスターの変更をリプレイします。

DB クラスターでバイナリログを有効にする

1.    DB クラスターでバイナリログを有効にするには、

2.    ソース DB クラスターの binlog_format パラメータを更新します。これは、デフォルトのクラスターパラメータグループにあるクラスターレベルのパラメータです。

3.    DB クラスターがデフォルトの DB クラスターパラメータグループを使用する場合は、新しい DB クラスターパラメータグループを作成して binlog_format 設定を変更します。

4.    binlog_formatMIXED に設定するのがベストプラクティスです。特定のバイナリログ形式が必要な場合は、binlog_formatROW または STATEMENT に設定することもできます。

5.    変更を有効にするには、Aurora DB クラスターを再起動します。

Amazon RDS コンソールを使用してクロスリージョンクラスターを作成する

1.    Amazon RDS コンソールを開きソース DB クラスターをホストする AWS リージョンを選択します。

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

3.    クロスリージョンリードレプリカを作成する DB インスタンスのチェックボックスをオンにします。

4.    [アクション] で、[クロスリージョンのリードレプリカの作成] を選択します。

5.    [クロスリージョンのリードレプリカの作成 ] ページで、クロスリージョンリードレプリカ DB クラスターのオプション設定を選択します。

AWS CLI を使用してクロスリージョンクラスターを作成する

AWS CLI を使用してクロスリージョンクラスターを作成するには、2 つの手順を踏みます。まず、create-db-cluster 呼び出しを使用して、ターゲットリージョンにクラスター自体を作成します。次に、create-db-instance 呼び出しを使用して、リーダーインスタンスを作成します。

この例では、Linux、macOS、または Unix を使用して、Aurora MySQL 5.6 と互換性があるクロスリージョンレプリカを作成します。

1.    次のようなコマンドを実行して、クラスターを作成します。

aws rds create-db-cluster \
  --db-cluster-identifier sample-replica-cluster \
  --engine aurora \
  --replication-source-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster

2.    以下のように、クラスターが使用可能かどうかを確認します。

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

3.    以下のように、リーダーを作成します。

aws rds create-db-instance \
  --db-cluster-identifier sample-replica-cluster \
  --db-instance-class db.r3.large \
  --db-instance-identifier sample-replica-instance \
  --engine aurora

Windows で CLI を使用して同じものを作成するには、同じ手順を使用します。ただし、\ の代わりに ^ 記号を行の区切り文字として使います。</p