翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
メタデータ管理
Amazon MSK では、Apache ZooKeeper または KRaft メタデータ管理モードがサポートされています。
Amazon MSK の Apache Kafka バージョン 3.7.x から、ZooKeeper モードの代わりに KRaft モードを使用するクラスターを作成できます。KRaft ベースのクラスターは、メタデータを管理する際に Kafka 内のコントローラーに依存します。
ZooKeeper モード
Apache ZooKeeper
クラスターが ZooKeeper モードを使用している場合は、以下の手順を使用して Apache ZooKeeper 接続文字列を取得できます。ただし、Kafka 2.5 で --zookeeper
フラグが非推奨になり、Kafka 3.0 から削除されたため、BootstrapServerString
を使用してクラスターに接続し、管理オペレーションを実行することをお勧めします。
を使用した Apache ZooKeeper 接続文字列の取得 AWS Management Console
https://console.aws.amazon.com/msk/
で Amazon MSK コンソールを開きます。 -
このテーブルには、このアカウントにある現在のリージョンのすべてのクラスターが表示されます。説明を表示するには、クラスターの名前を選択します。
-
[Cluster summary] (クラスターの概要) ページで、[View client information] (クライアント情報の表示) を選択します。これにより、ブートストラップブローカーと Apache ZooKeeper 接続文字列が表示されます。
AWS CLIを使用した Apache ZooKeeper 接続文字列の取得
クラスターの Amazon リソースネーム (ARN) がわからない場合は、アカウント内のすべてのクラスターを一覧表示することで見つけることができます。詳細については、「Amazon MSK クラスターを一覧表示する」を参照してください。
-
Apache ZooKeeper 接続文字列とクラスターに関するその他の情報を取得するには、
ClusterArn
をクラスターの ARN に置き換えて次のコマンドを実行します。aws kafka describe-cluster --cluster-arn
ClusterArn
この
describe-cluster
コマンドの出力は、次の JSON の例のようになります。{ "ClusterInfo": { "BrokerNodeGroupInfo": { "BrokerAZDistribution": "DEFAULT", "ClientSubnets": [ "subnet-0123456789abcdef0", "subnet-2468013579abcdef1", "subnet-1357902468abcdef2" ], "InstanceType": "kafka.m5.large", "StorageInfo": { "EbsStorageInfo": { "VolumeSize": 1000 } } }, "ClusterArn": "arn:aws:kafka:us-east-1:111122223333:cluster/testcluster/12345678-abcd-4567-2345-abcdef123456-2", "ClusterName": "testcluster", "CreationTime": "2018-12-02T17:38:36.75Z", "CurrentBrokerSoftwareInfo": { "KafkaVersion": "2.2.1" }, "CurrentVersion": "K13V1IB3VIYZZH", "EncryptionInfo": { "EncryptionAtRest": { "DataVolumeKMSKeyId": "arn:aws:kms:us-east-1:555555555555:key/12345678-abcd-2345-ef01-abcdef123456" } }, "EnhancedMonitoring": "DEFAULT", "NumberOfBrokerNodes": 3, "State": "ACTIVE", "ZookeeperConnectString": "10.0.1.101:2018,10.0.2.101:2018,10.0.3.101:2018" } }
前述の JSON の例では、
describe-cluster
コマンドの出力のZookeeperConnectString
キーを示しています。クラスターにトピックを作成する必要がある場合に備え、このキーに対応する値をコピーして保存します。重要
Apache ZooKeeper 接続文字列を取得できるようにするには、Amazon MSK クラスターが
ACTIVE
の状態である必要があります。クラスターがまだCREATING
状態である場合、describe-cluster
コマンドの出力にZookeeperConnectString
は含まれません。このような場合、数分待ってから、クラスターがACTIVE
状態になった後にdescribe-cluster
を再度実行します。
API を使用した Apache ZooKeeper 接続文字列の取得
API を使用して Apache ZooKeeper 接続文字列を取得するには、「DescribeCluster」を参照してください。
KRaft モード
Amazon MSK では、Kafka バージョン 3.7.x で KRaft (Apache Kafka Raft) のサポートが導入されました。Apache Kafka コミュニティでは、Apache ZooKeeper に代わって Apache Kafka クラスターのメタデータ管理に使用できる KRaft が開発されました。KRaft モードでは、クラスターメタデータは ZooKeeper ノードではなく Kafka クラスターの一部である Kafka コントローラーのグループ内で伝播されます。KRaft コントローラーは追加料金なしで含まれており、追加のセットアップや管理は必要ありません。KRaft の詳細については、「KIP-500
MSK の KRaft モードに関する注意点をいくつか示します。
-
KRaft モードは、新しいクラスターでのみ使用できます。クラスターが作成されると、メタデータモードを切り替えることはできません。
MSK コンソールでは、クラスター作成ウィンドウで Kafka バージョン 3.7.x を選択し、KRaft チェックボックスをオンにすると、Kraft ベースのクラスターを作成できます。
MSK API の
CreateCluster
またはCreateClusterV2
オペレーションを使用して KRaft モードでクラスターを作成するには、3.7.x.kraft
をバージョンとして使用する必要があります。3.7.x
をバージョンとして使用して、ZooKeeper モードでクラスターを作成します。ブローカーあたりのパーティション数は、KRaft ベースのクラスターと ZooKeeper ベースのクラスターで同じです。ただし、KRaft では、クラスターでより多くのブローカーをプロビジョニングすることで、各クラスターでより多くのパーティションをホストできます。
Amazon MSK で KRaft モードを使用するために必要な API の変更はありません。ただし、クライアントが現在も
--zookeeper
接続文字列を使用している場合は、--bootstrap-server
接続文字列を使用してクラスターに接続するようにクライアントを更新する必要があります。--zookeeper
フラグは Apache Kafka 2.5 で非推奨になり、Kafka 3.0 以降では削除されています。そのため、クラスターへのすべての接続には、最新の Apache Kafka クライアントバージョンと--bootstrap-server
接続文字列を使用することをお勧めします。ZooKeeper モードは、ZooKeeper もサポートされているすべての Apache Kafka リリースバージョンで引き続き使用できます。Apache Kafka バージョンのサポート終了と今後の更新の詳細については、「サポート対象の Apache Kafka バージョン」を参照してください。
使用するすべてのツールが、ZooKeeper 接続なしで Kafka Admin API を使用できることを確認する必要があります。クラスターを Cruise Control に接続する更新された手順については、「Amazon LinkedInで Apache Kafka の Cruise Control を使用する MSK」を参照してください。Cruise Control には、ZooKeeper なしで Cruise Control を実行する
手順もあります。 -
管理アクションのためにクラスターの KRaft コントローラーに直接アクセスする必要はありません。ただし、オープンモニタリングを使用してメトリクスを収集する場合は、クラスターに関するコントローラー関連以外のメトリクスを収集するため、コントローラーの DNS エンドポイントも必要です。これらの DNS エンドポイントは、MSK コンソールから、または ListNodes API オペレーションを使用して取得できます。KRaft ベースのクラスター用にオープンモニタリングを設定する更新された手順については、「Prometheus で MSK プロビジョンドクラスターをモニタリングする」を参照してください。
ZooKeeper モードのクラスターを介して KRaft モードのクラスターをモニタリングする必要がある追加の CloudWatch メトリクスはありません。MSK では、クラスターで使用される KRaft コントローラーが管理されます。
-
--bootstrap-server
接続文字列を使用して、KRaft モードのクラスターで ACL の管理を継続できます。ACL の管理に--zookeeper
接続文字列を使用しないでください。「Apache Kafka ACL」を参照してください。 KRaft モードでは、クラスターのメタデータは Kafka 内の KRaft コントローラーに保存され、外部の ZooKeeper ノードには保存されません。したがって、ZooKeeper ノードと同様に、コントローラーノードへのアクセスを個別に制御する必要はありません。