📣
TiDB Cloud Premium はパブリックプレビュー中です。エンタープライズワークロード向けの無制限のスケーリング、即時の弾力性、高度なセキュリティを提供します。このページは自動翻訳されたものです。原文はこちらからご覧ください。

AWS PrivateLink 経由でTiDB Cloud Dedicatedクラスタに接続する



このドキュメントでは、 AWS PrivateLink経由でTiDB Cloud Dedicated クラスターに接続する方法について説明します。

TiDB Cloudは、 AWS VPCでホストされているTiDB Cloudサービスへの、 AWS PrivateLink経由の高度に安全な一方向アクセスをサポートします。まるでお客様のVPC内にあるかのように機能します。VPC内にプライベートエンドポイントが公開されており、権限があればエンドポイント経由でTiDB Cloudサービスへの接続を作成できます。

AWS PrivateLink を利用することで、エンドポイント接続は安全かつプライベートであり、データがパブリックインターネットに公開されることはありません。さらに、エンドポイント接続は CIDR オーバーラップをサポートし、ネットワーク管理が容易になります。

プライベートエンドポイントのアーキテクチャは次のとおりです。

Private endpoint architecture

プライベートエンドポイントとエンドポイントサービスの詳細な定義については、次の 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 クラスターに接続するには、次の手順を実行します。

  1. TiDBクラスタを選択
  2. AWSインターフェースエンドポイントを作成する
  3. プライベートエンドポイント接続を作成する
  4. プライベートDNSを有効にする
  5. TiDBクラスタに接続する

複数のクラスターがある場合は、AWS PrivateLink を使用して接続するクラスターごとにこれらの手順を繰り返す必要があります。

ステップ1. TiDBクラスターを選択する

  1. My TiDBページで、ターゲットのTiDB Cloud Dedicatedクラスターの名前をクリックして、概要ページに移動します。
  2. 右上隅のConnectをクリックします。接続ダイアログが表示されます。
  3. Connection TypeドロップダウンリストでPrivate Endpointを選択し、 Create Private Endpoint Connectionをクリックします。

ステップ2. AWSインターフェースエンドポイントを作成する

