SQL Server Cluster Edition を実行する ApsaraDB RDS インスタンスは、高可用性のためにプライマリ / セカンダリアーキテクチャを使用します。この機能は、読み取りリクエストをオフロードすることでコストを削減し、専用の読み取り専用インスタンスをプロビジョニングする必要がなくなります。
仕組み
SQL Server Cluster Edition インスタンスでセカンダリインスタンスを読み取り可能にするには、セカンダリインスタンス専用の読み取り専用エンドポイント、または読み書き分離 (統合読み取り専用エンドポイント) のいずれかを有効にする必要があります。プライマリインスタンスとセカンダリインスタンスの読み書き機能は、選択したオプションによって異なります:
-
専用の読み取り専用エンドポイントと読み書き分離のどちらも有効になっていない場合: プライマリインスタンスのみが読み書きが可能です。セカンダリインスタンスからの読み取りやセカンダリインスタンスへの書き込みはできません。
-
セカンダリインスタンス専用の読み取り専用エンドポイントが有効になっている場合: プライマリインスタンスは読み書きが可能で、セカンダリインスタンスは読み取り専用です。このエンドポイントは、プライマリインスタンスや他の読み取り専用インスタンスではなく、セカンダリインスタンスにのみ接続をルーティングします。
-
読み書き分離 (統合読み取り専用エンドポイント) が有効になっている場合: プライマリインスタンスは読み書きが可能で、セカンダリインスタンスは読み取り専用です。プライマリインスタンス、セカンダリインスタンス、およびすべての読み取り専用インスタンスは、読み取りの重み配分に参加できます。
前提条件
プライマリインスタンスは、次の要件を満たす必要があります。この情報は、インスタンスの [基本情報] ページで確認できます。
-
インスタンスバージョン: 2017 Enterprise Cluster Edition、2019 Enterprise Cluster Edition、2022 Enterprise Cluster Edition、または 2025 Enterprise Cluster Edition
-
インスタンスシリーズ: Cluster Edition
-
ストレージタイプ: ESSD
-
課金方法: サブスクリプションまたは従量課金。サーバーレスインスタンスはサポートされていません。
方法 1:読み書き分離の設定
- RDSインスタンスにアクセスし、上部のリージョンを選択し、対象のRDSインスタンスのIDをクリックします。
-
ナビゲーションウィンドウで、クラスター管理 をクリックします。
-
読み書き分離が有効になっていない場合は、[読み取り専用エンドポイントの有効化] をクリックします。表示されるダイアログボックスで、アドレスのタイプ と 重みの割り当て を設定します。
読み書き分離がすでに有効になっている場合は、読み取り専用アドレスの設定 をクリックします。表示されるダイアログボックスで、重みの割り当て を設定します。
重みの値は 100 の整数倍である必要があります。たとえば、セカンダリインスタンスを読み取り可能にするには、0 より大きい重み (例: 800) を割り当て、プライマリインスタンスの重みを 0 に設定して、すべての読み取りリクエストをオフロードすることができます。
インスタンスの読み取りの重みが高いほど、処理する読み取りリクエストが多くなります。たとえば、読み取りプール内の 3 つのインスタンスの重みが 100、200、200 の場合、1:2:2 の比率で読み取りリクエストを処理します。
-
自動設定: システムは、各インスタンスの仕様に基づいて読み取りの重みを自動的に割り当てます。プライマリインスタンスに後から追加された新しい読み取り専用インスタンスも、システムが割り当てた重み に基づいて、読み書き分離に自動的に追加されます。手動での設定は不要です。
-
カスタム設定: 各インスタンスの読み取りの重みを手動で設定します。値は 0 から 10,000 までの整数である必要があります。新しい読み取り専用インスタンスにはデフォルトで 0 の重みが割り当てられるため、手動での設定が必要です。
説明読み取り専用インスタンスを削除すると、システムはその重みを自動的に削除します。残りのインスタンスの重みは変更されません。
-
-
[OK] をクリックします。
方法 2:専用の読み取り専用エンドポイントの有効化
専用の読み取り専用エンドポイントは、セカンダリインスタンスへの読み取り専用アクセスのみを提供します。このエンドポイントを使用して、プライマリインスタンスや他の読み取り専用インスタンスにアクセスすることはできません。
-
[インスタンス] ページに移動し、上部メニューでリージョンを選択してから、対象のインスタンスの ID をクリックします。
-
ナビゲーションウィンドウで、クラスター管理 をクリックします。
-
[セカンダリインスタンスのネットワーク情報] セクションで、[セカンダリインスタンスエンドポイントの有効化] をクリックし、アドレスのタイプ を設定します。
-
[OK] をクリックします。
API リファレンス
AllocateReadWriteSplittingConnection API を呼び出して、読み書き分離用の統合読み取り専用エンドポイントを割り当てることができます。