データレプリケーションモードは、ApsaraDB RDS for MySQL がプライマリインスタンスからセカンダリインスタンスへデータを同期する方法を制御します。ワークロードに適したモードを選択することで、データ整合性と書き込みレイテンシーのバランスを取ることができます。
サポートされるエディションとバージョン
すべての RDS エディションがレプリケーションモードの設定に対応しているわけではありません。インスタンスは、次のいずれかの要件を満たす必要があります。
| RDS エディション | MySQL バージョン | ストレージタイプ | 追加要件 |
|---|---|---|---|
| RDS High-availability Edition | MySQL 5.7 または 8.0 | Premium Local SSDs | — |
| RDS High-availability Edition | MySQL 5.7 または 8.0 | Enterprise SSDs (ESSDs) | マイナーエンジンバージョン 20201031 以降 |
| RDS High-availability Edition | MySQL 5.6 | — | — |
| RDS Cluster Edition | MySQL 5.7 または 8.0 | — | — |
| — | MySQL 5.5 | — | — |
RDS High-availability Edition インスタンスで標準 SSD を使用している場合は、先にストレージタイプを ESSD にアップグレードしてください。詳細については、「Upgrade the storage type of an ApsaraDB RDS for MySQL instance from standard SSDs to ESSDs」をご参照ください。マイナーエンジンバージョンを更新する場合は、「Update the minor engine version of an ApsaraDB RDS for MySQL instance」をご参照ください。
データレプリケーションモード
RDS for MySQL は、一貫性とパフォーマンスのトレードオフに応じて、次の 3 つのレプリケーションモードをサポートします:非同期 (最速、整合性は最も低い) → 準同期 (バランス) → MGR (整合性が最も強く、データセキュリティが最も高い)。
MGR
MySQL Group Replication (MGR) は、分散合意形成のための Paxos プロトコルに基づいています。トランザクションがプライマリインスタンスでコミットされる前に、システムはトランザクションデータをセカンダリインスタンスに送信し、過半数が受信を確認するまで待機します。このため、MGR はデータ整合性とセキュリティの観点で最も強力な選択肢です。
適した用途:金融レベルの信頼性と強いデータ整合性を必要とするワークロード。
提供範囲:RDS Cluster Edition のみ。
準同期
プライマリインスタンスで更新が完了した後、バイナリログがセカンダリインスタンスに同期されます。少なくとも 1 つのセカンダリインスタンスがログを受信した時点でトランザクションはコミット済みと見なされ、ログリプレイを待機しません。
セカンダリインスタンスが使用できなくなった場合、またはプライマリインスタンスとセカンダリインスタンス間でネットワーク中断が発生した場合、このモードは自動的に非同期レプリケーションへ縮退します。
適した用途:データの安全性が重要でありつつ、書き込みレイテンシーを低く維持する必要がある、ほとんどの本番ワークロード。
非同期
プライマリインスタンスは、要求された操作の完了直後にアプリケーションへ応答し、バックグラウンドでセカンダリインスタンスへデータをレプリケートします。セカンダリインスタンスが使用できない場合でも、プライマリインスタンスは通常どおり動作を継続します。ただし、レプリケーションが完了する前にプライマリインスタンスで障害が発生した場合、データ不整合が発生する可能性があります。
適した用途:書き込みレイテンシーの低さを優先し、わずかなレプリケーションラグを許容できるワークロード。
エディション別のサポートモード
| RDS エディション | レプリケーションモード |
|---|---|
| RDS High-availability Edition | 準同期 |
| 非同期 | |
| RDS Cluster Edition | 準同期 |
| 非同期 | |
| MGR | |
| RDS Basic Edition | サポートされていません |
データレプリケーションモードの照会
-
[Instances] ページに移動します。上部のメニューで、インスタンスが存在するリージョンを選択します。対象のインスタンス ID を見つけてクリックします。
-
左側のナビゲーションペインで、[サービス可用性] をクリックします。
-
[可用性情報] セクションで、[データレプリケーションモード] パラメーターの値を確認します。
データレプリケーションモードの変更
RDS Cluster Edition のインスタンスの場合は、[基本情報] ページの [インスタンストポロジー管理] セクションでデータレプリケーションモードを変更します。
-
[Instances] ページに移動します。上部のメニューで、インスタンスが存在するリージョンを選択します。対象のインスタンス ID を見つけてクリックします。
-
左側のナビゲーションペインで、[サービス可用性] をクリックします。
-
[可用性情報] セクションで、[データレプリケーションモードの変更] をクリックします。
-
レプリケーションモードを選択し、[OK] をクリックします。
よくある質問
推奨されるデータレプリケーションモードはどれですか?
ビジネス要件に基づいてモードを選択します。強いデータ整合性と金融レベルの信頼性が必要な場合は、MGR モード (RDS Cluster Edition のみで利用可能) を使用します。応答を高速化したい場合は、非同期モードを使用します。それ以外のシナリオでは、準同期モードを使用します。
データレプリケーションモードを変更できないのはなぜですか?
エディションによってサポートされるモードが異なります。インスタンスのエディションが目的のモードをサポートしているかどうかを確認するには、エディション別のサポートモードの表を参照してください。インスタンスが RDS Basic Edition の場合、この機能はサポートされていません。
関連 API
| 操作 | 説明 |
|---|---|
| ModifyDBInstanceHAConfig | インスタンスのデータレプリケーションモードと高可用性モードを変更します。 |