ご利用のアプリケーションで書き込みリクエストは少ないものの、読み取りリクエストが多い場合、単一のインスタンスでは読み取り負荷を処理できず、サービスに影響を与える可能性があります。読み取りキャパシティを拡張し、プライマリインスタンスへの負荷を軽減するために、1 つ以上の読み取り専用インスタンスを作成できます。これらのインスタンスは、大量の読み取りリクエストを処理し、アプリケーションのスループットを向上させます。
他のデータベースエンジンの読み取り専用インスタンスについては、次のドキュメントをご参照ください。
概要
読み取り専用インスタンスは、プライマリインスタンスのデータの物理的なコピーです。プライマリインスタンスでのデータ更新は、関連付けられたすべての読み取り専用インスタンスに自動的に同期されます。また、読み取り専用インスタンスの遅延レプリケーションを設定することもできます。
読み取り専用インスタンスのその他の同期遅延の問題については、「RDS for MySQL の読み取り専用インスタンスの同期遅延の原因と解決策」をご参照ください。
前提条件
プライマリ RDS for MySQL インスタンスは、次の要件を満たす必要があります。
-
データベースバージョン: 8.0、5.7、または 5.6
-
課金方法: サブスクリプションまたは従量課金。サーバーレスインスタンスは、読み取り専用インスタンスの作成をサポートしていません。
-
インスタンスエディション: 高可用性シリーズ
-
この情報は、インスタンスの 基本情報 ページで確認できます。
-
高可用性シリーズまたは Basic Edition の読み取り専用インスタンスを作成できます。高可用性の読み取り専用インスタンスは、プライマリノードとセカンダリノードで構成される高可用性 (HA) アーキテクチャを使用します。詳細については、「高可用性シリーズ」をご参照ください。
利用シーン
-
プライマリインスタンスが過負荷の場合、読み取り専用インスタンスを作成して読み取りリクエストを転送し、プライマリインスタンスの負荷を軽減できます。
-
バックアップやメンテナンスによりプライマリインスタンスが一時的に利用できない場合、読み取りリクエストを読み取り専用インスタンスに転送して、サービスの継続性を確保できます。
-
レポート分析などのデータ集約型のタスクでは、読み取り専用インスタンスを使用して大量のデータをクエリおよび分析でき、プライマリインスタンスのサービスに影響を与えません。
-
読み書き分離のシナリオでは、読み取り専用インスタンスを使用して読み書きロックの競合を防ぎ、システムのパフォーマンスとスループットを向上させることができます。
課金
読み取り専用インスタンスは、サブスクリプションと従量課金の課金方法をサポートしています。料金の詳細については、「読み取り専用インスタンスの仕様」をご参照ください。
注意事項
-
サブスクリプションベースのプライマリインスタンスに対してサブスクリプションベースの読み取り専用インスタンスを作成する場合、読み取り専用インスタンスの有効期限をプライマリインスタンスの有効期限に合わせることができます。
-
プライマリインスタンスが有効期限切れでロックされた場合でも、読み取り専用インスタンスが有効期限内であればアクセスできます。読み取り専用インスタンスのステータスは 実行中 (プライマリインスタンスはロック済み) に変わります。
-
プライマリインスタンスがリリースされると、サブスクリプションベースの読み取り専用インスタンスは自動的に返金およびリリースされます。従量課金の読み取り専用インスタンスは即座にリリースされます。
-
RDS for MySQL インスタンスで共有データベースプロキシが有効になっている場合、最後の読み取り専用インスタンスがリリースされると、プロキシの読み書き分離エンドポイントを削除する操作が自動的にトリガーされます。クライアントがこのエンドポイントを使用している場合、サービスへのアクセスが失敗する可能性があります。
特徴
-
課金方法: 従量課金は柔軟性を提供し、サブスクリプションは長期利用の場合に低コストです。
-
リージョンとゾーン: 読み取り専用インスタンスはプライマリインスタンスと同じリージョンにある必要がありますが、異なるゾーンに配置できます。
-
仕様: 読み取り専用インスタンスの仕様はプライマリインスタンスの仕様と異なっていてもよく、いつでも変更できます。読み取り専用インスタンスの仕様は、プライマリインスタンスの仕様以上であることを推奨します。仕様が低い場合、読み取り専用インスタンスで高い同期遅延や重い負荷が発生する可能性があります。
-
ストレージタイプ: 読み取り専用インスタンスのストレージタイプは、プライマリインスタンスのストレージタイプと同じである必要があります。
-
ストレージ容量: 読み取り専用インスタンスのストレージ容量は、プライマリインスタンスのストレージ容量より小さくすることはできません。
-
ネットワークタイプ: ネットワークタイプはプライマリインスタンスのものと異なっていてもかまいません。
-
アカウントとデータベースの管理: 読み取り専用インスタンスでアカウントやデータベースを管理する必要はありません。これらはプライマリインスタンスから同期されます。
-
ホワイトリスト: 読み取り専用インスタンスが作成されると、プライマリインスタンスの IP アドレスホワイトリストを自動的に継承します。作成後、読み取り専用インスタンスとプライマリインスタンスのホワイトリストは互いに独立します。読み取り専用インスタンスのホワイトリストを変更するには、「IP アドレスホワイトリストの設定」をご参照ください。
-
モニタリングとアラート: ディスク容量、IOPS、接続数、CPU 使用率、ネットワークトラフィックなど、約 20 のシステムパフォーマンスメトリクスをモニターできます。
-
プライマリ/セカンダリのスイッチオーバー: 高可用性の読み取り専用インスタンスは、プライマリ/セカンダリノードのスイッチオーバーをサポートしています。スイッチオーバーのログも表示できます。
制限事項
-
読み取り専用インスタンスの数: 1 つのプライマリインスタンスに対して最大 10 個の読み取り専用インスタンスを作成できます。
-
インスタンスのバックアップ: データはプライマリインスタンスでバックアップされるため、読み取り専用インスタンスは自動バックアップポリシーや手動バックアップをサポートしていません。読み取り専用インスタンスには ローカルログ保持ポリシーのみ設定できます。
-
インスタンスの復元:
-
完全なデータ復元 (インスタンスレベルの復元制限): 読み取り専用インスタンスからバックアップセットや特定時点のデータを新しいインスタンスに復元することはできません。
-
データベースとテーブルの復元 (データベースレベルおよびテーブルレベルの復元制限): 読み取り専用インスタンスからバックアップセットや特定時点のデータを元のインスタンスや新しいインスタンスに復元することはできません。
-
-
データ移行: 読み取り専用インスタンスにデータを移行することはできません。
-
データベース管理: データベースを作成または削除することはできません。
-
アカウント管理: 読み取り専用インスタンスでアカウントの作成や削除、アカウントへの権限付与、アカウントのパスワード変更はできません。
読み取り専用インスタンスの作成
よくある質問
-
プライマリインスタンスで作成されたアカウントは、読み取り専用インスタンスで使用できますか?
はい。プライマリインスタンスで作成されたアカウントは、読み取り専用インスタンスに同期されます。読み取り専用インスタンスでアカウントを管理することはできません。これらのアカウントは、読み取り専用インスタンスに対して読み取り専用権限を持ちます。
-
読み取り専用インスタンスの課金を一時停止できますか? 読み取り重みを 0 に設定した場合、課金は停止しますか?
いいえ。読み取り重みを 0 に設定しても、読み取り専用インスタンスの課金を一時停止することはできません。読み取り専用インスタンスが不要になった場合は、速やかにリリースして課金を停止してください。詳細については、「インスタンスのリリースまたは登録解除」をご参照ください。
-
データベースプロキシサービスが有効になっていない場合、読み取り専用インスタンスの読み取り重みを設定できますか?
いいえ。データベースプロキシサービスが有効になっていない場合、読み取り専用インスタンスの読み取り重みを設定することはできません。代わりに、異なるアプリケーションで異なるエンドポイント (読み取り専用インスタンスのエンドポイントまたはプライマリインスタンスのエンドポイント) を設定して、読み書き分離と負荷分散を実装できます。
-
高可用性の読み取り専用インスタンスはいつ購入すべきですか?
ご利用のアプリケーションで大量の読み取りリクエストがある場合、読み取りサービスの安定性を確保するために、高可用性の読み取り専用インスタンスを購入することを推奨します。
-
プライマリインスタンスにすでにセカンダリインスタンスがある場合でも、高可用性の読み取り専用インスタンスを購入する必要がありますか?
はい、必要になる場合があります。セカンダリインスタンスは高可用性のためのものであり、障害発生時のサービス可用性を確保します。読み取り専用インスタンスは、大量の読み取りリクエストを処理するための読み書き分離に使用されます。ご利用のアプリケーションの読み取りワークロードが高い場合は、高可用性の読み取り専用インスタンスを購入することを推奨します。
-
Basic Edition インスタンスで読み書き分離を実装するにはどうすればよいですか?
Basic Edition インスタンスは、読み取り専用ノードの作成をサポートしていません。インスタンスエディションを Basic から高可用性に変更し、その後読み取り専用インスタンスを作成する必要があります。RDS は自動的に読み書き分離を有効にします。読み取り専用インスタンスが作成された後、読み取り重みを調整できます。