View a markdown version of this page

ZooKeeper から KRaft モードへの移行 - Amazon Managed Streaming for Apache Kafka

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

ZooKeeper から KRaft モードへの移行

UpdateClusterKafkaVersion API を使用して、既存の ZooKeeper ベースの MSK クラスターを KRaft モードに移行できます。移行はインプレースで実行されます。クラスターはプロセス全体で引き続き使用でき、データは移動されません。Amazon MSK は KRaft コントローラーをプロビジョニングし、クラスターメタデータを ZooKeeper から KRaft クォーラムに移行し、ZooKeeper ノードを自動的に廃止します。

前提条件

クラスターを ZooKeeper から KRaft モードに移行する前に、以下を確認してください。

  • クラスターが 3.9.x ZooKeeper モードで Apache Kafka バージョンを実行しています。クラスターが古いバージョンの場合は、3.9.xまず標準バージョンのアップグレードプロセスを使用して にアップグレードします。

  • クラスターは ACTIVE状態であり、保留中のオペレーションはありません。

  • ZooKeeper への直接アクセスに依存するツール (Cruise Control の古いバージョンやカスタム管理ツールなど) を使用する場合は、ZooKeeper の直接接続ではなく Kafka Admin APIs を使用するように更新します。

  • 標準 (プロビジョニング済み) クラスターの場合: ZooKeeper クライアントアクセスを無効にする必要があります。移行ZookeeperAccess.Enabled=falseを開始する前に、 UpdateConnectivity API を使用して を設定します。Express クラスターでは、このステップは必要ありません。

  • すべてのクライアントアプリケーションは、--bootstrap-server接続文字列ではなく、--zookeeper接続文字列を使用します。ZooKeeper 接続文字列は、移行後には使用できません。

  • クラスターでは、パブリックアクセスとオープンモニタリングの両方が同時に有効になっていません。

  • クラスターはkafka.t3.smallブローカーインスタンスを使用しません。

  • クラスターは動的アドバタイズされたリスナーを使用しません。advertised.listeners プロパティがブローカーで動的に設定されているかどうかを確認するには、次のコマンドを実行します。ここで、 $bsはクラスターのブートストラップサーバー接続文字列であり、出力に が含まれていないことを確認しますadvertised.listeners

    bin/kafka-configs.sh --bootstrap-server $bs --entity-type brokers --describe

    動的に設定されたプロパティの詳細については、「」を参照してください動的 Amazon MSK 設定

移行中の動作

ZooKeeper-to-KRaftを開始すると、Amazon MSK は次のステップを自動的に実行します。

  1. Amazon MSK は、クラスターに KRaft コントローラーノードをプロビジョニングします。これらのコントローラーは追加料金なしで含まれます。

  2. データプレーン移行の実行: ブローカーは、クライアントトラフィックの処理を継続しながら、メタデータに KRaft クォーラムを使用するように再設定されます。

  3. すべてのブローカーが KRaft クォーラムに登録されると、Amazon MSK は ZooKeeper ノードを廃止します。

  4. クラスター管理モードが KRaft に更新されます。

移行は長時間実行されるオペレーションであり、クラスターのサイズによっては数時間かかる場合があります。DescribeClusterOperation API を使用してオペレーションステータスをモニタリングできます。

重要

移行を元に戻すことはできません。クラスターを KRaft モードに移行すると、ZooKeeper モードに戻すことはできません。

を使用して移行する AWS CLI

  1. クラスターで使用可能なターゲットバージョンを確認します。

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

    クラスターが移行対象である場合、出力には KRaft .kraft ターゲットバージョン (サフィックス付き) が含まれます。

  2. KRaft ターゲットバージョンを指定して移行を開始します。

    aws kafka update-cluster-kafka-version \ --cluster-arn ClusterArn \ --current-version Current-Cluster-Version \ --target-kafka-version "3.9.x.kraft"
    重要

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

  3. 移行の進行状況をモニタリングします。

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

    オペレーション状態は を介して移行UPDATE_IN_PROGRESSし、 で完了しますUPDATE_COMPLETE

移行後

移行が完了した後:

  • クラスターは KRaft モードで動作します。すべてのメタデータは KRaft コントローラーによって管理されます。

  • ZooKeeper ノードは削除されます。ZooKeeper 接続文字列は使用できなくなりました。

  • --bootstrap-server 接続文字列を使用する場合、クライアントアプリケーションは変更なしで動作し続けます。

  • オープンモニタリングに必要な場合は、 ListNodes API を使用して KRaft コントローラーエンドポイントを表示できます。