Google Cloud Private Service Connect 経由でTiDB Cloud専用クラスタに接続する
このドキュメントでは、Google Cloud Private Service Connect を介してTiDB Cloud Dedicated クラスタに接続する方法について説明します。Google Cloud Private Service Connect は、Google Cloud が提供するプライベート エンドポイント サービスです。
ヒント:
- AWS のプライベートエンドポイント経由でTiDB Cloud Dedicated クラスターに接続する方法については、 AWS のプライベートエンドポイント経由でTiDB Cloud Dedicated に接続する参照してください。
- プライベート エンドポイント経由でTiDB Cloud Serverless クラスターに接続する方法については、 プライベートエンドポイント経由でTiDB Cloud Serverless に接続する参照してください。
TiDB Cloud は、 プライベートサービス接続を介して Google Cloud VPC でホストされているTiDB Cloudサービスへの非常に安全な一方向アクセスをサポートしています。エンドポイントを作成し、それを使用してTiDB Cloudサービスに接続できます。
Google Cloud Private Service Connect を利用することで、エンドポイント接続は安全かつプライベートになり、データがパブリック インターネットに公開されることはありません。さらに、エンドポイント接続は CIDR オーバーラップをサポートし、ネットワーク管理が容易になります。
プライベート エンドポイントのアーキテクチャは次のとおりです。
プライベート エンドポイントとエンドポイント サービスの詳細な定義については、次の Google Cloud ドキュメントをご覧ください。
制限
- この機能は、2023 年 4 月 13 日以降に作成されたTiDB Cloud Dedicated クラスターに適用されます。古いクラスターについては、 TiDB Cloudサポートお問い合わせください。
- Google Cloud Private Service Connect エンドポイントを作成できるのは、ロール
Organization Owner
とProject Owner
のみです。 - 各 TiDB クラスターは、最大 10 個のエンドポイントからの接続を処理できます。
- 各 Google Cloud プロジェクトには、TiDBクラスタに接続するエンドポイントを最大 10 個まで含めることができます。
- エンドポイント サービスが構成されたプロジェクトでは、Google Cloud でホストされるTiDB Cloud Dedicated クラスタを最大 8 個作成できます。
- プライベート エンドポイントと接続する TiDB クラスターは同じリージョンに配置されている必要があります。
- 出力ファイアウォール ルールは、エンドポイントの内部 IP アドレスへのトラフィックを許可する必要があります。1 暗黙の出口許可ファイアウォールルール任意の宛先 IP アドレスへの出力を許可します。
- VPC ネットワークで出力拒否ファイアウォール ルールを作成した場合、または暗黙的に許可された出力動作を変更する階層型ファイアウォール ポリシーを作成した場合、エンドポイントへのアクセスが影響を受ける可能性があります。この場合、エンドポイントの内部宛先 IP アドレスへのトラフィックを許可する特定の出力許可ファイアウォール ルールまたはポリシーを作成する必要があります。
ほとんどのシナリオでは、VPC ピアリング経由のプライベート エンドポイント接続を使用することをお勧めします。ただし、次のシナリオでは、プライベート エンドポイント接続ではなく VPC ピアリングを使用する必要があります。
- 高可用性を実現するために、 ティCDCクラスターを使用して、ソース TiDB クラスターからリージョンをまたがるターゲット TiDB クラスターにデータをレプリケートしています。現在、プライベート エンドポイントはリージョン間の接続をサポートしていません。
- TiCDC クラスターを使用してダウンストリーム クラスター (Amazon Aurora、MySQL、Kafka など) にデータを複製していますが、ダウンストリームのエンドポイント サービスを独自に維持することはできません。
Google Cloud Private Service Connect を使用してプライベート エンドポイントを設定する
プライベート エンドポイント経由でTiDB Cloud Dedicated クラスターに接続するには、 前提条件を完了し、次の手順に従います。
複数のクラスタがある場合は、Google Cloud Private Service Connect を使用して接続するクラスタごとにこれらの手順を繰り返す必要があります。
前提条件
エンドポイントの作成を開始する前に:
Google Cloud プロジェクトで次の API を有効にする 。
エンドポイントを作成するために必要な権限を持つ次のIAMロールを準備します。
- タスク:
- エンドポイントを作成する
- エンドポイントのDNSエントリ自動または手動で構成する
- 必要なIAMロール:
- コンピューティングネットワーク管理者 (ロール/compute.networkAdmin)
- サービスディレクトリエディタ (ロール/サービスディレクトリ.エディター)
- タスク:
ステップ1. TiDBクラスターを選択する
クラスターページで、ターゲット TiDB クラスターの名前をクリックして、概要ページに移動します。次のいずれかのステータスのクラスターを選択できます。
- 利用可能
- 復元
- 変更中
- インポート
右上隅の「接続」をクリックします。接続ダイアログが表示されます。
[**接続タイプ]ドロップダウン リストで[プライベート エンドポイント]を選択し、 [プライベート エンドポイント接続の作成]**をクリックします。
注記:
プライベート エンドポイント接続を既に作成している場合は、アクティブなエンドポイントが接続ダイアログに表示されます。追加のプライベート エンドポイント接続を作成するには、左側のナビゲーション ペインの[ネットワーク]ページに移動します。
ステップ 2. Google Cloud プライベート エンドポイントを作成する
- プライベート エンドポイント作成コマンドを生成するには、次の情報を指定します。
- Google Cloud プロジェクト ID : Google Cloud アカウントに関連付けられたプロジェクト ID。ID はGoogle Cloudダッシュボードページにあります。
- Google Cloud VPC 名: 指定したプロジェクト内の VPC の名前。2 で確認できますGoogle Cloud VPC ネットワークページ
- Google Cloud サブネット名: 指定された VPC 内のサブネットの名前。VPCネットワークの詳細ページで確認できます。
- プライベート サービス接続エンドポイント名: 作成するプライベート エンドポイントの一意の名前を入力します。
- 情報を入力したら、 「コマンドの生成」をクリックします。
- 生成されたコマンドをコピーします。
- Google クラウド シェルを開き、コマンドを実行してプライベート エンドポイントを作成します。
ステップ3. エンドポイントアクセスを許可する
Google Cloud Shell でコマンドを正常に実行したら、 TiDB Cloudコンソールに戻り、 「エンドポイント アクセスを承認」をクリックします。
エラーnot received connection request from endpoint
が表示された場合は、コマンドを正しくコピーし、Google Cloud Shell で正常に実行したことを確認してください。
ステップ4. TiDBクラスターに接続する
プライベート エンドポイント接続を承認すると、接続ダイアログにリダイレクトされます。
- プライベート エンドポイントの接続ステータスが「システム チェック中」から「アクティブ」に変わるまで待ちます (約 5 分)。
- [接続方法]ドロップダウン リストで、希望する接続方法を選択します。対応する接続文字列がダイアログの下部に表示されます。
- 接続文字列を使用してクラスターに接続します。
プライベートエンドポイントステータスリファレンス
プライベート エンドポイント接続を使用すると、プライベート エンドポイントまたはプライベート エンドポイント サービスのステータスがプライベートエンドポイントページに表示されます。
プライベート エンドポイントの可能なステータスは次のように説明されます。
- 保留中: 処理を待機しています。
- アクティブ: プライベート エンドポイントは使用できる状態です。このステータスのプライベート エンドポイントは編集できません。
- 削除中: プライベート エンドポイントを削除しています。
- 失敗: プライベート エンドポイントの作成に失敗しました。その行の[編集] をクリックすると、作成を再試行できます。
プライベート エンドポイント サービスの可能なステータスは、次のように説明されます。
- 作成中: エンドポイント サービスを作成中です。これには 3 ~ 5 分かかります。
- アクティブ: プライベート エンドポイントが作成されたかどうかに関係なく、エンドポイント サービスが作成されます。
トラブルシューティング
TiDB Cloud がエンドポイント サービスの作成に失敗しました。どうすればいいですか?
「 Google Cloud プライベート エンドポイント接続の作成」ページを開いて TiDB クラスタを選択すると、エンドポイント サービスが自動的に作成されます。失敗と表示されたり、長時間「作成中」状態のままになったりする場合は、 サポートチケットを送信してサポートを受けてください。
Google Cloud でエンドポイントを作成できません。どうすればいいですか?
この問題を解決するには、プライベート エンドポイント作成コマンドを実行した後に Google Cloud Shell から返されるエラー メッセージを確認する必要があります。権限関連のエラーの場合は、再試行する前に必要な権限を付与する必要があります。
いくつかのアクションをキャンセルしました。エンドポイント アクセスを受け入れる前にキャンセルを処理するにはどうすればよいでしょうか?
キャンセルされたアクションの未保存の下書きは保持も表示もされません。次回TiDB Cloudコンソールで新しいプライベート エンドポイントを作成するときは、各手順を繰り返す必要があります。
Google Cloud Shell でプライベート エンドポイントを作成するコマンドをすでに実行している場合は、Google Cloud コンソールで手動で対応するエンドポイントを削除する実行する必要があります。
サービス アタッチメントを直接コピーして生成されたエンドポイントがTiDB Cloudコンソールに表示されないのはなぜですか?
TiDB Cloudコンソールでは、 「Google Cloud プライベート エンドポイント接続の作成」ページで生成されたコマンドを通じて作成されたエンドポイントのみを表示できます。
ただし、サービス アタッチメントを直接コピーして生成されたエンドポイント (つまり、 TiDB Cloudコンソールで生成されたコマンドによって作成されていないエンドポイント) は、 TiDB Cloudコンソールに表示されません。