

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

# MSK サーバーレスとは
<a name="serverless"></a>

**注記**  
MSK サーバーレスは、米国東部 (オハイオ)、米国東部 (バージニア北部)、米国西部 (オレゴン)、カナダ (中部)、アジアパシフィック (ムンバイ)、アジアパシフィック (シンガポール)、アジアパシフィック (シドニー)、アジアパシフィック (東京)、アジアパシフィック (ソウル)、欧州 (フランクフルト)、欧州 (ストックホルム)、欧州 (アイルランド)、欧州 (パリ)、および欧州 (ロンドン) の各リージョンで利用できます。

MSK サーバーレス は Amazon MSK のクラスタータイプで、クラスターの容量を管理およびスケールすることなく Apache Kafka を実行することができます。トピック内のパーティションを管理しながら容量を自動的にプロビジョニングおよびスケーリングするため、ユーザーはクラスターの適切なサイジングやスケーリングについて考えることなく、データをストリーミングできます。MSK サーバーレスはスループットベースの価格モデルを採用しているため、ご利用分のみのお支払いとなります。ご利用中のアプリケーションで、オンデマンドストリーミング容量の自動的なスケールアップおよびスケールダウンが必要な場合は、サーバーレスクラスターの使用を検討してください。

MSK サーバーレスは Apache Kafka と完全に互換性があるため、互換性のある任意のクライアントアプリケーションを使用してデータを生成および消費できます。また、以下のサービス と統合されます : 
+ AWS PrivateLink プライベート接続を提供するには
+ AWS Identity and Access Management (IAM) Java および Java 以外の言語を使用する認証および認可に使用される IAM 用のクライアントの設定方法については、[IAM アクセス制御用にクライアントを設定する](configure-clients-for-iam-access-control.md) を参照してください。
+ AWS Glue スキーマ管理用のスキーマレジストリ
+ Apache Flink ベースのストリーム処理対応の Amazon Managed Service for Apache Flink
+  AWS Lambda イベント処理用

