Amazon Managed Streaming for Apache Kafka (Amazon MSK) クラスターをアップグレードする際の問題のトラブルシューティングを行う必要があります。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
考慮事項とベストプラクティス
Amazon MSK クラスターをアップグレードする前に、次のベストプラクティスを確認してください。
- クラスターのレプリケーション係数を 3 以上に設定します。レプリケーション係数が 1 の場合、ローリング更新中にパーティションがオフラインになる可能性があります。レプリケーション係数が 2 の場合、データが失われる可能性があります。
- 最小同期レプリカ数 (minISR) を (レプリケーション係数 - 1) 以下の値に設定します。minISR 値がレプリケーション係数と等しい場合、ローリング更新中にクラスターの生成が妨げられる可能性があります。MinISR が 2 の場合、1 つのレプリカがオフラインであっても、3 方向に複製されたトピックを利用できます。
- クラスターの構成を更新する前に、クラスターが ACTIVE ステータスであることを確認します。
- 新しい Amazon MSK クラスターを作成する際は、推奨 Apache Kafka バージョンを使用してください。
- クライアント文字列には、各アベイラビリティーゾーンのブローカーを 1 つ以上含めます。クライアントの接続文字列に複数のブローカーを含めることで、特定のブローカーが更新でオフラインになった場合にフェイルオーバーできます。
- トピック管理には、Apache Kafka AdminClient バージョン 2.8.0 以降を使用します。
- 接続しているクライアントを推奨バージョン以上にアップグレードします。クライアントのアップグレードは、Amazon MSK クラスターの Kafka バージョンのサポート終了 (EOL) 日の影響を受けません。
注: Apache Kafka には双方向のクライアント互換性ポリシーが用意されており、古いクライアントは新しいクラスターで動作し、新しいクライアントは古いクラスターと連携することができます。詳細については、Apache Kafka のウェブサイトで「互換性」を参照してください。
- トラフィックが少ない期間にクラスターをアップグレードします。Apache Kafka バージョンのアップグレードに必要な時間は、クラスター内のブローカーの数によって異なります。
注: クラスターバージョンをアップグレードすると、バージョンのアップグレードが完了するまで他の更新を行うことはできません。ただし、アップグレード中もクラスターからデータを生成して使用することができます。
注: インスタンスタイプを更新しても、クラスターバージョンは自動的にアップグレードされません。
詳細については、「バージョンアップグレードのベストプラクティス」を参照してください。
アップグレードを監視する
Amazon MSK クラスターを作成する際、クラスターに必要な Apache Kafka バージョンを指定できます。または、クラスターの作成後にクラスターを新しいバージョンの Apache Kafka に更新することもできます。
Amazon MSK コンソールの [クラスター操作] タブで更新の進捗を監視できます。アップグレードが 17% に達した後、アップグレードが完了するまでに数時間かかる場合があります。
注: Amazon MSK は、ローリングリスタートプロセスでアップグレードを実行します。Amazon MSK は、一度に 1 つのブローカーをクラスターから除外し、Kafka バージョンをアップグレードします。アップグレードされたブローカーがクラスターに再度参加すると、Amazon MSK はその次のブローカーを除外します。このプロセスは、Amazon MSK が最後のブローカーを新しい Kafka バージョンにアップグレードするまで続行されます。
クラスターのアップグレードの進行状況をモニタリングするには、AWS CLI で describe-cluster-operations コマンドを実行します。
aws kafka describe-cluster-operation —cluster-operation-arn ClusterOperationArn
操作のステータスが Incomplete または Failed である場合は、AWS サポートにお問い合わせください。
エラーのトラブルシューティング
ブローカーのパーティション操作は大量のシステムリソースを消費します。パーティションの数が推奨制限を超えた場合、クラスター内の利用可能なリソースに過負荷がかかる可能性があります。クラスターリソースに過負荷がかかっている場合、クラスター構成の更新、クラスターの Apache Kafka バージョン更新、クラスターのブローカータイプ縮小などの操作を実行できません。ブローカーあたりのパーティション数が推奨値を超えた場合、次のいずれかのエラーが発生します。
"Error updating cluster configuration There was a problem updating cluster configuration.If the problem persists, contact AWS Support.The number of partitions per broker is above the recommended limit.Add more brokers and rearrange the partitions per broker to be below the recommended limit, then retry the request."
または、
"Upgrade is stuck in the stage 'Initializing upgrade'"
上記のエラーを解決するには、次の手順を実行します。