このトピックでは、ApsaraDB RDS for SQL Server の読み取り専用インスタンスについて概説します。データベースシステムへの書き込みリクエストが少なく、読み取りリクエストが大量に発生する場合、プライマリ RDS インスタンスが読み取りリクエストで過負荷となり、ワークロードが中断される可能性があります。プライマリ RDS インスタンスの読み取りリクエストをオフロードするために、1 つ以上の読み取り専用 RDS インスタンスを作成できます。読み取り専用 RDS インスタンスは、データベースシステムの読み取り能力およびアプリケーションのスループットを向上させます。プライマリ RDS インスタンスが特定の要件を満たす場合、そのプライマリ RDS インスタンスに属する読み取り専用 RDS インスタンスの高速初期化がサポートされます。これにより、読み取り専用 RDS インスタンスの作成時間が数分程度に短縮され、作成時にプライマリ RDS インスタンスの I/O パフォーマンスに影響を与えないようになります。
概要
ApsaraDB RDS for SQL Server は、ネイティブ SQL Server の Always On アーキテクチャを採用しています。ApsaraDB RDS for SQL Server では、物理レプリケーションによりプライマリ RDS インスタンスを複製し、読み取り専用 RDS インスタンスを生成します。読み取り専用 RDS インスタンス上のデータは、プライマリ RDS インスタンス上のデータと同一です。プライマリ RDS インスタンス上のデータが更新されると、その更新内容は自動的に読み取り専用 RDS インスタンスに同期されます。
-
プライマリ RDS インスタンスが SQL Server EE (Always On) を実行している場合にのみ、そのプライマリ RDS インスタンスに対して読み取り専用 RDS インスタンスを作成できます。
-
各読み取り専用 RDS インスタンスはシングルノードアーキテクチャに基づいて動作します。このアーキテクチャでは、読み取り専用 RDS インスタンスのスタンバイとしてのセカンダリ読み取り専用 RDS インスタンスは提供されません。
次の図は、プライマリ RDS インスタンスとその読み取り専用 RDS インスタンスのトポロジーを示しています。
利用シーン
-
プライマリ RDS インスタンスが過負荷になっている場合、読み取り専用 RDS インスタンスを作成して、プライマリ RDS インスタンスからの読み取りリクエストをオフロードできます。
-
バックアップやメンテナンスなどの理由でプライマリ RDS インスタンスが一時的に使用できない場合、読み取りリクエストはその読み取り専用 RDS インスタンスに転送され、一部のワークロードを継続できます。
-
読み取り専用 RDS インスタンスを使用して、レポート分析などのシナリオで大量のデータをクエリおよび分析できます。これにより、プライマリ RDS インスタンスに影響を与えません。
-
緊急時のディザスタリカバリシナリオでは、読み取り専用 RDS インスタンスをプライマリ RDS インスタンスのバックアップとして使用できます。ただし、プライマリ RDS インスタンスのワークロードを読み取り専用 RDS インスタンスに直接切り替えてはいけません。
課金ルール
作成した読み取り専用 RDS インスタンスは、サブスクリプション課金方法または従量課金方法に基づいて課金されます。詳細については、「読み取り専用インスタンスタイプ」をご参照ください。
プライマリ RDS インスタンスの課金方法がサーバーレスの場合、読み取り専用 RDS インスタンスを作成することはできません。
特徴
-
課金方法: 読み取り専用 RDS インスタンスは、従量課金およびサブスクリプションの両方の課金方法をサポートします。従量課金方法は柔軟性が高く、不要になった時点で読み取り専用 RDS インスタンスをリリースできます。サブスクリプション課金方法は長期的な利用においてコスト効率に優れています。
-
リージョンとゾーン: 読み取り専用 RDS インスタンスはプライマリ RDS インスタンスと同じリージョン内に配置されますが、異なるゾーンに配置可能です。
-
インスタンス仕様: 読み取り専用 RDS インスタンスの仕様は、プライマリ RDS インスタンスの仕様と異なっても構いません。読み取り専用 RDS インスタンスの仕様はいつでも変更できます。プライマリ RDS インスタンスのインスタンスタイプの仕様以上となるインスタンスタイプを指定することを推奨します。読み取り専用 RDS インスタンスの仕様がプライマリ RDS インスタンスの仕様より低い場合、高遅延や過負荷などの問題が発生する可能性があります。
-
ネットワークタイプ: 読み取り専用 RDS インスタンスのネットワークタイプは、プライマリ RDS インスタンスのネットワークタイプと異なっても構いません。詳細については、「ネットワークタイプの変更」をご参照ください。
-
アカウントおよびデータベース管理: 読み取り専用 RDS インスタンス上のアカウントおよびデータベースは、プライマリ RDS インスタンスから同期されます。読み取り専用 RDS インスタンス上でデータベースやアカウントを管理する必要はありません。
-
IP アドレスホワイトリストの管理: 読み取り専用 RDS インスタンスを作成すると、システムはプライマリ RDS インスタンスの IP アドレスホワイトリストを読み取り専用 RDS インスタンスに複製します。ただし、読み取り専用 RDS インスタンスの IP アドレスホワイトリストは、プライマリ RDS インスタンスの IP アドレスホワイトリストとは独立しています。読み取り専用 RDS インスタンスの IP アドレスホワイトリストを変更する場合は、「IP アドレスホワイトリストの設定」の手順に従ってください。
-
モニタリングとアラート: 読み取り専用 RDS インスタンスはモニタリングとアラート機能をサポートします。ディスク使用率、IOPS、接続数、CPU 使用率、ネットワークトラフィックなど、約 20 種類のメトリックをモニターできます。
-
読み取り専用 RDS インスタンスの数: プライマリ RDS インスタンスに対して最大 7 個の読み取り専用 RDS インスタンスを作成できます。
-
読み取り専用 RDS インスタンスの高速初期化: プライマリ RDS インスタンスが特定の要件を満たす場合、そのプライマリ RDS インスタンスに属する読み取り専用 RDS インスタンスの高速初期化がサポートされます。
使用制限
-
インスタンスのバックアップ: 読み取り専用 RDS インスタンスに対してバックアップポリシーを設定したり、手動でバックアップを作成したりすることはできません。これらはプライマリ RDS インスタンス上で設定および作成されます。バックアップファイルまたは任意の時点から一時的な RDS インスタンスを作成することはできません。バックアップセットを使用して RDS インスタンスを上書きすることもできません。読み取り専用 RDS インスタンス作成後は、バックアップセットを使用してプライマリ RDS インスタンスを上書きしてデータを復元することはできません。
-
データ移行: 読み取り専用 RDS インスタンスにデータを移行することはできません。
-
データベース管理: 読み取り専用 RDS インスタンス上でデータベースを作成または削除することはできません。
-
アカウント管理: 読み取り専用 RDS インスタンス上でアカウントを作成または削除したり、アカウントに権限を付与したり、アカウントのパスワードを変更したりすることはできません。
付録:読み取り専用 RDS インスタンスの高速初期化の概要
プライマリ RDS インスタンスが SQL Server EE (Always On) を実行している場合、そのプライマリ RDS インスタンスに属する読み取り専用 RDS インスタンスの高速初期化がサポートされます。高速初期化機能により、読み取り専用 RDS インスタンスの作成にかかる時間が数時間~数日から数十分に短縮されます。高速初期化機能を使用することで、データベースシステムのリソース割り当て効率が向上し、企業はサービスを効率的にデプロイおよびスケーリングできます。
前提条件
高速初期化機能を使用するには、プライマリ RDS インスタンスが以下の要件を満たしている必要があります。
-
プライマリ RDS インスタンスが SQL Server 2017 EE (Always On)、SQL Server 2019 EE (Always On)、SQL Server 2022 EE (Always On)、または SQL Server 2025 EE (Always On) を実行していること。
-
RDS クラスターが拡張 SSD (ESSD) または高性能 ESSD を使用していること。
-
プライマリ RDS インスタンス内のデータベース数が 20 未満であること。
-
プライマリ RDS インスタンス内のデータベースの合計サイズが 200 GB を超えていること。
注意事項
-
読み取り専用 RDS インスタンスを作成する前に、プライマリ RDS インスタンスでバックアップタスクが進行中の場合は、バックアップが完了するまで待機する必要があります。これにより、読み取り専用 RDS インスタンスの初期化に必要な時間が長くなります。詳細については、「ApsaraDB RDS for SQL Server インスタンスのバックアップ」をご参照ください。
-
読み取り専用 RDS インスタンスを作成する前に、読み取り専用 RDS インスタンスとそのプライマリ RDS インスタンスが同じリージョン内に配置されていることを確認してください。
メリット
-
迅速なスケールアウト: プライマリ RDS インスタンスに保存されているデータが 16 TB 以下の場合、データ量に関係なく、数分以内にプライマリ RDS インスタンスに対して読み取り専用 RDS インスタンスを作成できます。これにより、読み取り専用 RDS インスタンスの作成時間が数時間~数日から数分に短縮されます。
-
プライマリ RDS インスタンスへの干渉が少ない: 読み取り専用 RDS インスタンスの高速初期化は、プライマリ RDS インスタンスの I/O パフォーマンスに影響を与えません。これにより、プライマリ RDS インスタンスの安定したパフォーマンスが確保されます。
-
コスト効率: 高速初期化を使用して、必要なタイミングで読み取り専用 RDS インスタンスを作成できます。使用後にすぐに作成した読み取り専用 RDS インスタンスをリリースできるため、読み取り専用 RDS インスタンスを長期間保持するコストを削減できます。
利用シーン
-
データ分析の高速化: 読み取り専用 RDS インスタンスの高速初期化を利用して、データ分析やレポート生成などのオンライン分析処理 (OLAP) ワークロードを読み取り専用 RDS インスタンスに移行します。これにより、プライマリ RDS インスタンスのパフォーマンスに影響を与えません。
-
分離されたテスト環境: 本番環境のパフォーマンスに影響を与えることなく、さまざまなテストフェーズで読み取り専用 RDS インスタンスを効率的にデプロイして機能をテストできます。
-
対応可能なトラフィックスパイク: ピーク時間帯に読み取り専用 RDS インスタンスを効率的に作成して、プライマリ RDS インスタンスからの読み取りリクエストをオフロードします。これにより、プライマリ RDS インスタンスの負荷を軽減できます。
-
最適化されたデータエクスポート: データエクスポートタスクを読み取り専用 RDS インスタンス上で実行し、プライマリ RDS インスタンスに追加の負荷をかけないようにします。
-
便利なデータ共有: 外部パートナーまたは社内部門とデータベース情報を共有する際に、安全なデータ共有を実現するために読み取り専用 RDS インスタンスを効率的に作成できます。
参考資料
読み取り専用 RDS インスタンスの作成方法については、「読み取り専用 SQL Server インスタンスの作成」をご参照ください。