AWS PrivateLink 経由でTiDB Cloud Dedicatedクラスタに接続する
このドキュメントでは、 AWS プライベートリンク経由でTiDB Cloud Dedicated クラスターに接続する方法について説明します。
TiDB Cloudは、 AWS VPCでホストされているTiDB Cloudサービスへの、 AWS プライベートリンク経由の高度に安全な一方向アクセスをサポートします。まるでお客様のVPC内にあるかのように機能します。VPC内にプライベートエンドポイントが公開されており、権限があればエンドポイント経由でTiDB Cloudサービスへの接続を作成できます。
AWS PrivateLink を利用することで、エンドポイント接続は安全かつプライベートであり、データがパブリックインターネットに公開されることはありません。さらに、エンドポイント接続は CIDR オーバーラップをサポートし、ネットワーク管理が容易になります。
プライベート エンドポイントのアーキテクチャは次のとおりです。
プライベートエンドポイントとエンドポイントサービスの詳細な定義については、次の AWS ドキュメントを参照してください。
制限
- プライベート エンドポイントを作成できるのは、ロール
Organization OwnerまたはProject Owner持つユーザーのみです。 - プライベート エンドポイントと接続先の TiDB クラスターは同じリージョンに配置されている必要があります。
ほとんどのシナリオでは、VPC ピアリングではなくプライベートエンドポイント接続を使用することをお勧めします。ただし、以下のシナリオでは、プライベートエンドポイント接続ではなく VPC ピアリングを使用する必要があります。
- 高可用性を実現するために、ソースTiDBクラスターからターゲットTiDBクラスターへリージョンをまたいでデータをレプリケートするために、 TiCDCクラスターを使用しています。現在、プライベートエンドポイントはリージョン間接続をサポートしていません。
- TiCDC クラスターを使用してダウンストリーム クラスター (Amazon Aurora、MySQL、Kafka など) にデータをレプリケートしていますが、エンドポイント サービスを独自に維持することはできません。
- PD または TiKV ノードに直接接続しています。
前提条件
AWS VPC設定でDNSホスト名とDNS解決のAWS マネジメントコンソールが有効になっていることを確認してください。1でVPCを作成すると、これらはデフォルトで無効になります。
プライベートエンドポイント接続を設定し、クラスターに接続する
プライベート エンドポイント経由でTiDB Cloud Dedicated クラスターに接続するには、次の手順を実行します。
複数のクラスターがある場合は、AWS PrivateLink を使用して接続するクラスターごとにこれらの手順を繰り返す必要があります。
ステップ1. TiDBクラスターを選択する
- プロジェクトのクラスターページで、ターゲット TiDB クラスターの名前をクリックして、概要ページに移動します。
- 右上隅の「接続」をクリックします。接続ダイアログが表示されます。
- [**接続タイプ]ドロップダウン リストで[プライベート エンドポイント]を選択し、 [プライベート エンドポイント接続の作成]**をクリックします。
ステップ2. AWSインターフェースエンドポイントを作成する
TiDB Private Link Service is readyメッセージが表示された場合、対応するエンドポイントサービスは準備完了です。エンドポイントを作成するには、以下の情報を提供してください。
「VPC ID」と「サブネットID」のフィールドに入力します。これらのIDはAWS マネジメントコンソールで確認できます。サブネットが複数ある場合は、IDをスペースで区切って入力してください。
[コマンドの生成]をクリックすると、次のエンドポイント作成コマンドが取得されます。
aws ec2 create-vpc-endpoint --vpc-id ${your_vpc_id} --region ${your_region} --service-name ${your_endpoint_service_name} --vpc-endpoint-type Interface --subnet-ids ${your_application_subnet_ids}
次に、AWS CLI またはAWS マネジメントコンソールを使用して AWS インターフェイスエンドポイントを作成できます。
AWS CLI を使用して VPC インターフェイスエンドポイントを作成するには、次の手順を実行します。
- 生成されたコマンドをコピーしてターミナルで実行します。
- 作成した VPC エンドポイント ID を記録します。
AWS マネジメントコンソールを使用して VPC インターフェイスエンドポイントを作成するには、次の手順を実行します。
AWS マネジメントコンソールにサインインし、 https://console.aws.amazon.com/vpc/で Amazon VPC コンソールを開きます。
ナビゲーション ペインで[エンドポイント]をクリックし、右上隅の[エンドポイントの作成]をクリックします。
エンドポイントの作成ページが表示されます。
エンドポイント設定領域で、必要に応じて名前タグを入力し、 NLB および GWLB を使用するエンドポイント サービスオプションを選択します。
サービス設定領域に、生成されたコマンド(
--service-name ${your_endpoint_service_name})のサービス名${your_endpoint_service_name}入力します。[サービスの確認]をクリックします。
ネットワーク設定領域で、ドロップダウンリストから VPC を選択します。
[サブネット]領域で、TiDB クラスターが配置されている可用性ゾーンを選択します。
[セキュリティグループ]領域で、セキュリティ グループを適切に選択します。
[エンドポイントの作成]をクリックします。
ステップ3. プライベートエンドポイント接続を作成する
- TiDB Cloudコンソールに戻ります。
- 「AWS プライベートエンドポイント接続の作成」ページで、VPC エンドポイント ID を入力します。
- [プライベート エンドポイント接続の作成]をクリックします。
ステップ4. プライベートDNSを有効にする
AWS でプライベート DNS を有効にします。AWS CLI または AWS マネジメントコンソールを使用できます。
AWS CLI を使用してプライベート DNS を有効にするには、 「プライベートエンドポイント接続の作成」ページから次のaws ec2 modify-vpc-endpointコマンドをコピーし、AWS CLI で実行します。
aws ec2 modify-vpc-endpoint --vpc-endpoint-id ${your_vpc_endpoint_id} --private-dns-enabled
または、クラスターの「ネットワーク」ページでコマンドを見つけることもできます。プライベートエンドポイントを探し、 「アクション」列の「...」 > 「DNSを有効にする」をクリックします。
AWS マネジメントコンソールでプライベート DNS を有効にするには:
VPC >エンドポイントに移動します。
エンドポイント ID を右クリックし、 [プライベート DNS 名の変更]を選択します。
このエンドポイントに対して有効にするチェックボックスをオンにします。
[変更を保存]をクリックします。
ステップ5. TiDBクラスターに接続する
プライベート エンドポイント接続を承認すると、接続ダイアログにリダイレクトされます。
- プライベート エンドポイントの接続ステータスが「システム チェック中」から「アクティブ」に変わるまで待ちます (約 5 分)。
- 「接続方法」ドロップダウンリストで、希望する接続方法を選択します。対応する接続文字列がダイアログの下部に表示されます。
- 接続文字列を使用してクラスターに接続します。
プライベートエンドポイントのステータスリファレンス
プライベート エンドポイント接続を使用すると、プライベート エンドポイントとプライベート エンドポイント サービスの状態が次のページに表示されます。
- クラスター レベルのネットワークページ: 左上隅のコンボ ボックスを使用してターゲット クラスターに切り替え、左側のナビゲーション ペインで[設定] > [ネットワーク]をクリックします。
- プロジェクト レベルのネットワーク アクセスページ: 左上隅のコンボ ボックスを使用してターゲット プロジェクトに切り替え、左側のナビゲーション ペインで[プロジェクト設定] > [ネットワーク アクセス]をクリックします。
プライベート エンドポイントの可能なステータスについては、次のように説明されます。
- 未構成: エンドポイント サービスは作成されていますが、プライベート エンドポイントはまだ作成されていません。
- 保留中: 処理を待機中です。
- アクティブ:プライベートエンドポイントは使用可能です。このステータスのプライベートエンドポイントは編集できません。
- 削除中: プライベート エンドポイントを削除しています。
- 失敗: プライベートエンドポイントの作成に失敗しました。その行の「編集」をクリックすると、作成を再試行できます。
プライベート エンドポイント サービスの可能なステータスについては、次のように説明されます。
- 作成中: エンドポイント サービスを作成中です。これには 3 ~ 5 分かかります。
- アクティブ: プライベート エンドポイントが作成されたかどうかに関係なく、エンドポイント サービスが作成されます。
- 削除中: エンドポイント サービスまたはクラスターを削除中です。これには 3 ~ 5 分かかります。
トラブルシューティング
プライベートDNSを有効にした後、プライベートエンドポイント経由でTiDBクラスターに接続できません。なぜですか?
AWSマネジメントコンソールで、VPCエンドポイントのセキュリティグループを適切に設定する必要がある場合があります。「 VPC 」>「エンドポイント」に移動します。これを行うには、 「VPC」 > 「エンドポイント」に移動し、VPCエンドポイントを右クリックして「セキュリティグループの管理」を選択します。選択したセキュリティグループが、ポート4000またはお客様定義のポートでEC2インスタンスからのインバウンドアクセスを許可していることを確認してください。



