

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

# カスタムドメイン名をエンドツーエンドで設定する
<a name="custom-domain-setup"></a>

このトピックでは、カスタムドメイン名のクラスター側の設定について説明します。ネットワークレイヤー (Network Load Balancer、DNS、TLS 証明書) はお客様が所有する前提条件であり、 AWS ビッグデータブログの[「Amazon MSK クラスターのカスタムドメイン名](https://aws.amazon.com/blogs/big-data/configure-a-custom-domain-name-for-your-amazon-msk-cluster/)を設定する」で詳しく説明されています。ネットワークが整うと、次の手順でクラスター側のセットアップについて説明します。

**設定を適用する前にネットワークを検証する**  
を適用すると`custom.advertised.listeners`、カスタムドメイン名が上書きされたリスナーのデフォルトアドレスを置き換えます。設定を適用する前に、ネットワークレイヤーが配置され、検証されている必要があります。クライアントがカスタムドメインを解決できない場合、接続が失われます。

## ステップ 1: Amazon MSK 設定にカスタムドメインを追加する
<a name="custom-domain-setup-step1"></a>

Network Load Balancer でプロビジョニングしたホスト名とポートに一致する `custom.advertised.listeners`プロパティを含む Amazon MSK 設定を作成または更新します。ポート 9001～9003 の Network Load Balancer をフロントとする 3 ブローカー IAM クラスターの場合は、 プロパティを ファイルに配置します。

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

次に、設定を作成し、ファイルをサーバープロパティとして渡します。

```
aws kafka create-configuration \
    --name "custom-domain-iam" \
    --description "Custom advertised listeners for CLIENT_IAM" \
    --server-properties fileb://custom-domain-config.txt
```

( `fileb://`ではなく`file://`) を使用して、 がファイルをバイトとして AWS CLI 読み取り、base64 でエンコードします。値をインラインで渡すと、中`{broker_id}`括弧のため脆弱です。Amazon `{broker_id}` MSK は適用時にブローカーごとにリテラルを解決するため、 ファイルにリテラルのままにします。レスポンスは、次のステップ`LatestRevision.Revision`で使用する設定 `Arn`と を返します。

## ステップ 2: 設定を適用する
<a name="custom-domain-setup-step2"></a>

コンソール、`UpdateClusterConfiguration`、 AWS CloudFormation AWS CDK AWS CLI、または Terraform を使用して、 を使用してクラスターに設定を適用します。これは、ブローカー設定の変更に既に使用しているのと同じワークフローです。

```
aws kafka update-cluster-configuration \
    --cluster-arn {{your-cluster-arn}} \
    --configuration-info arn={{configuration-arn}},revision={{revision}} \
    --current-version {{current-cluster-version}}
```

`DescribeCluster` オペレーションを使用して、クラスターの最新バージョンを検索します。クラスターのバージョンは単純な整数ではありません。

Amazon MSK は、何かが適用される前に設定を同期的に検証するため、不正な形式の値がブローカーに到達することはありません。Amazon MSK は、HTTP 400 エラーで無効な設定を拒否します。エラーの例については、「」を参照してください[カスタムドメイン名設定エラー](troubleshooting.md#troubleshoot-custom-domain-name-errors)。報告された問題を修正し、再適用します。

## ステップ 3: ロールアウトを追跡する
<a name="custom-domain-setup-step3"></a>

```
aws kafka describe-cluster-operation-v2 \
    --cluster-operation-arn {{operation-arn}}
```

設定が承認されると、Amazon MSK はローリング再起動を通じて設定を適用します。オペレーションが を報告するまで待ちます`UPDATE_COMPLETE`。が報告された場合`UPDATE_FAILED`、ブローカーは変更を適用できませんでした。そのブローカーでロールアウトが停止し、残りのブローカーは以前の設定を保持し、設定を修正して復旧するために再適用できます。

## ステップ 4: 確認する
<a name="custom-domain-setup-step4"></a>

リスナーの認証設定を使用するクライアントからのトピックを一覧表示して、クライアントがカスタムドメインを介して接続できることを確認します。

カスタムドメインエンドポイントを介してトピックを一覧表示できる場合、クライアントはカスタムドメインを介して正常に接続しています。オペレーションが報告された`UPDATE_COMPLETE`がクライアントが接続できない場合、クラスター側の設定は正しいですが、ネットワークレイヤーに注意が必要な可能性があります。以下をチェックしてください:
+ **ネットワークパス**: クライアントが使用しているブローカーとポートに Network Load Balancer リスナー、ターゲットグループ、およびセキュリティグループルールが存在し、Network Load Balancer がクライアントのネットワークから到達可能であることを確認します。
+ **DNS 解決**: カスタムドメインが、Apache Kafka クライアントが実行されるすべてのネットワークから Network Load Balancer に解決されていることを確認します。
+ **証明書**: Network Load Balancer の TLS 証明書が解決されたブローカーホスト名 (共通名またはサブジェクト代替名を使用) をカバーし、クライアントが CA (プライベート CA のルートと中間) を信頼していることを確認します。

## スケーリングとブローカーの置き換え
<a name="custom-domain-setup-scaling"></a>

クラスターをスケールするか、自動ヒーリング中にブローカーが置き換えられると、Amazon MSK は自動的に設定を新しいブローカーに適用します。Amazon MSK はブローカーの ID `{broker_id}`を解決します。クラスター側で手動ステップは必要ありません。

**注記**  
新しいブローカーに対応する Network Load Balancer リスナー、ターゲットグループ、DNS レコードを追加します。ネットワークレイヤーは自動的にスケールされません。

## カスタムドメインを削除する
<a name="custom-domain-setup-remove"></a>

デフォルトの Amazon MSK 生成アドレスに戻すには、Amazon MSK 設定から `custom.advertised.listeners`プロパティを削除し、 を使用して更新された設定を適用します`UpdateClusterConfiguration`。Amazon MSK はローリング再起動を実行し、ブローカーは元のアドレスのアドバタイズに戻ります。カスタムドメイン設定を削除する前に、クライアントが元の Amazon MSK で生成されたアドレスに到達できることを確認してください。