

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

# Apache Kafka バージョンのアップグレード
<a name="version-upgrades"></a>

既存の MSK クラスターを新しいバージョンの Apache Kafka にアップグレードできます。クラスターの Kafka バージョンをアップグレードする前に、クライアント側のソフトウェアのバージョンが新しい Kafka バージョンの機能をサポートしていることを確認してください。

アップグレード中にクラスターの高可用性にする方法については、「[高可用性クラスターの構築](bestpractices.md#ensure-high-availability)」を参照してください。

**を使用して Apache Kafka バージョンをアップグレードする AWS マネジメントコンソール**

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

1. ナビゲーションバーで、クラスターを作成したリージョンを選択します。

1. アップグレードする MSK クラスターを選択します。

1. **Properties** タブで **[Apache Kafka バージョン]** セクションで **Upgrade** を選択します。

1. **Apache Kafka バージョン** セクションで、次の操作を行います。

   1. *Apache Kafka バージョンの選択*ドロップダウンリストで、アップグレードするターゲットバージョンを選択します。例えば、[**3.9.x**] を選択します。

   1. (オプション) **バージョンの互換性を表示**を選択して、クラスターの現在のバージョンと利用可能なアップグレードバージョンとの互換性を検証します。次に、**選択**を選択して続行します。
**注記**  
Amazon MSK は、ほとんどの Apache Kafka バージョンへのインプレースアップグレードをサポートしています。ただし、ZooKeeper ベースの Kafka バージョンから KRaft ベースのバージョンにアップグレードする場合は、新しいクラスターを作成する必要があります。次に、データを新しいクラスターにコピーし、クライアントを新しいクラスターに切り替えます。

   1. (オプション) **クラスター設定の更新**チェックボックスを選択して、新しいバージョンと互換性のある設定更新を適用します。これにより、新しいバージョンの機能と改善が可能になります。

      既存のカスタム設定を維持する必要がある場合は、このステップをスキップできます。
**注記**  
サーバー側のアップグレードでは、クライアントアプリケーションは自動的に更新されません。
クラスターの安定性を維持するために、バージョンダウングレードはサポートされていません。

   1. **アップグレード** を選択して、プロセスを開始します。

**を使用して Apache Kafka バージョンをアップグレードする AWS CLI**

1. *ClusterArn*をクラスターの作成時に取得したAmazon リソースネーム (ARN) に置き換えて、次のコマンドを実行します。クラスターの ARN がない場合は、すべてのクラスターを一覧表示することで見つけられます。詳細については、「[Amazon MSK クラスターを一覧表示する](msk-list-clusters.md)」を参照してください。

   ```
   aws kafka get-compatible-kafka-versions --cluster-arn ClusterArn
   ```

   このコマンドの出力には、クラスターをアップグレードできる Apache Kafka バージョンのリストが含まれています。次の例のようになります。

   ```
   {
       "CompatibleKafkaVersions": [
           {
               "SourceVersion": "2.2.1",
               "TargetVersions": [
                   "2.3.1",
                   "2.4.1",
                   "2.4.1.1",
                   "2.5.1"
               ]
           }
       ]
   }
   ```

1. *ClusterArn*をクラスターの作成時に取得したAmazon リソースネーム (ARN) に置き換えて、次のコマンドを実行します。クラスターの ARN がない場合は、すべてのクラスターを一覧表示することで見つけられます。詳細については、「[Amazon MSK クラスターを一覧表示する](msk-list-clusters.md)」を参照してください。

   *Current-Cluster-Version* を、クラスターの現在のバージョンに置き換えます。*TargetVersion* では、前のコマンド出力から任意のターゲットバージョンを指定できます。
**重要**  
クラスターのバージョンは単純な整数ではありません。クラスターの最新バージョンを検索するには、[DescribeCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DescribeCluster) オペレーションまたは [describe-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/describe-cluster.html) AWS CLI コマンドを使用します。サンプルのバージョンは `KTVPDKIKX0DER` です。

   ```
   aws kafka update-cluster-kafka-version --cluster-arn ClusterArn --current-version Current-Cluster-Version --target-kafka-version TargetVersion
   ```

   前のコマンドの出力は以下の JSON のようになります。

   ```
   {
       
       "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2",
       "ClusterOperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef"
   }
   ```

1. `update-cluster-kafka-version` オペレーションの結果を取得するには、*ClusterOperationArn*を `update-cluster-kafka-version` コマンドの出力で取得した ARN に置き換えて、次のコマンドを実行します。

   ```
   aws kafka describe-cluster-operation --cluster-operation-arn ClusterOperationArn
   ```

   この `describe-cluster-operation` コマンドの出力は、次の JSON の例のようになります。

   ```
   {
       "ClusterOperationInfo": {
           "ClientRequestId": "62cd41d2-1206-4ebf-85a8-dbb2ba0fe259",
           "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2",
           "CreationTime": "2021-03-11T20:34:59.648000+00:00",
           "OperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef",
           "OperationState": "UPDATE_IN_PROGRESS",
           "OperationSteps": [
               {
                   "StepInfo": {
                       "StepStatus": "IN_PROGRESS"
                   },
                   "StepName": "INITIALIZE_UPDATE"
               },
               {
                   "StepInfo": {
                       "StepStatus": "PENDING"
                   },
                   "StepName": "UPDATE_APACHE_KAFKA_BINARIES"
               },
               {
                   "StepInfo": {
                       "StepStatus": "PENDING"
                   },
                   "StepName": "FINALIZE_UPDATE"
               }
           ],
           "OperationType": "UPDATE_CLUSTER_KAFKA_VERSION",
           "SourceClusterInfo": {
               "KafkaVersion": "2.4.1"
           },
           "TargetClusterInfo": {
               "KafkaVersion": "2.6.1"
           }
       }
   }
   ```

   `OperationState` の値が `UPDATE_IN_PROGRESS` の場合は、しばらく待ってから再度 `describe-cluster-operation` コマンドを実行します。オペレーションが完了すると、`OperationState` の値は `UPDATE_COMPLETE` になります。Amazon MSK がオペレーションを完了するのに必要な時間はさまざまであるため、オペレーションが完了するまで繰り返しチェックする必要がある場合があります。

**API を使用して Apache Kafka バージョンを更アップグレードする**

1. [GetCompatibleKafkaVersions](https://docs.aws.amazon.com//msk/1.0/apireference/compatible-kafka-versions.html#GetCompatibleKafkaVersions) オペレーションを呼び出して、クラスターをアップグレードできる Apache Kafka バージョンのリストを取得します。

1. [UpdateClusterKafkaVersion](https://docs.aws.amazon.com//msk/1.0/apireference/clusters-clusterarn-version.html#UpdateClusterKafkaVersion) オペレーションを呼び出して、クラスターを互換性のある Apache Kafka バージョンのいずれかにアップグレードします。