**注記**  
MSK サーバーレスでは、すべてのクラスターに対して IAM アクセス制御が必要です。Apache Kafka アクセスコントロールリスト (ACL) はサポートされていません。詳細については、「[IAM アクセスコントロール](iam-access-control.md)」を参照してください。  
MSK サーバーレスに適用される Service Quotas の詳細については、「[MSK サーバーレス クォータ](limits.md#serverless-quota)」を参照してください。

サーバーレスクラスターの使用開始に役立つ情報や、構成とモニタリングオプションの詳細について知るには、以下を参照してください。

**Topics**
+ [MSK サーバーレスクラスターを使用する](serverless-getting-started.md)
+ [MSK サーバーレスクラスターの構成プロパティ](serverless-config.md)
+ [デュアルスタックネットワークタイプを設定する](serverless-config-dual-stack.md)
+ [MSK サーバーレスのクラスターをモニタリングする](serverless-monitoring.md)

# MSK サーバーレスクラスターを使用する
<a name="serverless-getting-started"></a>

このチュートリアルでは、MSK サーバーレスクラスターの作成方法と、作成したクラスターにアクセスできるクライアントマシンの作成、またクライアントを使用したクラスター上でのトピックの作成と、それらのトピックにデータを書き込む方法の一例をご説明します。この例は、サーバーレスクラスターを作成するにあたって選択可能なすべてのオプションを示しているわけではありません。この演習中のさまざまな場面で、わかりやすさのためにデフォルトのオプションを選択しています。このことは、サーバーレスクラスターのセットアップにあたって、他の方法がないという意味ではありません。 AWS CLI または Amazon MSK API を使用することもできます。詳細については、[Amazon MSK API リファレンス 2.0](https://docs.aws.amazon.com/MSK/2.0/APIReference/what-is-msk.html)を参照してください。

**Topics**
+ [MSK サーバーレスクラスターを作成する](create-serverless-cluster.md)
+ [MSK サーバーレスクラスターのトピックの IAM ロールを作成する](create-iam-role.md)
+ [MSK サーバーレスクラスターにアクセスするためのクライアントマシンを作成する](create-serverless-cluster-client.md)
+ [Apache Kafka トピックを作成する](msk-serverless-create-topic.md)
+ [MSK サーバーレスでデータを生成および消費する](msk-serverless-produce-consume.md)
+ [MSK サーバーレス用に作成したリソースを削除する](delete-resources.md)

# MSK サーバーレスクラスターを作成する
<a name="create-serverless-cluster"></a>

このステップでは、2 つのタスクを実行します。まず、デフォルト設定で MSK サーバーレスクラスターを作成します。次に、作成したクラスター に関する情報を収集します。これは、後のステップでクラスターにデータを送信できるクライアントを作成するときに必要となる情報です。

**サーバーレスクラスターを作成する**

1. にサインインし AWS マネジメントコンソール、[https://console.aws.amazon.com/msk/home](https://console.aws.amazon.com/msk/home) で Amazon MSK コンソールを開きます。

1. **[クラスターを作成]** を選択します。

1. **[作成方法]** では、**[クイック作成]** オプションを選択したままにします。**[クイック作成]** オプションを使用すると、デフォルト設定でサーバーレスクラスターを作成できます。

1. **[クラスター名]** に、わかりやすい名前 (**msk-serverless-tutorial-cluster** など) を入力します。

1. **[全般的なクラスターのプロパティ]** では、**[クラスタータイプ]** として **[サーバーレス]** を選択します。残りの **[全般的なクラスターのプロパティ]** にはデフォルト値を使用してください。

1. **[すべてのクラスター設定]** の下の表に注意してください。この表は、ネットワークや可用性などの重要な設定のデフォルト値のリストと、クラスターの作成後に各設定を変更できるかどうかを示しています。クラスターを作成する前に設定を変更するには、**[作成方法]** で **[カスタム作成]** オプションを選択する必要があります。
**注記**  
最大 5 つの異なる VPC のクライアントを MSK サーバーレスクラスターと接続できます。機能停止時にクライアントアプリケーションが別のアベイラビリティーゾーンに切り替えられるようにするには、各 VPC に少なくとも 2 つのサブネットを指定する必要があります。

1. **Create cluster** (クラスターの作成) を選択します。

**クラスター情報を取得する**

1. **[クラスターの概要]** ページで、**[クライアント情報の表示]** を選択します。このボタンはAmazon MSK がクラスターの作成を完了するまで、グレーで表示されます。ボタンがアクティブになり使用可能になるまで、数分かかる場合があります。

1. **Endpoint** (エンドポイント) ラベルの下にある文字列をコピーします。これはブートストラップサーバー文字列です。

1. **[プロパティ]** タブを選択します。

1. **[ネットワーク設定]** セクションで、サブネットとセキュリティグループの ID をコピーし、保存します。この情報は後でクライアントマシンを作成する際に必要になります。

1. いずれかのサブネットを選択します。これにより、Amazon VPC コンソールが開きます。サブネットに関連付けられた Amazon VPC の ID を探します。後で使用するため、この Amazon VPC ID を保存します。

**次のステップ**

[MSK サーバーレスクラスターのトピックの IAM ロールを作成する](create-iam-role.md)

# MSK サーバーレスクラスターのトピックの IAM ロールを作成する
<a name="create-iam-role"></a>

このステップでは、2 つのタスクを実行します。最初のタスクは、クラスターでトピックを作成し、それらのトピックにデータを送信するためのアクセスを許可する IAM ポリシーを作成することです。2 番目のタスクは、IAM ロールを作成し、作成したポリシーをそのロールに関連付けることです。後のステップでは、このロールを引き受けるクライアントマシンを作成し、それを使用してクラスター上にトピックを作成し、そのトピックにデータを送信します。

**トピックを作成し、書き込むことを可能にする IAM ポリシーを作成する**

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. ナビゲーションペインで [**Policies**] (ポリシー) を選択します。

1. **[ポリシーを作成]** を選択します。

1. **JSON** タブを選択し、エディタウィンドウの JSON を次の JSON に置き換えます。

   以下の例では、以下を置き換えます。
   + *region* と、クラスターを作成した AWS リージョン のコード。
   + アカウント ID の例: *123456789012*。 AWS アカウント 
   + *msk-serverless-tutorial-cluster*/*c07c74ea-5146-4a03-add1-9baa787a5b14-s3* および *msk-serverless-tutorial-cluster* を、あなたのサーバーレスクラスター ID とトピック名に置き換えてください。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "kafka-cluster:Connect",
                   "kafka-cluster:DescribeCluster"
               ],
               "Resource": [
                   "arn:aws:kafka:us-east-1:123456789012:cluster/msk-serverless-tutorial-cluster/c07c74ea-5146-4a03-add1-9baa787a5b14-s3"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kafka-cluster:CreateTopic",
                   "kafka-cluster:WriteData",
                   "kafka-cluster:DescribeTopic"
               ],
               "Resource": [
               "arn:aws:kafka:us-east-1:123456789012:topic/msk-serverless-tutorial-cluster/*"
               ]
           }
       ]
   }
   ```

------

   安全なポリシーの記述方法については、「[IAM アクセスコントロール](iam-access-control.md)」を参照してください。

1. [**Next: Tags (次へ: タグ)**] を選択します。

1. **[次へ: レビュー]** を選択します。

1. ポリシー名にわかりやすい名前 (**msk-serverless-tutorial-policy** など) を入力します。

1. [**Create policy**] (ポリシーの作成) を選択します。

**IAM ロールを作成し、ポリシーを適用する**

1. ナビゲーションペインで [**Roles**] (ロール) を選択します。

1. **Create role** (ロールの作成) を選択します。

1. [**Common use cases**] (一般的なユースケース) で [**EC2**] を選択し、[**Next: Permissions**] (次へ: アクセス許可) を選択します。

1. 検索ボックスに、このチュートリアル用に以前に作成したポリシーの名前を入力します。次に、ポリシーの左側にあるボックスをオンにします。

1. [**Next: Tags (次へ: タグ)**] を選択します。

1. **[次へ: レビュー]** を選択します。

1. ロール名に、わかりやすい名前 (**msk-serverless-tutorial-role** など) を入力します。

1. [**ロールの作成**] を選択してください。

**次のステップ**

[MSK サーバーレスクラスターにアクセスするためのクライアントマシンを作成する](create-serverless-cluster-client.md)

# MSK サーバーレスクラスターにアクセスするためのクライアントマシンを作成する
<a name="create-serverless-cluster-client"></a>

このステップでは、2 つのタスクを実行します。最初のタスクでは、Apache Kafka クライアントマシンとして使用する Amazon EC2 インスタンスを作成します。2 番目のタスクでは、マシンに Java および Apache Kafka ツールをインストールします。

**クライアントマシンを作成するには**

1. Amazon EC2 コンソール ([https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)) を開きます。

1. **[インスタンスを起動]** を選択します。

1. クライアントマシンにわかりやすい **[名前]** (**msk-serverless-tutorial-client** など) を入力します。

1. **[Amazon マシンイメージ (AMI) のタイプ]** については、**[Amazon Linux 2 AMI (HVM) - カーネル 5.10、SSD ボリュームタイプ]** を選択したままにします。

1. **t2.micro** インスタンスタイプを選択したままにします。

1. **[キーペア (ログイン)]** で、**[新しいキーペアの作成]** を選択します。**[キーペア名]** に **MSKServerlessKeyPair** と入力します。**[キーペアのダウンロード]** を選択します。既存のキーペアを使用することもできます。

1. **[ネットワーク設定]** で、**[編集]** を選択してください。

1. **[VPC]** で、サーバーレスクラスターの仮想プライベートクラウド (VPC) の ID を入力します。これは、先ほどクラスターの作成後に保存した ID を持つ Amazon VPC サービスに基づく VPC です。

1. **サブネット**には、クラスターの作成後に ID を保存したサブネットを選択します。

1. **[ファイアウォール (セキュリティグループ)]** では、クラスターに関連付けられたセキュリティグループを選択します。この値は、そのセキュリティグループから同じセキュリティグループ内へのトラフィックを許可するインバウンドルールが存在する場合に機能します。このようなルールにより、同じセキュリティグループのメンバー同士が互いに通信できるようになります。詳細については、Amazon VPC デベロッパーガイドの[セキュリティグループルール](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#SecurityGroupRules)を参照してください。

1. **[詳細情報]** セクションを展開し、[MSK サーバーレスクラスターのトピックの IAM ロールを作成する](create-iam-role.md) で作成した IAM ロールを選択します。

1. **[Launch]** (起動する) を選択します。

1. 左のナビゲーションペインの [**インスタンス**] を選択してください。新しく作成した Amazon EC2 インスタンスを表す行のチェックボックスをオンにします。これ以降は、このインスタンスのことを*クライアントマシン*と呼びます。

1. **[Connect]** (接続) を選択し、指示に従ってクライアントマシンに接続します。

**クライアントマシンで Apache Kafka クライアントツールを設定するには**

1. クライアントマシンに Java をインストールするには、次のコマンドを実行します。

   ```
   sudo yum -y install java-11
   ```

1. トピックの作成とデータの送信に必要な Apache Kafka ツールを入手するには、次のコマンドを実行します。

   ```
   wget https://archive.apache.org/dist/kafka/2.8.1/kafka_2.12-2.8.1.tgz
   ```

   ```
   tar -xzf kafka_2.12-2.8.1.tgz
   ```
**注記**  
Kafka アーカイブを抽出したら、`bin`ディレクトリ内のスクリプトに適切な実行アクセス許可があることを確認します。これを行うには、以下のコマンドを実行します。  

   ```
   chmod +x kafka_2.12-2.8.1/bin/*.sh
   ```

1. `kafka_2.12-2.8.1/libs` ディレクトリに移動し、次のコマンドを実行して Amazon MSK IAM JAR ファイルをダウンロードします。Amazon MSK IAM JAR を使用すると、クライアントマシンがクラスターにアクセスできるようになります。

   ```
   wget https://github.com/aws/aws-msk-iam-auth/releases/download/v2.3.0/aws-msk-iam-auth-2.3.0-all.jar
   ```

   このコマンドを使用すると、Amazon MSK IAM JAR ファイルの[他のバージョンまたは新しいバージョンをダウンロード](https://github.com/aws/aws-msk-iam-auth/releases)することもできます。

1. `kafka_2.12-2.8.1/bin` ディレクトリに移動します。次のプロパティ設定をコピーして、新しいファイルに貼り付けます。ファイルに `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.IAMClientCallbackHandler
   ```

**次のステップ**

[Apache Kafka トピックを作成する](msk-serverless-create-topic.md)

# Apache Kafka トピックを作成する
<a name="msk-serverless-create-topic"></a>

このステップでは、以前に作成したクライアントマシンを使用して、サーバーレスクラスターにトピックを作成します。

**Topics**
+ [トピックを作成するための環境のセットアップ](#msk-serverless-create-topic-prerequisites)
+ [トピックを作成し、そのトピックにデータを書き込む](#msk-serverless-create-topic-procedure)

## トピックを作成するための環境のセットアップ
<a name="msk-serverless-create-topic-prerequisites"></a>
+ トピックを作成する前に、MSK AWS IAM JAR ファイルを Kafka インストールの `libs/` ディレクトリにダウンロードしていることを確認してください。これをまだ実行していない場合は、Kafka の `libs/` ディレクトリで次のコマンドを実行します。

  ```
  wget https://github.com/aws/aws-msk-iam-auth/releases/download/v2.3.0/aws-msk-iam-auth-2.3.0-all.jar
  ```

  この JAR ファイルは、MSK Serverless クラスターでの IAM 認証に必要です。
+ Kafka コマンドを実行するときは、 に AWS MSK IAM JAR ファイル`classpath`が含まれていることを確認する必要がある場合があります。これを行うには、次のいずれかを実行します。
  + 次の例に示すように、Kafka ライブラリを含めるように`CLASSPATH`環境変数を設定します。

    ```
    export CLASSPATH=<path-to-your-kafka-installation>/libs/*:<path-to-your-kafka-installation>/libs/aws-msk-iam-auth-2.3.0-all.jar
    ```
  + 次の例に示すように、明示的な `classpath` を指定した完全な Java コマンドを使用して Kafka コマンドを実行します。

    ```
    java -cp "<path-to-your-kafka-installation>/libs/*:<path-to-your-kafka-installation>/libs/aws-msk-iam-auth-2.3.0-all.jar" org.apache.kafka.tools.TopicCommand --bootstrap-server $BS --command-config client.properties --create --topic msk-serverless-tutorial --partitions 6
    ```

## トピックを作成し、そのトピックにデータを書き込む
<a name="msk-serverless-create-topic-procedure"></a>

1. 次の `export` コマンドの *my-endpoint* を、クラスターの作成後に保存したブートストラップサーバー文字列に置き換えます。次に、クライアントマシン上の `kafka_2.12-2.8.1/bin` ディレクトリに移動し、`export` コマンドを実行します。

   ```
   export BS=my-endpoint
   ```

1. 次のコマンドを実行して、`msk-serverless-tutorial` と呼ばれるトピックを作成します。

   ```
   <path-to-your-kafka-installation>/bin/kafka-topics.sh --bootstrap-server $BS --command-config client.properties --create --topic msk-serverless-tutorial --partitions 6
   ```

**次のステップ**

[MSK サーバーレスでデータを生成および消費する](msk-serverless-produce-consume.md)

# MSK サーバーレスでデータを生成および消費する
<a name="msk-serverless-produce-consume"></a>

このステップでは、前のステップで作成したトピックを使用してデータを生成および使用します。

**メッセージを生成および消費するには**

1. 次のコマンドを実行して、コンソールプロデューサーを作成します。

   ```
   <path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-list $BS --producer.config client.properties --topic msk-serverless-tutorial
   ```

1. 必要なメッセージを入力して、**Enter** キーを押します。このステップを 2、3 回繰り返します。行を入力して **Enter** キーを押すたびに、その行は個別のメッセージとしてクラスターに送信されます。

1. クライアントマシンへの接続を開いたままにして、そのマシンへ 2 番目の別の接続を新しいウィンドウで開きます。

1. クライアントマシンへの 2 回目の接続を使用して、以下のコマンドでコンソールコンシューマーを作成します。*my-endpoint* を、クラスターの作成後に保存したブートストラップサーバー文字列に置き換えます。

   ```
   <path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server my-endpoint --consumer.config client.properties --topic msk-serverless-tutorial --from-beginning
   ```

   コンソール プロデューサーコマンドを使用したときに、以前に入力したメッセージが表示され始めます。

1. プロデューサーウィンドウにさらにメッセージを入力し、コンシューマーウィンドウに表示されるようにします。

これらのコマンドの実行中に`classpath`問題が発生した場合は、正しいディレクトリから実行していることを確認してください。また、MSK AWS IAM JAR が `libs` ディレクトリにあることを確認します。または、次の例に示すように、明示的な `classpath` を指定した完全な Java コマンドを使用して Kafka コマンドを実行できます。

```
java -cp "kafka_2.12-2.8.1/libs/*:kafka_2.12-2.8.1/libs/aws-msk-iam-auth-2.3.0-all.jar" org.apache.kafka.tools.ConsoleProducer —broker-list $BS —producer.config client.properties —topic msk-serverless-tutorial
```

**次のステップ**

[MSK サーバーレス用に作成したリソースを削除する](delete-resources.md)

# MSK サーバーレス用に作成したリソースを削除する
<a name="delete-resources"></a>

このステップでは、このチュートリアルで作成したリソースを削除します。

**クラスターの削除**

1. [https://console.aws.amazon.com/msk/home](https://console.aws.amazon.com/msk/home) で Amazon MSK コンソールを開きます。

1. クラスターの一覧で、このチュートリアルで作成したクラスターを選択します。

1. **[Actions]** (アクション) で**[Delete cluster]** (クラスターの削除) を選択します。

1. フィールドに「`delete`」を入力し、**[Delete]** (削除) を選択します。

**クライアントマシンの停止**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. Amazon EC2 インスタンスのリストで、このチュートリアルで作成したクライアントマシンを選択します。

1. **[Instance state]** (インスタンスの状態) を選択し、**[Terminate instance]** (インスタンスの終了) をクリックします。

1. **[Terminate]** (終了) を選択します。

**IAM ポリシーとロールを削除するには**

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. ナビゲーションペインで **[Roles]** (ロール) を選択します。

1. 検索ボックスに、このチュートリアル用に作成した IAM ロールの名前を入力します。

1. ロールを選択します。**[ロールの削除]** を選択し、削除を確定します。

1. ナビゲーションペインで [**Policies**] (ポリシー) を選択します。

1. 検索ボックスに、このチュートリアル用に作成したポリシーの名前を入力します。

1. ポリシーを選択すると、その概要ページが開きます。ポリシーの**[Summary]** (概要) ページで **[Delete policy]** (ポリシーの削除) を選択します。

1. **[削除]** を選択します。

# MSK サーバーレスクラスターの構成プロパティ
<a name="serverless-config"></a>

Amazon MSK はサーバーレスクラスターのブローカー設定プロパティを設定します。これらのブローカー構成プロパティの設定は変更できません。ただし、次のトピックレベルの構成プロパティは設定または変更できます。その他のトピックレベルの構成プロパティはすべて設定できません。


****  

| 設定プロパティ | デフォルト | Editable | 最大許容値 | 
| --- | --- | --- | --- | 
| [cleanup.policy](https://kafka.apache.org/documentation/#topicconfigs_cleanup.policy) | Delete | はい。ただし、トピック作成時に限ります |  | 
|  [compression.type](https://kafka.apache.org/documentation/#topicconfigs_compression.type)  | プロデューサー | はい |  | 
|  [max.message.bytes](https://kafka.apache.org/documentation/#topicconfigs_max.message.bytes)  | 1048588 | はい | 8388608 (8MiB) | 
|  [message.timestamp.difference.max.ms](https://kafka.apache.org/documentation/#topicconfigs_message.timestamp.difference.max.ms)  | long.max | はい |  | 
|  [message.timestamp.type](https://kafka.apache.org/documentation/#topicconfigs_message.timestamp.type)  | CreateTime | はい |  | 
|  [retention.bytes](https://kafka.apache.org/documentation/#topicconfigs_retention.bytes)  | 250 GiB | はい | 無制限。無制限の保持のため -1 に設定します | 
|  [retention.ms](https://kafka.apache.org/documentation/#topicconfigs_retention.ms)  | 7 日間 | はい | 無制限。無制限の保持のため -1 に設定します | 

これらのトピックレベルの構成プロパティを設定または変更するには、Apache Kafka コマンドラインツールを使用できます。設定方法の詳細と例については、公式のApache Kafka ドキュメントで「[3.2 Topic-level Configs](https://kafka.apache.org/documentation/#topicconfigs)」を参照してください。

**注記**  
MSK Serverless のトピックの segment.bytes 設定を変更することはできません。ただし、Kafka Streams アプリケーションは segment.bytes 設定値で内部トピックを作成しようとする場合があります。これは、MSK Serverless で許可されるものとは異なります。MSK Serverless で Kafka Streams を設定する方法については、「[MSK Express ブローカーおよび MSK Serverless での Kafka Streams の使用](use-kafka-streams-express-brokers-msk-serverless.md)」を参照してください。

Amazon MSK サーバーレス で Apache Kafka コマンドラインツールを使用する場合は、「[Amazon MSK サーバーレス入門ドキュメント](https://docs.aws.amazon.com/msk/latest/developerguide/create-serverless-cluster-client.html)」、「*To set up Apache Kafka client tools on the client machine*」のステップ 1～4 を完了していることを確認してください。さらに、コマンドに `--command-config client.properties` パラメータを含める必要があります。

例えば、次のコマンドを使用して retention.bytes トピック設定のプロパティを変更し、無制限の保持を設定できます。

```
<path-to-your-kafka-client-installation>/bin/kafka-configs.sh —bootstrap-server <bootstrap_server_string> —command-config client.properties --entity-type topics --entity-name <topic_name> --alter --add-config retention.bytes=-1
```

この例では、*<bootstrap server string>* を Amazon MSK サーバーレスクラスターのブートストラップサーバーエンドポイントに置き換え、*<topic\$1name>* を変更するトピックの名前に置き換えます。

`--command-config client.properties` パラメータでは、Kafka コマンドラインツールが適切な設定を使用して Amazon MSK サーバーレスクラスターと通信することを確認します。

# デュアルスタックネットワークタイプを設定する
<a name="serverless-config-dual-stack"></a>

 Amazon MSK は、Kafka バージョン 3.6.0 以降を使用する既存の MSK Serverless クラスターのデュアルスタックネットワークタイプを追加料金なしでサポートします。デュアルスタックネットワーキングでは、クラスターは IPv4 アドレスと IPv6 アドレスの両方を使用できます。デュアルスタックエンドポイントは IPv4 もサポートしているため、下位互換性が維持されます。Amazon MSK は、IPv6 IPv6-only サポートを提供します。

 デフォルトでは、クライアントは IPv4 ネットワークタイプを使用して Amazon MSK クラスターに接続します。作成したすべての新しいクラスターは、デフォルトで IPv4 も使用します。クラスターのネットワークタイプをデュアルスタックに更新するには、次のセクションで説明する前提条件を満たしていることを確認してください。次に、[UpdateConnectivity](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-connectivity.html#UpdateConnectivity) API を使用してデュアルスタックへの接続を更新します。

**注記**  
デュアルスタックネットワークタイプを使用するようにクラスターを更新すると、IPv4 ネットワークタイプに戻すことはできません。

**Topics**
+ [デュアルスタックネットワークタイプを使用するための前提条件](#msks-ipv6-prerequisites)
+ [MSK Serverless の IAM アクセス許可](#msks-ipv6-iam-permissions)
+ [クラスターにデュアルスタックネットワークタイプを使用する](#update-msks-network-type)
+ [デュアルスタックネットワークタイプの使用に関する考慮事項](#msks-dual-stack-considerations)

## デュアルスタックネットワークタイプを使用するための前提条件
<a name="msks-ipv6-prerequisites"></a>

クラスターにデュアルスタックネットワークタイプを設定する前に、クラスターの作成時に指定するすべてのサブネットがデュアルスタックネットワークタイプをサポートしている必要があります。クラスター内の 1 つのサブネットでもデュアルスタックをサポートしていない場合、クラスターのネットワークタイプをデュアルスタックに更新することはできません。

## MSK Serverless の IAM アクセス許可
<a name="msks-ipv6-iam-permissions"></a>

IAM アクセス許可を持っている必要があります。
+  `ec2:DescribeSubnets` 
+  `ec2:ModifyVpcEndpoint` 

すべての Amazon MSK アクションを実行するために必要なアクセス許可の完全なリストについては、「 マネージドポリシー: AmazonMSKFullAccess」を参照してください AWS 。 [ AmazonMSKFullAccess](https://docs.aws.amazon.com/msk/latest/developerguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonMSKFullAccess)

## クラスターにデュアルスタックネットワークタイプを使用する
<a name="update-msks-network-type"></a>

MSK Serverless クラスターのネットワークタイプは AWS マネジメントコンソール、、 AWS CLI、または AWS SDK を使用して更新できます。

------
#### [ Using AWS マネジメントコンソール ]

1. [https://console.aws.amazon.com/msk/home?region=us-east-1\$1/home/](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/) で Amazon MSK コンソールを開きます。

1. デュアルスタックネットワークタイプを設定する MSK Serverless クラスターを選択します。

1. クラスターの詳細ページで、**プロパティ**を選択します。

1. **ネットワーク設定**で、**ネットワークタイプの編集** を選択します。

1. **ネットワークタイプ**で、**デュアルスタック**を選択します。

1. **[Save changes]** (変更の保存) をクリックします。

------
#### [ Using AWS CLI ]

[ update-connectivity](https://docs.aws.amazon.com/cli/latest/reference/kafka/update-connectivity.html) API を使用して、既存の MSK Serverless クラスターのネットワークタイプをデュアルスタックに更新できます。次の例では、 ` update-connectivity` コマンドを使用してクラスターのネットワークタイプをデュアルスタックに設定します。

次の例では、サンプルクラスター ARN、arn:aws:kafka:*us-east-1*:* 123456789012*:cluster/*myCluster* /*12345678-1234-1234-1234-123456789012 -1* を実際の MSK クラスター ARN に置き換えます。現在のクラスターバージョンを取得するには、[describe-cluster](https://docs.aws.amazon.com/cli/latest/reference/kafka/describe-cluster.html) コマンドを使用します。

```
aws kafka update-connectivity \
    --cluster-arn "arn:aws:kafka:us-east-1:123456789012:cluster/myCluster/12345678-1234-1234-1234-123456789012-1" \
    --current-version "KTVPDKIKX0DER" \
    --connectivity-info '{
        "networkType": "DUAL"
    }
```

------
#### [ Using AWS SDK ]

次の例では、[UpdateConnectivity](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-connectivity.html#UpdateConnectivity) API を使用してクラスターのネットワークタイプをデュアルスタックに設定します。

次の例では、サンプルクラスター ARN arn:aws:kafka:*us-east-1*:*123456789012*:cluster/*myCluster*/*12345678-1234-1234-1234-123456789012-1* を実際の MSK クラスター ARN に置き換えます。現在のクラスターバージョンを取得するには、[DescribeCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DescribeCluster) API を使用します。

```
import boto3

client = boto3.client("kafka")

response = client.update_connectivity(
    ClusterArn="arn:aws:kafka:us-east-1:123456789012:cluster/myCluster/12345678-1234-1234-1234-123456789012-1",
    CurrentVersion="KTVPDKIKX0DER",
    ConnectivityInfo={
        "NetworkType": "DUAL"
    }
)
print("Connectivity update initiated:", response)
```

------

## デュアルスタックネットワークタイプの使用に関する考慮事項
<a name="msks-dual-stack-considerations"></a>
+ IPv6 サポートは現在、IPv6 専用ではなく、デュアルスタックモード (IPv4 \$1 IPv6) でのみ使用できます。 IPv6-only
+ デュアルスタックネットワークタイプは、マルチ VPC プライベート接続では使用できません。
+ 既存のクラスターのネットワークタイプを IPv4 からデュアルスタックに変更できるのは、そのすべてのサブネットがデュアルスタックネットワークタイプをサポートしている場合のみです。
+ デュアルスタックを有効にした後、IPv4 ネットワークタイプに戻すことはできません。元に戻すには、クラスターを削除して再作成する必要があります。
+ IAM アクセス許可を持っている必要があります。
  + `ec2:DescribeSubnets` および ` ec2:ModifyVpcEndpoint`

# MSK サーバーレスのクラスターをモニタリングする
<a name="serverless-monitoring"></a>

Amazon MSK が Amazon CloudWatch と統合することで、MSK サーバーレスクラスターのメトリクスを収集、表示、および分析できるようになります。次の表に示すメトリクスは、すべてのサーバーレスクラスターで使用できます。これらのメトリクスは、トピックの各パーティションの個別のデータポイントとして公開されるため、トピックレベルの見通しを得るための「SUM」統計としてご覧になることをお勧めします。

Amazon MSK は、1 分に 1 回の頻度で `PerSec` メトリクスを CloudWatch に公開します。つまり、1 分間の「SUM」統計は、`PerSec` メトリクスの 1 秒あたりのデータを正確に表しているということです。1 分を超える時間の 1 秒あたりのデータを収集するには、次の CloudWatch 数学式を使用します: `m1 * 60/PERIOD(m1)`。


**デフォルトのモニタリングレベルで使用可能なメトリクス**  

| 名前 | 表示可能なタイミング | ディメンション | 説明 | 
| --- | --- | --- | --- | 
| BytesInPerSec | プロデューサーがトピックに書き込んだ後 | クラスター名、トピック |  クライアントから受信した 1 秒あたりのバイト数。このメトリクスはトピックで使用できます。  | 
| BytesOutPerSec | コンシューマーグループがトピックから消費した後 | クラスター名、トピック |  クライアントに送信された 1 秒あたりのバイト数。このメトリクスはトピックで使用できます。  | 
| FetchMessageConversionsPerSec | コンシューマーグループがトピックから消費した後 | クラスター名、トピック |  トピックの 1 秒あたりのフェッチメッセージ変換回数。  | 
| EstimatedMaxTimeLag | コンシューマーグループがトピックから消費した後 | クラスター名、コンシューマーグループ、トピック  | MaxOffsetLag メトリクスの推定時間。 | 
| MaxOffsetLag | コンシューマーグループがトピックから消費した後 | クラスター名、コンシューマーグループ、トピック  | トピック内のすべてのパーティションにおける最大オフセットラグ。 | 
| MessagesInPerSec | プロデューサーがトピックに書き込んだ後 | クラスター名、トピック | トピックの 1 秒あたりの受信メッセージ数。 | 
| ProduceMessageConversionsPerSec | プロデューサーがトピックに書き込んだ後 | クラスター名、トピック | トピックの 1 秒あたりの生成メッセージ変換回数。 | 
| SumOffsetLag | コンシューマーグループがトピックから消費した後 | クラスター名、コンシューマーグループ、トピック  | トピック内のすべてのパーティションの集計オフセットラグ。 | 

**MSK サーバーレスメトリクスの表示**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) で CloudWatch コンソールを開きます。

1. ナビゲーションペインで、[**Metrics**] (メトリクス) から **[All metrics]** (すべてのメトリクス) を選択します。

1. メトリクスで「**kafka**」を検索します。

1. **<shared id="AWS"/>/Kafka / Cluster Name, Topic]** (<shared id="AWS"/>/Kafka / クラスター名、トピック) または **[<shared id="AWS"/>/Kafka / Cluster Name, Consumer Group, Topic]** (<shared id="AWS"/>/Kafka / クラスター名、コンシューマグループ、トピック) を選択すると、各種のメトリクスが表示されます。