ApsaraDB RDS for MySQL の Cluster Edition は、1 台のプライマリノードと最大 8 台の読み取り可能なセカンダリノードから構成される高可用性 (HA) アーキテクチャです。RDS High-availability Edition とは異なり、High-availability Edition のセカンダリノードはフェールオーバー専用ですが、Cluster Edition のすべてのセカンダリノードが読み取りトラフィックを処理できます。これにより、別途読み取り専用インスタンスを導入する必要がなくなり、コストを最大 40 % 削減できます。
仕組み
RDS クラスターは、コンピュートとストレージの分離を実現したプライマリ+セカンダリアーキテクチャで動作します。すべての書き込みリクエストはプライマリノードが処理します。セカンダリノードはプライマリノードからデータをレプリケーションし、専用の読み取り専用ルートエンドポイント経由で同時に読み取りリクエストに応答します。
以下の 3 種類のレプリケーションモードがサポートされています:
非同期レプリケーション — 書き込みレイテンシーが最も低く、セカンダリノードが一時的にプライマリノードより遅れる場合があります。
準同期レプリケーション — プライマリノードは、データのコミット前に少なくとも 1 台のセカンダリノードからの確認を待機します。これにより、レイテンシーと整合性のバランスが取れます。
MySQL グループレプリケーション (MGR) — Paxos 分散合意プロトコルに基づくモードで、目標復旧時点 (RPO) を 0 に保証します。3 台以上のノードが必要です。
エディション比較
| 項目 | RDS Basic Edition | RDS High-availability Edition | RDS Cluster Edition |
|---|---|---|---|
| ノード数 | 1 | 2(デフォルト) | 2~9 |
| 読み取り可能なセカンダリノード | 該当なし | 非対応 | 対応 |
| エンドポイントの種類 | 読み書き両用エンドポイント | 読み書き両用エンドポイント | 読み書き両用エンドポイントおよび読み取り専用ルートエンドポイント |
| レプリケーションモード | 非対応 | 非同期および準同期 | 非同期、準同期、および MGR |
| 最大利用不可ノード数 | 0 | 1 | n − 1(n = 合計ノード数) |
| ゾーン数 | 1 | ≤ 2 | ≤ ノード数 |
RDS High-availability Edition では、デフォルトで 1 台のプライマリインスタンスと 1 台のセカンダリインスタンスがプロビジョニングされます。追加の読み取りキャパシティが必要な場合は、別途読み取り専用インスタンスを導入する必要があります。一方、RDS Cluster Edition では、デフォルトで 1 台のプライマリノードと 2 台のセカンダリノードがプロビジョニングされます。また、1 台のプライマリノードと 1 台のセカンダリノードから構成されるクラスターを作成し、後からノードを追加して最大 9 台まで拡張することも可能です。
利用シーン
ワークロードが以下のいずれかのシナリオに該当する場合、RDS Cluster Edition の採用をご検討ください:
読み取り負荷が非常に高いワークロード:セカンダリノードが読み取りトラフィックを直接処理します。読み取りキャパシティの拡張には、別途読み取り専用インスタンスを作成するのではなく、ノードを追加してください。
ゼロデータ損失が必須の要件:MGR モード(3 台以上のノードが必要)を有効化することで、RPO = 0 を保証できます。
複数の冗長レベルを持つクロスゾーンディザスタリカバリ:セカンダリノードを異なるゾーンに展開します。n 台のノードから構成されるクラスターは、最大 n − 1 台のノード障害に耐えられます。
読み取りトラフィックが変動するワークロード:クラスターの再作成を伴わず、必要に応じてセカンダリノードを追加または削除できます。
RDS Cluster Edition は、ピーク時の高読み取り負荷に対応するオンライン小売、自動車、教育、および企業資源計画 (ERP) システムなどのワークロードに適しています。また、本番データに対する分析クエリの実行にも活用できます。
主な特徴
読み取り可能なセカンダリノード
セカンダリノードは、以下の 2 種類のアクセス方法で読み取りリクエストを処理します:
読み取り専用ルーティングエンドポイント — 1 つを無料で作成し、複数のセカンダリノードを追加し、読み取り重みを割り当てて負荷を分散できます。詳細については、「インスタンスのエンドポイントとポートを表示および管理する」をご参照ください。
データベースプロキシ — プライマリノードとセカンダリノード間の読み書き分離、自動読み書き分離、コネクションプーリング、接続保持、レイテンシーしきい値コントロール、およびトランザクション分割を有効にします。2024 年 6 月 25 日以降、RDS Cluster Edition を実行するプライマリ RDS インスタンスを作成すると、汎用データベースプロキシが追加費用なしで含まれます。詳細については、「データベースプロキシとは」をご参照ください。
より高い安定性を得るために、汎用プロキシから専用プロキシへアップグレードするには、「データベースプロキシの種類および数を変更する」をご参照ください。専用プロキシを無効化するには、「専用プロキシ機能を無効化する」をご参照ください。
柔軟なノード管理
クラスターの作成後に、容量のニーズに合わせてセカンダリノードを追加または削除できます。各ノードは、ノードレベルのモニタリングによって個別にモニタリングされ、クラスター内のすべてのノードのステータスを把握できます。詳細については、「ApsaraDB RDS for MySQL クラスターにノードを追加する」および「ApsaraDB RDS for MySQL クラスターからノードを削除する」をご参照ください。
高い信頼性
RDS Cluster Edition には、クラウドネイティブな信頼性向上機能が含まれています:
秒単位の障害検出 — HA システムがセカンダリノードの障害を数秒で検出します(従来のアーキテクチャでは分単位でした)。
高速なデータ復元 — Elastic Block Storage (EBS) を活用した数秒単位のバックアップにより、復元時間を数十分から約 1 分に短縮します。また、99 % のケースでセカンダリノードの障害回復は 10 分以内に完了します。
自動再構築 — セカンダリノードがプライマリノードより 7,200 秒(2 時間)以上遅れた場合、自動的に再構築が実行され、遅延が解消されます。
クロスゾーンディザスタリカバリ — セカンダリノードを異なるゾーンに展開します。すべてのセカンダリノードがディザスタリカバリに参加するため、2 ノード構成の HA セットアップよりも冗長レベルが高くなります。
制限事項
RDS Cluster Edition は、MySQL 5.7 および MySQL 8.0 のみでサポートされます。
MGR モードを使用するには、クラスター内に 3 台以上のノードが必要です。
クラスターの最大ノード数は 9 台(1 台のプライマリノードおよび 8 台のセカンダリノード)です。
次のステップ
| タスク | 関連ドキュメント |
|---|---|
| RDS クラスターの作成 | 手順 1:ApsaraDB RDS for MySQL インスタンスの作成とデータベースの設定 |
| ノードの追加 | ApsaraDB RDS for MySQL クラスターにノードを追加する |
| ノードの削除 | ApsaraDB RDS for MySQL クラスターからノードを削除する |
| RDS High-availability Edition からのアップグレード | RDS High-availability Edition から RDS Cluster Edition へのアップグレード |
| RDS Basic Edition からのアップグレード | RDS Basic Edition から RDS Cluster Edition へのアップグレード |
| RDS Enterprise Edition からのマイグレーション | RDS Enterprise Edition から RDS Cluster Edition へのデータ移行 |
| MGR の概要 | MGR の概要 |
| MGR の有効化 | MGR モードを使用します |
| データベースプロキシの有効化 | 専用プロキシ機能を有効化します |
| プロキシアクセスポリシーの設定 | データベースプロキシ接続アドレスへのアクセスポリシーの設定 |