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 Private Service Connect のアーキテクチャは次のとおりです1
プライベート エンドポイントとエンドポイント サービスの詳細な定義については、次の 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 ピアリングを使用する必要があります。
- 高可用性を実現するために、ソースTiDBクラスターからターゲットTiDBクラスターへリージョンをまたいでデータをレプリケートするために、 TiCDCクラスターを使用しています。現在、プライベートエンドポイントはリージョン間接続をサポートしていません。
- 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の名前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 Private エンドポイント接続の作成」ページを開いて TiDB クラスタを選択すると、エンドポイント サービスが自動的に作成されます。失敗と表示される場合、または長時間「作成中」状態のままになる場合は、エラーサポートチケット送信してサポートを受けてください。
Google Cloud でエンドポイントを作成できません。どうすればいいですか?
この問題を解決するには、プライベートエンドポイント作成コマンドを実行した後にGoogle Cloud Shellから返されるエラーメッセージを確認する必要があります。権限関連のエラーの場合は、再試行する前に必要な権限を付与する必要があります。
いくつかのアクションをキャンセルしました。エンドポイントへのアクセスを許可する前にキャンセルを処理するにはどうすればよいですか?
キャンセルされたアクションの未保存の下書きは保持も表示もされません。次回TiDB Cloudコンソールで新しいプライベートエンドポイントを作成する際は、各手順を繰り返す必要があります。
Google Cloud Shell でプライベート エンドポイントを作成するコマンドをすでに実行している場合は、Google Cloud コンソールで手動で対応するエンドポイントを削除する実行する必要があります。
サービス アタッチメントを直接コピーして生成されたエンドポイントがTiDB Cloudコンソールに表示されないのはなぜですか?
TiDB Cloudコンソールでは、 「Google Cloud プライベート エンドポイント接続の作成」ページで生成されたコマンドを通じて作成されたエンドポイントのみを表示できます。
ただし、サービス アタッチメントを直接コピーして生成されたエンドポイント (つまり、 TiDB Cloudコンソールで生成されたコマンドによって作成されていないエンドポイント) は、 TiDB Cloudコンソールに表示されません。
- Google Cloud Private Service Connectアーキテクチャの図は、Google Cloud ドキュメントのプライベートサービスコネクトドキュメントからのものであり、Creative Commons Attribution 4.0 International ライセンスの下でライセンスされています。↩