プライベートエンドポイント経由でTiDB Cloud Serverless に接続する
このドキュメントでは、プライベート エンドポイント経由でTiDB Cloud Serverless クラスターに接続する方法について説明します。
ヒント:
- AWS のプライベートエンドポイント経由でTiDB Cloud Dedicated クラスターに接続する方法については、 AWS PrivateLink 経由でTiDB Cloud専用クラスタに接続する参照してください。
- Azure のプライベート エンドポイント経由でTiDB Cloud Dedicated クラスターに接続する方法については、 Azure Private Link 経由でTiDB Cloud専用クラスタに接続する参照してください。
- Google Cloud のプライベート エンドポイント経由でTiDB Cloud Dedicated クラスタに接続する方法については、 Google Cloud Private Service Connect 経由でTiDB Cloud専用クラスタに接続するご覧ください。
TiDB Cloudは、AWS VPCでホストされているTiDB Cloudサービスへの、 AWS プライベートリンク経由の高度に安全な一方向アクセスをサポートします。まるでお客様のVPC内にあるかのようにアクセス可能です。VPC内にプライベートエンドポイントが公開されており、権限があればエンドポイント経由でTiDB Cloudサービスへの接続を作成できます。
AWS PrivateLink を利用することで、エンドポイント接続は安全かつプライベートになり、データがパブリックインターネットに公開されることはありません。さらに、エンドポイント接続は CIDR オーバーラップをサポートし、ネットワーク管理が容易になります。
プライベート エンドポイントのアーキテクチャは次のとおりです。
プライベートエンドポイントとエンドポイントサービスの詳細な定義については、次の AWS ドキュメントを参照してください。
制限
- 現在、 TiDB Cloud は、エンドポイントサービスが AWS でホストされている場合にのみ、 TiDB Cloud Serverless へのプライベートエンドポイント接続をサポートしています。サービスが Google Cloud でホストされている場合、プライベートエンドポイントは適用されません。
- リージョン間のプライベート エンドポイント接続はサポートされていません。
前提条件
AWS VPC設定でDNSホスト名とDNS解決の両方が有効になっていることを確認してください。1 AWS マネジメントコンソール VPCを作成すると、これらはデフォルトで無効になります。
AWSでプライベートエンドポイントを設定する
プライベート エンドポイント経由でTiDB Cloud Serverless クラスターに接続するには、次の手順に従います。
ステップ1. TiDBクラスターを選択する
クラスターページで、ターゲットのTiDB Cloud Serverless クラスターの名前をクリックして、概要ページに移動します。
右上隅の「接続」をクリックします。接続ダイアログが表示されます。
[接続タイプ]ドロップダウン リストで、 [プライベート エンドポイント]を選択します。
サービス名、アベイラビリティーゾーン ID 、リージョンID をメモします。
注記:
AWS リージョンごとにプライベートエンドポイントを 1 つ作成するだけで、同じリージョンにあるすべてのTiDB Cloud Serverless クラスターで共有できます。
ステップ2. AWSインターフェースエンドポイントを作成する
- Use AWS Console
- Use AWS CLI
AWS マネジメントコンソールを使用して VPC インターフェイスエンドポイントを作成するには、次の手順を実行します。
AWS マネジメントコンソールにサインインし、 https://console.aws.amazon.com/vpc/で Amazon VPC コンソールを開きます。
ナビゲーション ペインで[エンドポイント]をクリックし、右上隅の[エンドポイントの作成]をクリックします。
エンドポイントの作成ページが表示されます。
NLB および GWLB を使用するエンドポイント サービスを選択します。
ステップ1で確認したサービス名を入力します。
[サービスの確認]をクリックします。
ドロップダウンリストからVPCを選択します。 「追加設定」を展開し、 「DNS名を有効にする」チェックボックスをオンにします。
[サブネット]領域で、TiDB クラスターが配置されているアベイラビリティーゾーンを選択し、サブネット ID を選択します。
Securityグループ領域でセキュリティ グループを適切に選択します。
注記:
選択したセキュリティ グループがポート 4000 上の EC2 インスタンスからの受信アクセスを許可していることを確認します。
[エンドポイントの作成]をクリックします。
AWS CLI を使用して VPC インターフェイスエンドポイントを作成するには、次の手順を実行します。
- VPC IDとサブネット IDを取得するには、AWS マネジメントコンソールに移動し、該当するセクションでそれらを見つけますステップ1で確認したアベイラビリティーゾーン IDを必ず入力してください。
- 以下のコマンドをコピーし、関連する引数を取得した情報に置き換えて、ターミナルで実行します。
aws ec2 create-vpc-endpoint --vpc-id ${your_vpc_id} --region ${region_id} --service-name ${service_name} --vpc-endpoint-type Interface --subnet-ids ${your_subnet_id}
ヒント:
コマンドを実行する前に、AWS CLI をインストールして設定しておく必要があります。詳細はAWS CLI 設定の基本参照してください。
その後、プライベート DNS 名を使用してエンドポイント サービスに接続できます。
ステップ3: TiDBクラスターに接続する
インターフェース エンドポイントを作成したら、 TiDB Cloudコンソールに戻り、次の手順を実行します。
- クラスターページで、ターゲット クラスターの名前をクリックして、概要ページに移動します。
- 右上隅の「接続」をクリックします。接続ダイアログが表示されます。
- [接続タイプ]ドロップダウン リストで、 [プライベート エンドポイント]を選択します。
- 「接続方法」ドロップダウンリストで、希望する接続方法を選択します。対応する接続文字列がダイアログの下部に表示されます。
- 接続文字列を使用してクラスターに接続します。
ヒント:
クラスターに接続できない場合は、AWS の VPC エンドポイントのセキュリティグループが正しく設定されていないことが原因である可能性があります。解決策についてはこのFAQご覧ください。
VPC エンドポイントを作成するときにエラー
private-dns-enabled cannot be set because there is already a conflicting DNS domain for gatewayXX-privatelink.XX.prod.aws.tidbcloud.com in the VPC vpc-XXXXX
発生した場合は、プライベート エンドポイントがすでに作成されているため、新しいエンドポイントを作成する必要はありません。
トラブルシューティング
プライベートDNSを有効にした後、プライベートエンドポイント経由でTiDBクラスターに接続できません。なぜですか?
AWSマネジメントコンソールで、VPCエンドポイントのセキュリティグループを適切に設定する必要がある場合があります。 「VPC」 > 「エンドポイント」に移動します。VPCエンドポイントを右クリックし、「セキュリティグループの管理」を選択します。VPC内に適切なセキュリティグループを作成し、ポート4000またはお客様定義のポートでEC2インスタンスからのインバウンドアクセスを許可します。