TiDB Private Link Service is readyメッセージが表示された場合、対応するエンドポイントサービスは準備完了です。エンドポイントを作成するには、以下の情報を提供してください。

  1. Your VPC IDとYour Subnet IDsのフィールドに入力します。これらのIDはAWS マネジメントコンソールで確認できます。サブネットが複数ある場合は、IDをスペースで区切って入力してください。

  2. 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 インターフェースエンドポイントを作成するには、次の手順を実行します。

    1. 生成されたコマンドをコピーしてターミナルで実行します。
    2. 作成した VPC エンドポイント ID を記録します。

    AWS マネジメントコンソールを使用して VPC インターフェースエンドポイントを作成するには、次の手順を実行します。

    1. AWS マネジメントコンソールにサインインし、 https://console.aws.amazon.com/vpc/で Amazon VPC コンソールを開きます。

    2. ナビゲーションペインでEndpointsをクリックし、右上隅のCreate Endpointをクリックします。

      Create endpointページが表示されます。

      Verify endpoint service

    3. Endpoint settings領域で、必要に応じて名前タグを入力し、 Endpoint services that use NLBs and GWLBsオプションを選択します。

    4. Service settings領域に、生成されたコマンド( --service-name ${your_endpoint_service_name} )のサービス名${your_endpoint_service_name}を入力します。

    5. Verify serviceをクリックします。

    6. Network settings領域で、ドロップダウンリストから VPC を選択します。

    7. Subnets領域で、TiDB クラスターが配置されているアベイラビリティゾーンを選択します。

    8. Security groups領域で、セキュリティグループを適切に選択します。

    9. Create endpointをクリックします。

    ステップ3. プライベートエンドポイント接続を作成する

    1. TiDB Cloudコンソールに戻ります。
    2. Create AWS Private Endpoint Connectionページで、VPC エンドポイント ID を入力します。
    3. 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} --region ${your_vpc_region} --private-dns-enabled

      または、クラスターのNetworkingページでコマンドを見つけることもできます。プライベートエンドポイントを探し、 Action列の... > Enable DNSをクリックします。

      AWS マネジメントコンソールでプライベート DNS を有効にするには:

      1. VPC > Endpointsに移動します。

      2. エンドポイント ID を右クリックし、 Modify private DNS nameを選択します。

      3. Enable for this endpointチェックボックスをオンにします。

      4. Save changesをクリックします。

        Enable private DNS

      ステップ5. TiDBクラスターに接続する

      プライベートエンドポイント接続を承認すると、接続ダイアログにリダイレクトされます。

      1. プライベートエンドポイントの接続ステータスがSystem CheckingからActiveに変わるまで待ちます (約5分)。
      2. Connect Withドロップダウンリストで、希望する接続方法を選択します。対応する接続文字列がダイアログの下部に表示されます。
      3. 接続文字列を使用してクラスターに接続します。

      プライベートエンドポイントのステータスリファレンス

      プライベートエンドポイント接続を使用すると、プライベートエンドポイントとプライベートエンドポイントサービスの状態が次のページに表示されます。

      • クラスターレベルの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分かかります。

      プライベートエンドポイント経由で IPv6 接続を使用する

      TiDB Cloud Dedicated は、AWS PrivateLink 経由のインバウンド IPv6 接続をサポートしています。

      TiDB Cloud では、各 TiDB ノードグループ の IP プロトコルタイプを個別に設定できます。IPv6 経由で TiDB Cloud Dedicated クラスターに接続するには、対象ノードグループの IP プロトコルタイプをデュアルスタックに切り替えてから、次のようにデュアルスタックの AWS インターフェースエンドポイントを作成します。

      ステップ1. IP プロトコルタイプをデュアルスタックに切り替える

      TiDB Cloud Support が組織に対して IPv6 接続機能を有効にした後、TiDB Cloud コンソール で IP プロトコルタイプを切り替えることができます。

      1. 組織の My TiDB ページに移動し、対象クラスターの名前をクリックして概要ページを開き、左側のナビゲーションペインで Settings > Networking をクリックします。
      2. 各 TiDB Cloud Dedicated クラスターにはデフォルトの TiDB ノードグループ があります。クラスターに複数のノードグループがある場合は、右上の TiDB Node Group リストから対象の TiDB ノードグループを選択します。
      3. AWS Private Endpoints セクションで、Edit をクリックします。
      4. AWS Private Endpoints Connection Settings ダイアログで、IP プロトコルタイプとして Dual Stack (IPv4 + IPv6) を選択し、Save をクリックします。

      IP プロトコルタイプは、クラスターの作成後にのみ変更できます。

      ステップ2. IPv6 用のデュアルスタック AWS インターフェースエンドポイントを作成する

      ステップ2. AWSインターフェースエンドポイントを作成する の説明に従って AWS インターフェースエンドポイントを作成し、次の点に注意してください。

      • IP address type では、エンドポイントのネットワークインターフェースに IPv4 アドレスと IPv6 アドレスの両方を割り当てるために、Dualstack を選択します。

      • Subnets では、それぞれが IPv4 CIDR ブロックと IPv6 CIDR ブロックの両方を持つサブネットを選択します。

      • AWS CLI を使用する場合は、生成されたコマンドに --ip-address-type dualstack を追加します。

        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} --ip-address-type dualstack

      その後、ステップ3 から ステップ5 までを完了して、プライベートエンドポイント接続を作成し、IPv6 経由でクラスターに接続します。

      プライベートエンドポイント経由でリージョン間接続を使用する

      デフォルトでは、プライベートエンドポイントと、それが接続する TiDB Cloud Dedicated クラスターは、同じ AWS リージョン内に存在する必要があります。TiDB Cloud Dedicated はリージョン間接続もサポートしており、これにより、あるリージョンで VPC エンドポイントを作成し、別のリージョンのクラスターに接続できます。接続文字列と DNS の使用方法は、同一リージョン接続の場合と同じです。

      TiDB Cloud では、TiDB ノードグループごとに接続スコープを個別に設定できます。別のリージョンからクラスターに接続するには、対象のノードグループにそのリージョンを許可してから、自分のリージョンに AWS インターフェースエンドポイントを作成します。

      ステップ1. VPC エンドポイントのリージョンを許可する

      1. 組織の My TiDB ページに移動し、対象クラスターの名前をクリックして概要ページに移動してから、左側のナビゲーションペインで Settings > Networking をクリックします。
      2. 各 TiDB Cloud Dedicated クラスターには、デフォルトの TiDB ノードグループ があります。クラスターに複数のノードグループがある場合は、右上隅の TiDB Node Group リストから対象の TiDB ノードグループを選択します。
      3. AWS Private Endpoints セクションで、Edit をクリックします。
      4. AWS Private Endpoints Connection Settings ダイアログで、Connection Scope に Cross-Region を選択し、許可するリージョンを選択して、Save をクリックします。

      設定が保存されると、許可されたリージョンが AWS Private Endpoints セクションの Connection Scope 領域に表示されます。

      ステップ2. リージョン間 AWS インターフェースエンドポイントを作成する

      ステップ2. AWSインターフェースエンドポイントを作成する の説明に従って AWS インターフェースエンドポイントを作成し、次の点に注意してください。

      • エンドポイントは、TiDB Cloud Dedicated クラスターのリージョンとは異なる、アプリケーションが実行される AWS リージョンに作成します。AWS マネジメントコンソールでは、Enable Cross Region endpoint を選択し、Service Region を TiDB Cloud Dedicated クラスターのリージョンに設定します。

      • Subnets では、リージョン間アクセスをサポートするアベイラビリティゾーン内のサブネットを選択します。リージョン内のすべてのアベイラビリティゾーンがリージョン間アクセスをサポートしているわけではありません。サブネットがサポートされていないアベイラビリティゾーンにある場合、作成は失敗し、サポートされているアベイラビリティゾーンを一覧表示するエラーが表示されるため、代わりに一覧に表示されたアベイラビリティゾーン内のサブネットを選択できます。

      • リージョン間エンドポイントを作成する前に、呼び出し元の ID ポリシーと適用される Service Control Policy で vpce:AllowMultiRegion が許可されていることを確認してください。

      • AWS CLI を使用する場合は、--service-region ${your_cluster_region} でクラスターのリージョンを渡します。

        aws ec2 create-vpc-endpoint --vpc-id ${your_vpc_id} --region ${your_vpc_region} --service-name ${your_endpoint_service_name} --vpc-endpoint-type Interface --subnet-ids ${your_application_subnet_ids} --service-region ${your_cluster_region}

      次に、ステップ3. プライベートエンドポイント接続を作成する から ステップ5. TiDBクラスターに接続する までを完了して、プライベートエンドポイント接続を作成し、別のリージョンからクラスターに接続します。

      トラブルシューティング

      プライベートDNSを有効にした後、プライベートエンドポイント経由でTiDBクラスターに接続できません。なぜですか?

      AWSマネジメントコンソールで、VPCエンドポイントのセキュリティグループを適切に設定する必要がある場合があります。VPC > Endpointsに移動します。これを行うには、 VPC > Endpointsに移動し、VPCエンドポイントを右クリックしてManage security groupsを選択します。選択したセキュリティグループが、ポート4000またはお客様定義のポートでEC2インスタンスからのインバウンドアクセスを許可していることを確認してください。

      Manage security groups

      このページは役に立ちましたか?