ApsaraDB RDS for SQL Server の RDS Cluster Edition は、高可用性 (HA) と水平方向の読み取りスケーリングを組み合わせた機能です。プライマリインスタンスとセカンダリインスタンスが HA モードで動作し、最大 7 台の読み取り専用インスタンスを追加して読み取りトラフィックを分散させることで、プライマリとは独立して読み取りスループットを向上させることができます。
仕組み
RDS Cluster Edition は、ネイティブの SQL Server Always On アーキテクチャを採用し、コンピューティングとストレージを分離しています。クラスターは以下のコンポーネントで構成されます。
プライマリ RDS インスタンス:すべての書き込みリクエストを処理します。読み書き分離が有効になっていない場合、読み取りリクエストも処理します。
セカンダリ RDS インスタンス:プライマリのミラーとして自動フェイルオーバーを実現します。読み取り専用ルートエンドポイントを有効にすると、デフォルトで読み取り可能になり、読み取り負荷の分散に参加します。
読み取り専用 RDS インスタンス(最大 7 台):読み取り専用ルートエンドポイント経由でルーティングされた読み取りトラフィックを処理します。各読み取り専用インスタンスには、直接かつ独立したアクセスが可能な内部エンドポイントも備わっています。
読み書き分離
読み取り専用インスタンスを作成し、読み取り専用ルートエンドポイントを有効にした後、アプリケーションに以下の両方のエンドポイントを設定します。
プライマリエンドポイント — すべての書き込みリクエストをここにルーティングします。
読み取り専用ルートエンドポイント — すべての読み取りリクエストをここにルーティングします。このエンドポイントは、プライマリ RDS インスタンス、セカンダリ RDS インスタンス、および読み取り専用 RDS インスタンスに設定された読み取り重みに基づいて、セカンダリインスタンスおよび読み取り専用インスタンス間でトラフィックを分散します。
対応する SQL Server バージョン:SQL Server 2017、SQL Server 2019、SQL Server 2022。
メリット
スケーラブルな読み取り能力 読み取り専用インスタンスを追加することで、読み取りスループットを線形に増加させられます。読み取り専用インスタンスの仕様はプライマリとは独立しており、読み取り負荷の高いワークロードには高スペックのインスタンスを、分析などのバックグラウンドタスクには低スペックのインスタンスを作成できます。
コスト効率の高い読み取りスケーリング 読み取り専用インスタンスは汎用型および専用型インスタンスをサポートしています。プライマリから読み取りトラフィックをオフロードすることで、プライマリインスタンスを書き込みに最適なサイズに調整でき、全体的なコストを削減できます。
セカンダリインスタンスを読み取りに再利用 Cluster Edition インスタンスで読み取り専用ルートエンドポイントを有効にすると、セカンダリインスタンスが自動的に読み取り可能になります。これにより、追加の読み取り専用インスタンスをプロビジョニングすることなく、組み込みの読み取り専用レプリカを利用でき、読み取りスケーリングおよびクラウド移行のコストを抑えることができます。
ユースケース
読み取り専用インスタンスによるトラフィックスパイクへの対応 季節的またはキャンペーン期間中に大量の読み取りトラフィックが発生するアプリケーションでは、高スペックの読み取り専用インスタンスを追加して読み取りリクエストの急増を吸収できます。書き込みトラフィックは引き続きプライマリインスタンスで処理されるため、ピーク時でもパフォーマンスが安定します。
分析ワークロードの分離 専用の読み取り専用インスタンス上で分析やレポートクエリを実行します。これにより、分析ワークロードがプライマリインスタンスのリソースを消費することを防ぎ、ブロッキングを軽減し、トランザクション処理のパフォーマンスを一貫して維持できます。
制限事項
読み取り専用インスタンスは HA を提供しません。 プライマリ RDS インスタンスが障害した場合、ワークロードを読み取り専用インスタンスに自動的に切り替えることはできません。そのため、少なくとも 2 台の読み取り専用インスタンスを作成し、いずれか一方が障害してももう一方がリクエストを処理できるようにしてください。
読み取り専用インスタンスにはディザスタリカバリインスタンスがありません。 読み取り専用インスタンスにはスタンバイレプリカが存在しません。
アプリケーションは読み書き分離のために 2 つのエンドポイントを使用する必要があります。 読み取り専用ルートエンドポイントを有効にした後、アプリケーションを設定して、書き込みリクエストをプライマリエンドポイントに、読み取りリクエストを読み取り専用ルートエンドポイントに送信するようにしてください。
RDS Cluster Edition インスタンス作成時にマルチ AZ デプロイを選択すると、クロスアベイラビリティーゾーンのディザスタリカバリーが有効になります。
RDS クラスターの設定
| タスク | 参照先 |
|---|---|
| 読み取り専用インスタンスの追加 | ApsaraDB RDS for SQL Server の読み取り専用インスタンスの作成 |
| 読み取り専用ルートエンドポイントの有効化 | ApsaraDB RDS for SQL Server インスタンスにおける読み取り専用ルートエンドポイントの有効化による読み書き分離 |
| 読み取り重みの調整 | 読み取り重みの変更 |
| セカンダリインスタンスを読み取り可能にする | セカンダリ RDS インスタンスの読み取り属性の設定 |
| Cluster Edition へのアップグレード | ApsaraDB RDS for SQL Server インスタンスを RDS Cluster Edition にアップグレードする |
次のステップ
RDS Cluster Edition インスタンスを作成するには、「ApsaraDB RDS for SQL Server インスタンスの作成」をご参照ください。