View a markdown version of this page

Amazon MSK クラスターのカスタムドメイン名を設定する - Amazon Managed Streaming for Apache Kafka

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon MSK クラスターのカスタムドメイン名を設定する

MSK プロビジョンドクラスターは、デフォルトで AWS生成されたブローカーアドレスの代わりにカスタムドメイン名をアドバタイズするように設定できます。カスタムドメイン名は Amazon MSK 設定で 1 回定義され、スケーリングオペレーション中に追加された新しいブローカーを含め、クラスター内のすべてのブローカーに自動的に適用されます。これは、ZooKeeper メタデータ管理モードと KRaft メタデータ管理モードの両方で機能します。

カスタムドメイン名の仕組み

custom.advertised.listeners プロパティを Amazon MSK 設定に追加すると、Amazon MSK は以下を実行します。

  1. 設定 (リスナー名、形式、一意性) を検証します。

  2. 各ブローカーの{broker_id}テンプレートを解決します。

  3. ローリング再起動を通じて設定を一度に 1 つのブローカーに適用します。

プロパティは次の形式になります。

custom.advertised.listeners=LISTENER_NAME://hostname-pattern:port+{broker_id}

たとえば、3 つのブローカーを持つ IAM クラスターの場合:

custom.advertised.listeners=CLIENT_IAM://b-{broker_id}.example.com:9000+{broker_id}

これにより、次のアドレスが解決されます。

  • ブローカー 1: b-1.example.com:9001

  • ブローカー 2: b-2.example.com:9002

  • ブローカー 3: b-3.example.com:9003

{broker_id} テンプレート変数は必須であり、各ブローカーが一意のアドレスに解決されるようにポートに表示される必要があります。+ 演算子は、ブローカー ID をベースポート (9000 + 1 = 9001、9000 + 2 = 9002、9000 + 10 = 9010) に追加します。

クラスターに複数のクライアント向けリスナーがある場合は、カンマで区切って、それぞれに異なるドメインを割り当てることができます。

custom.advertised.listeners=CLIENT_IAM://b-{broker_id}.iam.example.com:9000+{broker_id},CLIENT_SASL_SCRAM://b-{broker_id}.scram.example.com:19000+{broker_id}

各リスナーは 1 つのカスタムドメインにマッピングされます。同じリスナーに複数のドメインを割り当てることはできません。ただし、リスナーは、それぞれがブローカーごとに一意のhost:port組み合わせに解決される限り、同じドメイン名を共有できます。たとえば、2 つのリスナーは共有できb-{broker_id}.example.com、ポートによってのみ異なります。

custom.advertised.listeners=CLIENT_IAM://b-{broker_id}.example.com:9000+{broker_id},CLIENT_SASL_SCRAM://b-{broker_id}.example.com:19000+{broker_id}

この動作は、ZooKeeper メタデータ管理モードと KRaft メタデータ管理モードで同じです。

設定を適用する前にネットワークを検証する

を適用するとcustom.advertised.listeners、カスタムドメイン名が上書きされたリスナーのデフォルトアドレスを置き換えます。したがって、設定を適用する前に、ネットワークレイヤーを配置して検証する必要があります。ネットワークレイヤーと信頼レイヤーが設定されておらず、解決可能で、到達可能で、クライアントから信頼されている場合、クライアントは再接続できません。これは、クライアントが直前に接続されていた場合でも当てはまります。クライアントがカスタムドメインを解決できない場合、接続が失われます。

前提条件

クラスターでカスタムドメイン名を設定する前に、次の条件を満たしていることを確認してください。

  • クラスターは ACTIVE状態の MSK プロビジョンドクラスター (スタンダードブローカーまたは Express ブローカー) です。

  • 各リスナーは、クラスターの認証タイプに対応します。カスタムアドバタイズエンドポイントは、クライアントリスナーに対してのみ設定できます: CLIENTCLIENT_SECURE、、CLIENT_SECURE_PUBLICCLIENT_SASL_SCRAMCLIENT_SASL_SCRAM_PUBLICCLIENT_IAM、および CLIENT_IAM_PUBLIC。内部リスナー (REPLICATION および CONTROLLER) はサポートされておらず、検証時に拒否されます。指定するリスナーは、クラスターにバインド (アクティブ) されている必要があります。たとえば、クラスターが IAM 認証のみを使用している場合、 の指定CLIENT_SECUREは拒否され、エラーメッセージにはクラスターの有効なクライアントリスナーが一覧表示されます。

  • ネットワークレイヤーが配置され、設定を適用する前に検証されます。適用すると、メタデータを更新するすべてのクライアントがカスタムドメインアドレスを受け取ります。クライアントがカスタムドメインを解決できない場合、接続が失われます。設定を適用する前に、ネットワークレイヤーがセットアップされ、すべてのクライアントから到達可能であることを確認してください。Network Load Balancer、Route 53、および AWS Certificate Manager のセットアップの詳細な図形式のチュートリアルについては、 AWS ビッグデータブログの「Amazon MSK クラスターのカスタムドメイン名を設定する」を参照してください。