Cloud SQL 読み取りプールは、大規模な読み取りワークロードのロード バランシングをサポートしています。
読み取りプールとは
読み取りプールは、大規模な読み取りワークロードを分散するために使用されるリードレプリカ インスタンスのコレクションです。これらのワークロードをプライマリ インスタンスから読み取りプールにリダイレクトすることで、プライマリ インスタンスの負荷を軽減できます。
読み取りプール内の各リードレプリカは、読み取りプール ノードと呼ばれます。
読み取りプールは、次の方法でスケールできます。
- スケールインまたはスケールアウト: 読み取りプール内の読み取りプール ノードの数を変更して、ロード バランシング容量を水平方向にスケールします。各読み取りプールは、1~20 個の読み取りプール ノードをサポートできます。
- スケールアップまたはスケールダウン: 読み取りプール ノードに関連付けられたマシンタイプを変更して、ロード バランシング容量を垂直方向にスケールします。定義すると、構成は読み取りプール内の各読み取りプール ノードに一律に適用されます。
ストレージ、接続、データベース構成フラグといった読み取りプール ノードの設定を変更すると、変更は自動的に読み取りプール内の各読み取りプール ノード一律に適用されます。
読み取りプールには、固定 IP アドレスを持つ単一の読み取りエンドポイントからアクセスできます。エンドポイントを介して行われた接続は、読み取りプール ノードのいずれかに自動的にリダイレクトされます。読み取りプールをスケールインまたはスケールアウトする場合、読み取りプールに新しい読み取りプール ノードを作成したり、以前の読み取りプール ノードを削除したりできますが、この単一の読み取りエンドポイントに以前接続していたアプリケーションを再構成する必要はありません。
各読み取りプール ノードにも独自の IP アドレスがあります。データにアクセスするための効率的な方法として推奨されるものではありませんが、これらの IP アドレスを使用して、個々の読み取りプール ノードのパフォーマンスのトラブルシューティングを行うことができます。
読み取りプールまたは読み取りプール ノードの接続情報(IP アドレスまたは接続文字列)を確認する方法については、読み取りプール情報を確認するをご覧ください。
次の特性が適用されます。
- 読み取りプールの読み取りプール ノードは、常にユーザーが指定したリージョンに存在します。 Google Cloud は、リージョン内のすべてのゾーン間で読み取りプールノードのレジデンシを代替します。
- プライマリ インスタンスには、1 つ以上の読み取りプールを設定できます。
- 次のオペレーションでは、1 秒未満のダウンタイムが発生します。
- スケールアウトまたはスケールイン(読み取りプール ノードの追加または削除)。
- スケールアップまたはスケールダウン(プール内のノードのマシンタイプの変更)。
- 既存のゾーン リード レプリカを読み取りプールに変換する。
- 読み取りプールは、リードレプリカと同様に、プライマリ インスタンスの前にメンテナンスを受けます。リードレプリカと同様に、読み取りプールはプライマリ インスタンスのメンテナンスの時間枠中にメンテナンスを受けます。
- 各読み取りプール ノードには、Cloud SQL リードレプリカと同じ指標を使用できます。
gcloud
または Google Cloud コンソールでプロジェクトの詳細を記述する場合、読み取りプール名は表示されますが、個々の読み取りプール ノード名は表示されません。
制限事項
次の制限が適用されます。
- 読み取りプールは、新しいネットワーク アーキテクチャの Cloud SQL Enterprise Plus エディションのインスタンスでのみ使用できます。読み取りプールに関連付けられているプライマリ インスタンスも、Cloud SQL Enterprise Plus エディションのインスタンスである必要があります。
- トラフィックはデータベースの正常性に基づいて読み取りプール ノードから提供されますが、その読み取りプール ノードのレプリケーション ラグの長さに関係なく提供されます。遅延していない別の読み取りプール ノードが使用可能な場合でも、遅延している読み取りプール ノードからトラフィックが提供される場合があります。データベース プロセスが稼働していてクエリに応答できる場合、データベースは正常と見なされますが、提供されるデータの更新頻度に関する要件はありません。
- 単一の論理セッションが読み取りプール内の複数の読み取りプール ノードに接続するとは限りません。セッション内の後続のリクエストで、前のリクエストを処理した読み取りプール ノードよりもレプリケーション位置(LSN)が低い読み取りプール ノードに接続することがあります。これにより、データベースが過去の状態に戻ったように見えることがあります。
- 次のタイプの更新はサポートされていません。
- 読み取りプールは Cloud SQL メンテナンス アップデートを受信しますが、読み取りプールを新しいメジャー バージョンのデータベースに更新することはできません。
- 読み取りプールのノードの開始または停止
- リードレプリカでサポートされていないオペレーションのほか、次のオペレーションは読み取りプールでサポートされていません。
- レプリカのプロモート
- 再起動
- インポート
- エクスポート
- フェイルオーバー
- 再暗号化
- クローン
- 次の機能は読み取りプールでは使用できません。
- Private Service Connect
- 共有 CA または顧客管理の CA を使用する SSL / TLS 証明書
- 読み取りプールは、カスケード レプリカや別の読み取りプールなど、別のインスタンスに複製できません。
- 読み取りプールは、プライマリ インスタンスから直接複製する必要があります。カスケード レプリカにすることはできません。
- リージョン リードレプリカを読み取りプールに変換する場合は、まずリージョン リードレプリカをゾーン リード レプリカに変換する必要があります。
- 読み取りプールを作成またはスケールする場合は、読み取りプールに関連付けられている以前の作成プール、スケールイン、スケールアウト オペレーションが完了するまで待つ必要があります。この制限は、同じプライマリ インスタンスに関連付けられている他の読み取りプールにも適用されます。同じプライマリ インスタンスに関連付けられた複数の読み取りプールをスケールする場合は、最初の読み取りプールに関連付けられたスケーリング オペレーションが完了するまで待ってから、次の読み取りプールのスケーリングを開始する必要があります。同時実行リクエストを実行すると、「
Operation failed because another operation was already in progress.
」というエラーが発生することがあります。 - 読み取りプールで使用するために変換できるのは、プライマリと同じリージョンにあるゾーンレプリカのみです。
- マシンタイプを変更するときに、読み取りプールから読み取りプール ノードを追加または削除することはできません。
- 特定のリードレプリカに存在するセカンダリ インデックスがあるためにアプリケーションが専用のリードレプリカに接続する必要がある場合は、Cloud SQL リードレプリカを作成し、代わりに使用します。
- 読み取りプールに関連付けられている特定のユーザーとデータベースに対してクエリを実行することはできません。Cloud SQL Studio はユーザーとデータベースから提供されるデータに依存するため、Cloud SQL Studio は読み取りプールでサポートされていません。