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 マネジメントコンソールでVPCを作成すると、これらはデフォルトで無効になります。
プライベートエンドポイント接続を設定し、クラスターに接続する
プライベート エンドポイント経由でTiDB Cloud Dedicated クラスターに接続するには、次の手順を実行します。
複数のクラスターがある場合は、AWS PrivateLink を使用して接続するクラスターごとにこれらの手順を繰り返す必要があります。
ステップ1. TiDBクラスターを選択する
- My TiDBページで、ターゲットのTiDB Cloud Dedicatedクラスターの名前をクリックして、概要ページに移動します。
- 右上隅のConnectをクリックします。接続ダイアログが表示されます。
- Connection Typeドロップダウン リストでPrivate Endpointを選択し、 Create Private Endpoint Connectionをクリックします。
ステップ2. AWSインターフェースエンドポイントを作成する
TiDB Private Link Service is readyメッセージが表示された場合、対応するエンドポイントサービスは準備完了です。エンドポイントを作成するには、以下の情報を提供してください。
Your VPC IDとYour Subnet IDsのフィールドに入力します。これらのIDはAWS マネジメントコンソールで確認できます。サブネットが複数ある場合は、IDをスペースで区切って入力してください。
Generate Commandをクリックすると、次のエンドポイント作成コマンドが取得されます。
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 コンソールを開きます。
ナビゲーション ペインでEndpointsをクリックし、右上隅のCreate Endpointをクリックします。
Create endpointページが表示されます。
Endpoint settings領域で、必要に応じて名前タグを入力し、 Endpoint services that use NLBs and GWLBsオプションを選択します。
Service settings領域に、生成されたコマンド(
--service-name ${your_endpoint_service_name})のサービス名${your_endpoint_service_name}入力します。Verify serviceをクリックします。
Network settings領域で、ドロップダウンリストから VPC を選択します。
Subnets領域で、TiDB クラスターが配置されている可用性ゾーンを選択します。
Security groups領域で、セキュリティ グループを適切に選択します。
Create endpointをクリックします。
ステップ3. プライベートエンドポイント接続を作成する
- TiDB Cloudコンソールに戻ります。
- Create AWS Private Endpoint Connectionページで、VPC エンドポイント ID を入力します。
- Create Private Endpoint Connectionをクリックします。
ステップ4. プライベートDNSを有効にする
AWS でプライベート DNS を有効にします。AWS CLI または AWS マネジメントコンソールを使用できます。
AWS CLI を使用してプライベート DNS を有効にするには、 Create Private Endpoint Connectionページから次のaws ec2 modify-vpc-endpointコマンドをコピーし、AWS CLI で実行します。
aws ec2 modify-vpc-endpoint --vpc-endpoint-id ${your_vpc_endpoint_id} --private-dns-enabled
または、クラスターのNetworkingページでコマンドを見つけることもできます。プライベートエンドポイントを探し、 Action列の... > Enable DNSをクリックします。
AWS マネジメントコンソールでプライベート DNS を有効にするには:
VPC > Endpointsに移動します。
エンドポイント ID を右クリックし、 Modify private DNS nameを選択します。
Enable for this endpointチェックボックスをオンにします。
Save changesをクリックします。
ステップ5. TiDBクラスターに接続する
プライベート エンドポイント接続を承認すると、接続ダイアログにリダイレクトされます。
- プライベート エンドポイントの接続ステータスがSystem CheckingからActiveに変わるまで待ちます (約 5 分)。
- Connect Withドロップダウンリストで、希望する接続方法を選択します。対応する接続文字列がダイアログの下部に表示されます。
- 接続文字列を使用してクラスターに接続します。
プライベートエンドポイントのステータスリファレンス
プライベート エンドポイント接続を使用すると、プライベート エンドポイントとプライベート エンドポイント サービスの状態が次のページに表示されます。
- クラスター レベルのNetworkingページ: 組織のMy TiDBページに移動し、対象のTiDB Cloud Dedicatedクラスターの名前をクリックして概要ページに移動し、左側のナビゲーション ペインでSettings > Networkingをクリックします。
- プロジェクト レベルのNetwork Accessページ: 組織のMy TiDBページに移動し、Project view タブをクリックして対象のプロジェクトを見つけ、そのプロジェクトの をクリックし、Project Settings の下にある Network Access をクリックします。
プライベート エンドポイントの可能なステータスについては、次のように説明されます。
- Not Configured: エンドポイント サービスは作成されていますが、プライベート エンドポイントはまだ作成されていません。
- Pending: 処理を待機中です。
- Active:プライベートエンドポイントは使用可能です。このステータスのプライベートエンドポイントは編集できません。
- Deleting: プライベート エンドポイントを削除しています。
- Failed: プライベートエンドポイントの作成に失敗しました。その行のEditをクリックすると、作成を再試行できます。
プライベート エンドポイント サービスの可能なステータスについては、次のように説明されます。
- Creating: エンドポイント サービスを作成中です。これには 3 ~ 5 分かかります。
- Active: プライベート エンドポイントが作成されたかどうかに関係なく、エンドポイント サービスが作成されます。
- Deleting: エンドポイント サービスまたはクラスターを削除中です。これには 3 ~ 5 分かかります。
トラブルシューティング
プライベートDNSを有効にした後、プライベートエンドポイント経由でTiDBクラスターに接続できません。なぜですか?
AWSマネジメントコンソールで、VPCエンドポイントのセキュリティグループを適切に設定する必要がある場合があります。VPC > Endpointsに移動します。これを行うには、 VPC > Endpointsに移動し、VPCエンドポイントを右クリックしてManage security groupsを選択します。選択したセキュリティグループが、ポート4000またはお客様定義のポートでEC2インスタンスからのインバウンドアクセスを許可していることを確認してください。



