すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:読み書き分離の概要

最終更新日:Jan 23, 2024

データベースシステムが少数の書き込みリクエストを受信し、多数の読み取りリクエストを受信した場合、単一のプライマリRDSインスタンスが読み取りリクエストに圧倒され、ワークロードが中断される可能性があります。 データベースシステムの読み取り機能を強化するには、1つ以上の読み取り専用ApsaraDB RDS for SQL Serverインスタンスを作成します。 このようにして、多数のデータベース読み取り要求を処理することができ、アプリケーションのスループットが向上する。

説明

ApsaraDB RDS for SQL Serverは、ネイティブSQL ServerのAlways Onアーキテクチャを使用します。 ApsaraDB RDS for SQL Serverでは、プライマリRDSインスタンスをレプリケートして読み取り専用RDSインスタンスを生成するために物理レプリケーションが実装されます。 読み取り専用RDSインスタンスのデータは、プライマリRDSインスタンスのデータと同じです。 プライマリRDSインスタンスのデータが更新されると、更新は読み取り専用RDSインスタンスに自動的に同期されます。

プライマリRDSインスタンスのエンドポイントと読み取り専用ルーティングエンドポイントをアプリケーションに追加して、読み書き分離を実装できます。 これにより、データベースシステムは、書き込みリクエストをプライマリRDSインスタンスに転送し、読み取りリクエストを読み取り専用ルーティングエンドポイントに転送します。 読み取り専用ルーティングエンドポイントは、これらのノードおよびインスタンスの読み取り重みに基づいて、読み取り要求をセカンダリノードまたは読み取り専用RDSインスタンスに配信します。 詳細については、「読み取り専用ルーティングエンドポイントを有効にして読み書き分離を有効にする」をご参照ください。

説明
  • 読み書き分離は、ApsaraDB RDS for SQL ServerとApsaraDB RDS for MySQLでさまざまな方法で実装されます。

    • ApsaraDB RDS for SQL Server: 読み書き分離を実装するには、プライマリRDSインスタンスのエンドポイントと読み取り専用ルーティングエンドポイントをアプリケーションに追加する必要があります。

    • ApsaraDB RDS for MySQL: 読み書き分離を実装するには、読み取り専用ルーティングエンドポイントをアプリケーションに追加する必要があります。

image

読み取り専用ルーティングエンドポイントと内部およびパブリックエンドポイントの違い

読み取り専用ルーティングエンドポイントを有効にすると、読み取り専用ルーティングエンドポイントをアプリケーションに追加できます。 アプリケーションからの読み取り要求は、読み取り専用ルーティングエンドポイントに転送され、関連するセカンダリノードまたは読み取り専用RDSインスタンスに、これらのノードおよびインスタンスの読み取り重みに基づいて配信されます。

プライマリRDSインスタンスの内部エンドポイントまたはパブリックエンドポイントのみがアプリケーションに追加された場合、すべてのリクエストはプライマリRDSインスタンスに転送されます。

読み書き分離を実装するには、プライマリRDSインスタンスのエンドポイントと読み取り専用ルーティングエンドポイントをアプリケーションに追加し、プライマリRDSインスタンスに属する読み取り専用RDSインスタンスの読み取り重みを設定する必要があります。

メリット

  • メンテナンスを簡素化する読み取り専用ルーティングエンドポイント

    読み取り専用ルーティングエンドポイントが提供され、読み取り要求を読み取り専用RDSインスタンスに配信するために使用されます。これにより、メンテナンスコストが削減されます。 読み取り専用RDSインスタンスを作成して、アプリケーション設定を変更することなく、データベースシステムの読み取り機能を向上させることができます。

  • パフォーマンスを向上させる高セキュリティリンク

    クラウドでプロキシ層を構築して読み書き分離を実装する場合、データがデータベースシステムに到達する前に、データは多数のコンポーネントによって解析および転送されます。 これにより、応答レイテンシが増加します。 読み書き分離は、既存の高セキュリティリンク上に構築され、追加のコンポーネントを必要としません。 これにより、レイテンシが大幅に削減され、処理効率が向上します。

  • さまざまな要件を満たすように設定可能な読み取り重み

    読み取り専用RDSインスタンスの読み取り重みを指定して、さまざまなシナリオのビジネス要件を満たすことができます。

  • サービスの可用性を向上させるためのインスタンスレベルのヘルスチェック

    読み書き分離は、読み取り専用RDSインスタンスのヘルスステータスをプロアクティブにチェックします。 読み取り専用RDSインスタンスに障害が発生した場合、またはデータレプリケーションのレイテンシが指定されたしきい値を超えた場合、システムは読み取り専用RDSインスタンスへの読み取りリクエストの転送を停止し、これらの読み取りリクエストを他の正常な読み取り専用RDSインスタンスにリダイレクトします。 インスタンスレベルのヘルスチェックにより、単一の読み取り専用RDSインスタンスで障害が発生した場合にサービスの可用性が確保されます。 障害のある読み取り専用RDSインスタンスが回復した後、システムは読み取り専用RDSインスタンスへの読み取りリクエストの転送を再開します。

    説明

    単一障害点 (SPOF) の影響を軽減するために、少なくとも2つの読み取り専用RDSインスタンスを作成することを推奨します。

  • 無料の読み取り専用ルーティングエンドポイントで、リソースとメンテナンスのコストを削減

    読み取り専用ルーティングエンドポイントは無料で提供されます。 読み取り専用RDSインスタンスの料金は、従量課金に基づいて支払う必要があります。

使用上の注意

詳細については、「読み取り専用ApsaraDB RDS For SQL Serverインスタンスの作成」の「使用方法の注意事項」と「読み取り専用ルーティングエンドポイントの有効化による読み書き分離の有効化」をご参照ください。

課金ルール

サブスクリプションまたは従量課金に基づいて作成した読み取り専用RDSインスタンスに対して課金されます。 サブスクリプション読み取り専用RDSインスタンスの料金の詳細については、ApsaraDB RDS購入ページをご覧ください。 従量課金の読み取り専用RDSインスタンスの料金の詳細については、「読み取り専用ApsaraDB RDSインスタンスタイプ」をご参照ください。

参考資料