プライベート エンドポイント経由で接続する
ノート:
プライベート エンドポイント接続は、Dedicated Tier クラスターでのみ使用できます。プライベート エンドポイントを使用してサーバーレス階層クラスターに接続することはできません。
TiDB Cloudは、サービスが独自の VPC にあるかのように、AWS VPC でホストされているTiDB Cloudサービスへの高度に安全な一方向アクセスをAWS プライベートリンク経由でサポートします。プライベート エンドポイントが VPC で公開されており、エンドポイントを介してTiDB Cloudサービスへの接続を許可付きで作成できます。
AWS PrivateLink を利用したエンドポイント接続は安全でプライベートであり、データが公共のインターネットに公開されることはありません。さらに、エンドポイント接続は CIDR オーバーラップをサポートし、ネットワーク管理が容易になります。
プライベート エンドポイントのアーキテクチャは次のとおりです。
プライベート エンドポイントとエンドポイント サービスの詳細な定義については、次の AWS ドキュメントを参照してください。
制限
- 現在、 TiDB Cloudは、エンドポイント サービスが AWS でホストされている場合にのみ、プライベート エンドポイント接続をサポートしています。サービスが Google Cloud Platform (GCP) でホストされている場合、プライベート エンドポイントは適用されません。
- プライベート エンドポイントのサポートは、サーバーレス層ではなく、 TiDB Cloud Dedicated 層に対してのみ提供されます。
- リージョン間のプライベート エンドポイント接続はサポートされていません。
ほとんどのシナリオでは、VPC ピアリング経由でプライベート エンドポイント接続を使用することをお勧めします。ただし、次のシナリオでは、プライベート エンドポイント接続の代わりに VPC ピアリングを使用する必要があります。
- TiCDCのクラスターを使用して、ソース TiDB クラスターからターゲット TiDB クラスターにリージョン間でデータをレプリケートし、高可用性を実現しています。現在、プライベート エンドポイントはクロスリージョン接続をサポートしていません。
- TiCDC クラスターを使用してダウンストリーム クラスター (Amazon Aurora、MySQL、Kafka など) にデータをレプリケートしていますが、エンドポイント サービスを自分で維持することはできません。
- PD または TiKV ノードに直接接続しています。
AWS でプライベート エンドポイントを設定する
このセクションでは、AWS PrivateLink を使用してプライベート エンドポイントを設定する方法について説明します。
前提条件に加えて、AWS PrivateLink とのプライベート エンドポイント接続をセットアップするには 5 つのステップがあります。
- TiDB クラスターを選択する
- サービス エンドポイントのリージョンを確認する
- AWS インターフェイス エンドポイントを作成する
- エンドポイント接続を受け入れる
- プライベート DNS を有効にする
- TiDB クラスターに接続する
複数のクラスターがある場合は、AWS PrivateLink を使用して接続するクラスターごとにこれらの手順を繰り返す必要があります。
前提条件
TiDB Cloudは、Dedicated Tier クラスターのプライベート エンドポイントのみをサポートします。プライベート エンドポイントを作成する前に、Dedicated Tier クラスターを作成する必要があります。詳細な手順については、 TiDB Cloudで TiDBクラスタを作成するを参照してください。
プライベート エンドポイントの設定を開始するには、プライベート エンドポイントの作成ページを開きます。
- TiDB Cloudコンソールで、ターゲット プロジェクトを選択し、[ネットワーク アクセス] タブをクリックします。
- [プライベート エンドポイント] タブをクリックします。
- 右上隅にある [**追加]**をクリックします。
ステップ 1. TiDB クラスターを選択する
- ドロップダウン リストをクリックして、利用可能な TiDB クラスターを選択します。
- [次へ] をクリックします。
ステップ 2. サービス エンドポイント リージョンを確認する
サービス エンドポイント リージョンはデフォルトで選択されています。簡単に確認して、[次へ] をクリックします。
ノート:
デフォルトのリージョンは、クラスターが配置されている場所です。変更しないでください。クロスリージョン プライベート エンドポイントは現在サポートされていません。
ステップ 3.AWS インターフェイス エンドポイントを作成する
TiDB Cloudがエンドポイント サービスの作成を開始します。これには 3 ~ 4 分かかります。
エンドポイント サービスが作成されたら、コンソールの下部領域にあるコマンドからエンドポイント サービス名をメモします。
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 マネジメント コンソールまたは AWS CLI を使用して、AWS インターフェイス エンドポイントを作成します。
AWS マネジメント コンソールを使用して VPC インターフェイス エンドポイントを作成するには、次の手順を実行します。
VPC >エンドポイントに移動します。
[**エンドポイントの作成]**をクリックします。
エンドポイントの作成ページが表示されます。
[**その他のエンドポイント サービス] を**選択します。
エンドポイント サービス名を入力します。
[**サービスの確認 ] を**クリックします。
ドロップダウン リストで VPC を選択します。
サブネット領域で、TiDB クラスターが配置されている可用性ゾーンを選択します。
ヒント:
サービスが 3 つ以上のアベイラビリティ ゾーン (AZ) にまたがっている場合、[サブネット] 領域で AZ を選択できない場合があります。この問題は、TiDB クラスターが配置されている AZ に加えて、選択したリージョンに追加の AZ がある場合に発生します。この場合はPingCAP テクニカル サポートにお問い合わせください。
[セキュリティ グループ] 領域でセキュリティ グループを適切に選択します。
ノート:
選択したセキュリティ グループが、ポート 4000 または顧客定義のポートで EC2 インスタンスからのインバウンド アクセスを許可していることを確認してください。
[**エンドポイントの作成]**をクリックします。
AWS CLI を使用して VPC インターフェイス エンドポイントを作成するには、次の手順を実行します。
- プライベート エンドポイントの作成ページで、 VPC ID フィールドとサブネット IDフィールドに入力します。 ID は AWS マネジメント コンソールから取得できます。
- ページの下部にあるコマンドをコピーして、ターミナルで実行します。次に、[次へ] をクリックします。
ヒント:
コマンドを実行する前に、AWS CLI をインストールして設定する必要があります。詳細はAWS CLI 設定の基本を参照してください。
サービスが 3 つ以上のアベイラビリティ ゾーン (AZ) にまたがっている場合、VPC エンドポイント サービスがサブネットの AZ をサポートしていないことを示すエラー メッセージが表示されます。この問題は、TiDB クラスターが配置されている AZ に加えて、選択したリージョンに追加の AZ がある場合に発生します。この場合、 PingCAP テクニカル サポートに連絡できます。
TiDB Cloudがバックグラウンドでエンドポイント サービスの作成を完了するまで、コマンドをコピーすることはできません。
ステップ 4. エンドポイント接続を受け入れる
- TiDB Cloudコンソールに戻ります。
- [**プライベート エンドポイントの作成]**ページで、ボックスに VPC エンドポイント ID を入力します。
- [次へ] をクリックします。
ステップ 5. プライベート DNS を有効にする
AWS でプライベート DNS を有効にします。 AWS マネジメント コンソールまたは AWS CLI を使用できます。
AWS マネジメント コンソールでプライベート DNS を有効にするには:
VPC >エンドポイントに移動します。
エンドポイント ID を右クリックし、 [プライベート DNS 名の変更] を選択します。
[**このエンドポイントを有効にする]**チェック ボックスをオンにします。
[**変更を保存] を**クリックします。
AWS CLI を使用してプライベート DNS を有効にするには、コマンドをコピーして AWS CLI で実行します。
aws ec2 modify-vpc-endpoint --vpc-endpoint-id <your_vpc_endpoint_id> --private-dns-enabled
TiDB Cloudコンソールで [作成] をクリックして、プライベート エンドポイントの作成を完了します。
その後、エンドポイント サービスに接続できます。
ステップ 6: TiDB クラスターに接続する
プライベート DNS を有効にしたら、 TiDB Cloudコンソールに戻り、次の手順を実行します。
- クラスターを見つけて、クラスター領域の右上隅にある [接続] をクリックします。接続ダイアログボックスが表示されます。
- [プライベート エンドポイント] タブを選択します。作成したばかりのプライベート エンドポイントが [ Step 1: Create Private Endpoint ]の下に表示されます。
- [ステップ 2: アプリケーションを接続する] で、希望する接続方法のタブをクリックし、接続文字列を使用してクラスターに接続します。接続文字列のプレースホルダー
<cluster_endpoint_name>:<port>は、実際の値に自動的に置き換えられます。
ヒント:
クラスターに接続できない場合、AWS の VPC エンドポイントのセキュリティ グループが正しく設定されていない可能性があります。解決策については、 このFAQを参照してください。
プライベート エンドポイントのステータス リファレンス
プライベート エンドポイント接続を使用すると、プライベート エンドポイントまたはプライベート エンドポイント サービスの状態がプライベート エンドポイントページに表示されます。
プライベート エンドポイントの可能なステータスは、次のように説明されています。
- 未構成: エンドポイント サービスを作成したばかりですが、プライベート エンドポイントはまだ作成していません。
- 保留中: 処理を待っています。
- Active : プライベート エンドポイントを使用する準備ができています。このステータスのプライベート エンドポイントは編集できません。
- 削除中 : プライベート エンドポイントを削除しています。
- Failed : プライベート エンドポイントの作成に失敗しました。その行の [編集] をクリックして、作成を再試行できます。
プライベート エンドポイント サービスの可能なステータスは、次のように説明されています。
- 作成中 : エンドポイント サービスが作成されています。これには 3 ~ 5 分かかります。
- Active : プライベート エンドポイントが作成されているかどうかに関係なく、エンドポイント サービスが作成されます。
- 削除中 : エンドポイント サービスまたはクラスターを削除しています。これには 3 ~ 5 分かかります。
トラブルシューティング
プライベート DNS を有効にした後、プライベート エンドポイント経由で TiDB クラスターに接続できません。なんで?
AWS マネジメント コンソールで VPC エンドポイントのセキュリティ グループを適切に設定する必要がある場合があります。 VPC >エンドポイントに移動します。 VPC エンドポイントを右クリックし、適切なManage security groupsを選択します。ポート 4000 または顧客定義のポートで EC2 インスタンスからのインバウンド アクセスを許可する、VPC 内の適切なセキュリティ グループ。
プライベート DNS を有効にできません。 enableDnsSupportおよびenableDnsHostnames VPC 属性が有効になっていないことを示すエラーが報告される
VPC 設定で DNS ホスト名と DNS 解決の両方が有効になっていることを確認します。 AWS マネジメント コンソールで VPC を作成すると、デフォルトで無効になります。



