RDS for SQL Server では、読み取り専用インスタンスを管理し、統合読み取り専用ルーティングエンドポイントを提供することで、読み書き分離を実現します。アプリケーションでプライマリインスタンスエンドポイントと読み取り専用ルーティングエンドポイントを設定することで、システムパフォーマンスを向上させ、スケーラビリティを強化し、読み取り操作の負荷分散を実現できます。また、RDS for SQL Server (RDS Cluster Edition) では、バックアップインスタンスエンドポイントが提供されます。このエンドポイントを使用してバックアップインスタンスに接続し、トラブルシューティング、データ検証、その他の運用タスクを実行できます。
仕組み
RDS for SQL Server のプライマリインスタンスに読み取り専用インスタンスを作成した後、読み書き分離を有効にできます。アプリケーションでプライマリインスタンスエンドポイントと読み取り専用ルーティングエンドポイントを設定すると、書き込みリクエストはプライマリインスタンスに送信され、読み取りリクエストは読み取り専用ルーティングエンドポイントに送信されます。読み取り専用ルーティングエンドポイントは、割り当てられた読み取りウェイトに基づいて、読み取りリクエストをバックアップインスタンスと読み取り専用インスタンス間で自動的に分散します。
メリット
-
統合エンドポイントによる簡単なメンテナンス
単一の読み取り専用ルーティングエンドポイントに接続することで、読み取り専用インスタンスで読み取り操作を実行でき、メンテナンスコストを削減できます。また、アプリケーションコードを変更することなく、読み取り専用インスタンスを追加して読み取り能力を拡張することもできます。
-
さまざまなユースケースに対応するカスタマイズ可能なウェイト
各読み取り専用インスタンスの読み取りウェイトをカスタマイズして、さまざまなアプリケーションシナリオの要求に対応できます。
-
高可用性を実現する自動ヘルスチェック
読み書き分離機能は、すべての読み取り専用インスタンスに対して自動的にヘルスチェックを実行します。インスタンスに障害が発生した場合、またはレプリケーション遅延が指定されたしきい値を超えた場合、システムはそのインスタンスへの読み取りリクエストのルーティングを停止します。代わりに、残りの正常なインスタンス間でリクエストを分散します。このプロセスにより、単一インスタンスの障害がアプリケーションに影響を及ぼすのを防ぎます。インスタンスが復旧すると、RDS は自動的にそのインスタンスをリクエスト分散プールに追加します。
説明単一障害点を回避するために、プライマリインスタンスに対して少なくとも 2 つの読み取り専用インスタンスを作成することを推奨します。
読み取り専用エンドポイントとネットワークエンドポイント
読み取り専用エンドポイントには、統合読み取り専用ルーティングエンドポイントとバックアップインスタンスエンドポイントが含まれます。
-
統合読み取り専用ルーティングエンドポイント: アプリケーションでこのエンドポイントを設定して、読み書き分離を実装します。クライアントがこのエンドポイントに読み取りリクエストを送信すると、読み取りウェイトに基づいて、バックアップインスタンスと読み取り専用インスタンスに自動的に分散されます。
-
バックアップインスタンスエンドポイント: アプリケーションでこのエンドポイントを設定して、バックアップインスタンスに直接アクセスします。このエンドポイントを使用する場合、プライマリインスタンスまたは読み取り専用インスタンスにはアクセスできません。
アプリケーションがプライマリインスタンスのエンドポイントのみを使用する場合、すべてのリクエストがそのインスタンスに送信されます。
前提条件
プライマリ RDS for SQL Server インスタンスは、次の要件を満たす必要があります。この情報は、インスタンスの基本情報 ページで確認できます。
-
エンジンバージョン: 2017 RDS Cluster Edition、2019 RDS Cluster Edition、2022 RDS Cluster Edition、または 2025 RDS Cluster Edition
-
インスタンスシリーズ: RDS Cluster Edition
-
ストレージタイプ: ESSD
-
課金方法: サブスクリプションまたは従量課金。Serverless インスタンスはサポートされていません。
注意事項
-
読み取り専用ルーティングエンドポイントを手動で変更することはできません。
-
読み取り専用エンドポイントの有効化と使用は無料です。読み取り専用インスタンスに対してのみ課金されます。
-
読み取り専用ルーティングエンドポイントは、クラシックネットワークをサポートしていません。
統合読み取り専用ルーティングエンドポイントの有効化
統合読み取り専用ルーティングエンドポイントを有効にして、読み取りウェイトを設定します。その後、システムは設定されたウェイトに基づいて読み取りリクエストを処理します。
- RDSインスタンスにアクセスし、上部のリージョンを選択し、対象のRDSインスタンスのIDをクリックします。
-
左側のナビゲーションペインで、クラスター管理 をクリックします。 次に、読み取り専用アドレスの有効化 をクリックします。
-
表示されたダイアログボックスで、エンドポイントタイプを設定し、各ノード (プライマリインスタンス、セカンダリインスタンス、および読み取り専用インスタンス) の読み取りウェイトを設定します。次に、OK をクリックします。
プライマリノードとバックアップノードは、RDS Cluster Edition アーキテクチャの一部です。読み取り専用インスタンスは手動で作成します。詳細については、「RDS Cluster Edition アーキテクチャ」をご参照ください。
パラメーター
説明
[アドレスタイプ:]
-
[イントラネット (VPC)]: 同じ VPC 内の ECS インスタンスなど、他の Alibaba Cloud サービスからの内部接続に使用されます。
-
[インターネット]: アプリケーションが別の VPC またはオンプレミスマシンにデプロイされており、インターネット経由でインスタンスにアクセスする必要がある場合に使用されます。
説明パブリックネットワークは不安定になる可能性があるため、アプリケーションには内部エンドポイントを使用することを推奨します。詳細については、「内部エンドポイントとパブリックエンドポイントの違い」をご参照ください。
[重みの割り当て]
ウェイト割り当ての対象となるロールには、プライマリノード、バックアップノード、および読み取り専用インスタンス (存在する場合) が含まれます。読み取りウェイトが高いほど、インスタンスはより多くの読み取りリクエストを処理します。たとえば、プライマリインスタンスに読み取りウェイトが 100、200、200 の 3 つの読み取り専用インスタンスがある場合、読み取りリクエストは 1:2:2 の比率で分散されます。
-
[自動設定]: システムは、各読み取り専用インスタンスの仕様に基づいて、読み取りウェイトを自動的に割り当てます。
また、システムは新しい読み取り専用インスタンスのウェイトも自動的に設定します。詳細については、「システムウェイト配分ルール」をご参照ください。
-
[カスタム設定]: 各ノードの読み取りウェイトを手動で設定します。値の範囲は 0 ~ 10,000 です。
新しい読み取り専用インスタンスの読み取りウェイトはデフォルトで 0 であり、手動で変更する必要があります。
重要クラスター内の読み取り専用インスタンスがリリースされると、システムは自動的にそのウェイト割り当てを削除します。
-
バックアップインスタンスエンドポイントの有効化
-
RDS インスタンスページに移動します。上部メニューで、対象のインスタンスが存在するリージョンを選択します。次に、インスタンスの ID をクリックします。
-
左側のナビゲーションペインで、クラスター管理 をクリックします。次に、スタンバイインスタンスアドレスの有効化 をクリックします。
-
アドレスタイプ: を選択します:
-
[イントラネット (VPC)]: 同じ VPC 内の ECS インスタンスなど、他の Alibaba Cloud サービスからの内部接続に使用されます。
-
[インターネット]: アプリケーションが別の VPC またはオンプレミスマシンにデプロイされており、インターネット経由でインスタンスにアクセスする必要がある場合に使用されます。
-
-
OK をクリックします。
クラスター情報
クラスター管理 ページで、クラスターの基本情報と設定一覧を表示できます。
クラスターの基本情報
クラスターの基本情報には、マスターインスタンスネットワーク情報、スタンバイインスタンスのネットワーク情報、および読み取り専用ネットワーク情報が含まれます。
[プライマリインスタンスのネットワーク情報]セクションには、[内部エンドポイント]、[内部ポート]、[パブリックエンドポイント]、[パブリックポート]、および [ネットワークタイプ] (VPC) が表示されます。[バックアップインスタンスエンドポイントを無効にする]スイッチで制御される [バックアップインスタンスのネットワーク情報]セクションには、[バックアップインスタンスエンドポイント]、[ポート]、および [ネットワークタイプ]が表示されます。[読み取り専用ルーティングエンドポイントを無効にする]スイッチで制御される [読み取り専用ネットワーク情報]セクションには、[読み取り専用ルーティングエンドポイント]、[ポート]、[ネットワークタイプ]、[ウェイト配分モード]、および [参加インスタンス数]が表示されます。
クラスター設定リスト
インスタンスリストには、クラスター内のすべてのノードとインスタンス、およびその実行ステータス、ロール、重みの読み取りが表示されます。このリストでは、異なるロールのインスタンスを表示および管理できます。
[ステータス]、[ロール]、および [読み取りウェイト]に加えて、クラスターノードリストには、[インスタンス ID]、[インスタンス仕様]、[リージョン & ゾーン]、および [VSwitch]などの列も含まれます。この例では、プライマリノードの読み取りウェイトは 0 で、バックアップノードの読み取りウェイトは 800 です。[操作]列で、[ウェイト配分の変更]をクリックして設定を構成できます。
関連操作
-
ビジネスワークロードが増加した場合、統合読み取り専用ルーティングエンドポイントの読み取りウェイト配分を変更できます。その後、エンドポイントは新しいウェイトに基づいて、バックアップインスタンスとすべての設定された読み取り専用インスタンスに読み取りリクエストを自動的に転送します。詳細については、「ウェイト配分の変更」をご参照ください。
-
読み書き分離機能が不要になった場合は、無効にできます。詳細については、「読み書き分離 (読み取り専用ルーティングエンドポイント) の無効化」をご参照ください。