プライベートリンク接続経由でプロビジョニングされた Amazon MSK に接続する
このドキュメントでは、 Amazon MSK プロビジョニングされたプライベートリンク接続を使用してTiDB Cloud EssentialクラスターをAmazon MSK プロビジョニングクラスターに接続する方法について説明します。
TiDB Cloud Essentialの前提条件 {#prerequisites-for-essential}
TiDB Cloud Essentialクラスターは AWS でホストされており、アクティブです。後で使用するために、以下の情報を取得して保存してください。
- AWSアカウントID
- 可用性ゾーン(AZ)
AWS アカウント ID とアベイラビリティーゾーンを表示するには:
- TiDB Cloudコンソールで、TiDB クラスターのクラスター概要ページに移動し、左側のナビゲーション ペインで[設定] > [ネットワーク]をクリックします。
- [データフローのプライベート リンク接続]領域で、 [プライベート リンク接続の作成] をクリックします。
- ダイアログで、AWS アカウント ID とアベイラビリティーゾーンをメモします。
Amazon MSK プロビジョニングクラスターの前提条件
始める前に、Amazon MSK プロビジョニングされたクラスターについて次の点を確認してください。
- リージョンと AZ : Amazon MSK プロビジョニングされたクラスターは、 TiDB Cloud Essentialクラスターと同じ AWS リージョンにあり、MSK クラスターのアベイラビリティーゾーンはTiDB Cloudクラスターと同じです。
- MSK クラスターには認証: SASL/SCRAM認証が必要です。
- ブローカータイプ: ブローカー
t4.smallタイプは使用しないでください。プライベートリンクをサポートしていません。
詳細な要件については、 単一リージョンでの Amazon MSK マルチ VPC プライベート接続参照してください。
Amazon MSK プロビジョニングされたクラスターがない場合は、 TiDB Cloud Essentialクラスターと同じリージョンおよび同じアベイラビリティーゾーンに1つ作成する 、作成されたクラスターにSASL/SCRAM認証を設定する 。
- シークレット名: シークレット名は
AmazonMSK_で始まる必要があります。 - 暗号化:デフォルトの暗号化キーは使用しないでください。シークレット用に新しいカスタムAWS KMSキーを作成してください。
ステップ1. TiDB Cloudアクセス用にKafka ACLを設定する
TiDB Cloud がAmazon MSK プロビジョニングクラスターにアクセスできるように、Kafka ACL を設定する必要があります。ACL の設定には、SASL/SCRAM 認証(推奨)またはIAM認証を使用できます。
この方法を使用して、SASL/SCRAM 認証を使用して MSK クラスターと同じ VPC に ACL を作成します。
MSK クラスターが配置されている VPC に EC2 インスタンス (Linux) を作成し、SSH で接続します。
Kafka と OpenJDK をダウンロードします。
wget https://archive.apache.org/dist/kafka/3.7.1/kafka_2.13-3.7.1.tgz tar -zxf kafka_2.13-3.7.1.tgz wget https://download.java.net/java/GA/jdk22.0.2/c9ecb94cd31b495da20a27d4581645e8/9/GPL/openjdk-22.0.2_linux-x64_bin.tar.gz tar -zxf openjdk-22.0.2_linux-x64_bin.tar.gz環境を設定します。パスを実際のパスに置き換えてください。
export PATH=$PATH:/home/ec2-user/jdk-22.0.2/bin以下の内容を含む
scram-client.propertiesという名前のファイルを作成します。3とpswdusername/SCRAMの認証情報に置き換えてください。security.protocol=SASL_SSL sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ username="username" \ password="pswd";ACLを作成します。1
bootstrap-serverMSKブートストラップサーバーのアドレスとポート(例:b-2.xxxxx.c18.kafka.us-east-1.amazonaws.com:9096)に置き換え、必要に応じてKafkaへのパスを置き換えます。/home/ec2-user/kafka_2.13-3.7.1/bin/kafka-acls.sh --bootstrap-server <bootstrap-server> --command-config scram-client.properties --add --allow-principal User:<username> --operation All --topic '*' /home/ec2-user/kafka_2.13-3.7.1/bin/kafka-acls.sh --bootstrap-server <bootstrap-server> --command-config scram-client.properties --add --allow-principal User:<username> --operation All --group '*' /home/ec2-user/kafka_2.13-3.7.1/bin/kafka-acls.sh --bootstrap-server <bootstrap-server> --command-config scram-client.properties --add --allow-principal User:<username> --operation All --cluster '*'プリンシパル
User:<username>は、 TiDB CloudがMSKクラスターにアクセスするために使用するSASL/SCRAMユーザーです。MSK ACLでTiDB Cloud用に設定したユーザー名を使用してください。
SASL/SCRAM の代わりに、 IAM認証を使用して MSK クラスターと同じ VPC 内に ACL を作成できますIAMユーザーまたはロールには、MSK 権限用のAmazon MSKおよびApache Kafka API が必要です。
MSK クラスターが配置されている VPC に EC2 インスタンス (Linux) を作成し、SSH で接続します。
Kafka、OpenJDK、AWS MSK IAM認証 JAR をダウンロードします。
wget https://archive.apache.org/dist/kafka/3.7.1/kafka_2.13-3.7.1.tgz tar -zxf kafka_2.13-3.7.1.tgz wget https://download.java.net/java/GA/jdk22.0.2/c9ecb94cd31b495da20a27d4581645e8/9/GPL/openjdk-22.0.2_linux-x64_bin.tar.gz tar -zxf openjdk-22.0.2_linux-x64_bin.tar.gz wget https://github.com/aws/aws-msk-iam-auth/releases/download/v2.3.5/aws-msk-iam-auth-2.3.5-all.jar環境を設定します。パスと資格情報を独自の値に置き換えてください。
export PATH=$PATH:/home/ec2-user/jdk-22.0.2/bin export CLASSPATH=/home/ec2-user/aws-msk-iam-auth-2.3.5-all.jar export AWS_ACCESS_KEY_ID=<your-access-key-id> export AWS_SECRET_ACCESS_KEY=<your-secret-access-key>次の内容を含む
iam-client.propertiesという名前のファイルを作成します。security.protocol=SASL_SSL sasl.mechanism=AWS_MSK_IAM sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required; sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandlerACLを作成します。1
bootstrap-serverMSKブートストラップサーバーのアドレスとポート(例:b-1.xxxxx.c18.kafka.us-east-1.amazonaws.com:9098)に置き換え、必要に応じてKafkaへのパスを置き換えます。/home/ec2-user/kafka_2.13-3.7.1/bin/kafka-acls.sh --bootstrap-server <bootstrap-server> --command-config iam-client.properties --add --allow-principal User:<username> --operation All --topic '*' /home/ec2-user/kafka_2.13-3.7.1/bin/kafka-acls.sh --bootstrap-server <bootstrap-server> --command-config iam-client.properties --add --allow-principal User:<username> --operation All --group '*' /home/ec2-user/kafka_2.13-3.7.1/bin/kafka-acls.sh --bootstrap-server <bootstrap-server> --command-config iam-client.properties --add --allow-principal User:<username> --operation All --cluster '*'プリンシパル
User:<username>は、 TiDB CloudがMSKクラスターにアクセスするために使用するSASL/SCRAMユーザーです。MSK ACLでTiDB Cloud用に設定したユーザー名を使用してください。
ステップ2. MSKクラスターを構成する
次のクラスター構成プロパティを更新します。
- セット
auto.create.topics.enable=true。 allow.everyone.if.no.acl.found=false追加します (SASL/SCRAM に必要)。- その他のプロパティは変更せず、必要に応じて調整します。
変更を適用し、クラスターのステータスがUpdatingからActiveに変わるまで待ちます。
ステップ3. クラスターポリシーをアタッチする
クラスタポリシーをアタッチする 前提条件して、 TiDB Cloud がMSK クラスターに接続できるようにします。2 で取得したTiDB Cloud AWS アカウント ID を使用してください。
ステップ4. マルチVPC接続を有効にする
クラスターがアクティブになった後、MSKクラスターの場合はマルチVPC接続を有効にする 。AWS PrivateLinkにはマルチVPC接続が必要です。TiDB TiDB Cloudから接続するには、SASL/SCRAM認証を有効にする必要があります。
クラスターのステータスが「更新中」から「アクティブ」に再度変わるまで待ちます。
ステップ 5. TiDB Cloudで Amazon MSK プロビジョニングされたプライベートリンク接続を作成する
MSK クラスターのARN使用して、 TiDB Cloudにプライベート リンク接続を作成します。
詳細についてはAmazon MSK プロビジョニングされたプライベートリンク接続を作成する参照してください。