Amazon MSK バージョンのサポート - Amazon Managed Streaming for Apache Kafka

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

Amazon MSK バージョンのサポート

このトピックでは、 Amazon MSK バージョンサポートポリシーと の手順について説明しますApache Kafka バージョンの更新。Kafka バージョンをアップグレードする場合は、「」で説明されているベストプラクティスに従ってくださいバージョンアップグレードのベストプラクティス

Amazon MSK バージョンサポートポリシー

このセクションでは、Amazon MSK がサポートする Kafka バージョンのサポートポリシーについて説明します。

  • すべての Kafka バージョンは、サポート終了日に達するまでサポートされます。サポート終了日の詳細については、「」を参照してくださいサポート対象の Apache Kafka バージョン。サポート終了日より前に、MSK クラスターを推奨 Kafka バージョン 以降にアップグレードします。Apache Kafka バージョンの更新の詳細については、「」を参照してくださいApache Kafka バージョンの更新。サポート終了日以降に Kafka バージョンを使用するクラスターは、推奨される Kafka バージョンに自動的にアップグレードされます。

  • MSK は、サポート終了日が公開された Kafka バージョンを使用する新しく作成されたクラスターのサポートを段階的に廃止します。

Apache Kafka バージョンの更新

既存の MSK クラスターを新しいバージョンの Apache Kafka に更新できます。以前のバージョンに更新することはできません。MSK クラスターの Apache Kafka バージョンを更新するときは、クライアント側ソフトウェアもチェックして、そのバージョンでクラスターの新しい Apache Kafka バージョンの機能を使用できることを確認してください。Amazon MSK は、サーバーソフトウェアのみを更新します。クライアントは更新されません。

更新中にクラスターの可用性を高める方法については、「高可用性クラスターの構築」を参照してください。

重要

クラスターの適切なサイズ設定: ブローカーあたりのパーティション数 で説明されている制限を超える MSK クラスターの Apache Kafka バージョンを更新することはできません。

を使用した Apache Kafka バージョンの更新 AWS Management Console
  1. https://console.aws.amazon.com/msk/ で Amazon MSK コンソールを開きます。

  2. Apache Kafka バージョンを更新する MSK クラスターを選択します。

  3. [プロパティ] タブの [Apache Kafka バージョン] セクションで [アップグレード] を選択します。

を使用した Apache Kafka バージョンの更新 AWS CLI
  1. 次のコマンドを実行し、 をクラスターの作成時に取得した Amazon リソースネーム (ARN) ClusterArnに置き換えます。クラスターの ARN がない場合は、すべてのクラスターを一覧表示することで見つけられます。詳細については、「Amazon MSK クラスターの一覧表示」を参照してください。

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

    Current-Cluster-Version を、クラスターの現在のバージョンに置き換えます。TargetVersion では、前のコマンドの出力から任意のターゲットバージョンを指定できます。

    重要

    クラスターのバージョンは単純な整数ではありません。クラスターの最新バージョンを検索するには、 DescribeClusterオペレーションまたは describe-cluster 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" }
  3. update-cluster-kafka-version オペレーションの結果を取得するには、次のコマンドを実行し、 をupdate-cluster-kafka-versionコマンドの出力で取得した ARN ClusterOperationArnに置き換えます。

    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 オペレーションを呼び出して、クラスターを更新できる Apache Kafka バージョンのリストを取得します。

  2. UpdateClusterKafkaVersion オペレーションを呼び出して、クラスターを互換性のある Apache Kafka バージョンのいずれかに更新します。

バージョンアップグレードのベストプラクティス

Kafka バージョンアップグレードプロセスの一環として実行されるローリング更新中にクライアントの継続性を確保するには、クライアントと Apache Kafka トピックの設定を次のように確認します。

  • トピックレプリケーション係数 (RF) を、2 つの AZ クラスター2の場合は最小値 に設定し、3 つの AZ クラスター3の場合は最小値 に設定します。の RF 値を指定すると、パッチ適用中にオフラインパーティションが発生する2可能性があります。

  • 最小同期レプリカ (minISR ) を最大値 RF - 1に設定して、パーティションレプリカセットが 1 つのレプリカがオフラインまたは過小レプリケーションされることを許容できるようにします。

  • 複数のブローカー接続文字列を使用するようにクライアントを設定します。クライアントの接続文字列に複数のブローカーがあると、クライアント I/O をサポートする特定のブローカーにパッチが適用され始めた場合にフェイルオーバーが可能になります。複数のブローカーとの接続文字列を取得する方法については、「Amazon MSK クラスターのブートストラップブローカーの取得」を参照してください。

  • 新しいバージョンで利用できる機能を利用するには、接続クライアントを推奨バージョン以上にアップグレードすることをお勧めします。クライアントのアップグレードは、MSK クラスターの Kafka バージョンのサポート終了 (EOL) 日の対象ではなく、EOL 日までに完了する必要はありません。Apache Kafka は、古いクライアントが新しいクラスターと連携できるようにする双方向のクライアント互換性ポリシーを提供します。その逆も同様です。

  • バージョン 3.x.x を使用する Kafka クライアントには、 acks=allおよび のデフォルトが付属している可能性がありますenable.idempotence=trueacks=allは以前のデフォルト とは異なりacks=1、同期内のすべてのレプリカがプロデュースリクエストを承認できるようにすることで、耐久性を高めます。同様に、 のデフォルトは以前は enable.idempotenceでしたfalse。デフォルトenable.idempotence=trueとして に変更すると、メッセージが重複する可能性が低くなります。これらの変更はベストプラクティス設定と見なされ、通常のパフォーマンスパラメータの範囲内でわずかなレイテンシーが追加される可能性があります。

  • 新しい MSK クラスターを作成するときは、推奨される Kafka バージョンを使用してください。推奨される Kafka バージョンを使用すると、最新の Kafka および MSK 機能を利用できます。