Amazon MSK クラスターをアップグレードするときの問題をトラブルシューティングする方法を教えてください。

所要時間1分
0

Amazon Managed Streaming for Apache Kafka (Amazon MSK) クラスターをアップグレードする際の問題のトラブルシューティングを行う必要があります。

解決策

考慮事項とベストプラクティス

Amazon MSK クラスターをアップグレードする前に、次の点に注意してください。

  • クラスターのレプリケーション係数は必ず 3 以上の値に設定してください。レプリケーション係数を 1 に設定すると、ローリング更新中にパーティションがオフラインになる可能性があります。レプリケーション係数を 2 に設定すると、データが失われる可能性があります。
  • 最小同期レプリカ数 (miniSR) を (レプリケーション係数 - 1) 以下の値に設定します。MiniSR 値がレプリケーション係数と等しいと、ローリング更新中にクラスターへの生成が妨げられる場合があります。MiniSR を 2 に設定すると、1 つのレプリカがオフラインの場合でも、3 方向にレプリケートされたトピックを使用できます。
  • クライアント接続文字列には、各アベイラビリティーゾーンのブローカーが少なくとも 1 つ含まれていることを確認してください。クライアントの接続文字列に複数のブローカーがあると、特定のブローカーが更新のためにオフラインになったときにフェイルオーバーできます。
  • クラスターの構成を更新する前に、クラスターが ACTIVE 状態であることを確認します。
  • トラフィックが少ない時間帯にクラスターをアップグレードするのがベストプラクティスです。Apache Kafka バージョンのアップグレードに必要な時間は、クラスター内のブローカーの数によって異なります。
  • クラスターバージョンをアップグレードする場合、クラスターに他の更新を行うことはできません。アップグレード中もクラスターから生成して使用することができます。
  • レプリケーションが不十分なトピック (例:レプリケーション係数が 3 未満のトピック) 以外は、アップグレード中にデータが失われるリスクはありません。このような状況でも、ブローカーがオンラインになると、パーティションは再び利用可能になります。
  • Amazon MSK クラスターの Apache Kafka バージョンは、Amazon MSK コンソールまたは AWS コマンドラインインターフェイス (AWS CLI) を使用して更新できます。
  • Amazon MSK クラスターを新しいバージョンの Apache Kafka に更新できます。古いバージョンに更新することはできません。
  • Amazon MSK はサーバーソフトウェアのみを更新し、クライアントは更新しません。そのため、クラスターをアップグレードするときは、新しい Apache Kafka バージョンの機能をクライアントソフトウェアバージョンで使用できることを確認してください。
  • インスタンスタイプを更新しても、クラスターのバージョンはアップグレードされません。

アップグレードの監視

Amazon MSK クラスターを作成するときは、クラスターに必要な Apache Kafka バージョンを指定します。また、クラスターを作成した後で、以下を実行してクラスターを新しいバージョンの Apache Kafka に更新することもできます。

  1. Amazon MSK コンソールを開きます。
  2. アップグレードするクラスターを選択します。
  3. [プロパティ] タブの [Apache Kafka バージョン] セクションで [アップグレード] を選択します。

詳細については、Apache Kafka バージョンの更新を参照してください。

更新の進行状況は [クラスター操作] タブで監視できます。このタブから、[アップグレードの初期化]、[Apache Kafka バージョンの更新]、[アップグレードの完了] など、アップグレードの各ステップを監視できます。アップグレードが 17% に達した後、アップグレードが完了するまでに数時間かかる場合があります。Amazon MSK はローリングベースでアップグレードを実行することに注意してください。クラスターから一度に 1 つのブローカーが取り出され、その Kafka バージョンがアップグレードされます。このブローカーは、次のブローカーが削除されると再参加します。このプロセスは、最後のブローカーが新しい Kafka バージョンにアップグレードされるまで続きます。

よくあるエラーのトラブルシューティング

クラスター構成の更新中のエラー。クラスター構成の更新中に問題が発生しました。問題が解決しない場合は、AWS サポートにお問い合わせください。ブローカーあたりのパーティション数が推奨制限を超えています。さらにブローカーを追加し、ブローカーごとのパーティションを推奨制限を下回るように再配置してから、リクエストを再試行してください。

または

アップグレードが「アップグレードを初期化中」の段階で止まる

このエラーは、ブローカーごとのパーティション数が 推奨値を超えると発生します。ブローカーでのパーティションの処理は、リソースを大量に消費するワークロードです。推奨される制限よりも多くのパーティションがあると、クラスターで利用可能なリソースに負担がかかる可能性があります。この状況では、クラスターで次の操作を実行することはできません。

  • クラスター構成を更新する
  • クラスターの Apache Kafka バージョンを更新する
  • クラスターをより小さなブローカータイプに更新する

このエラーを解決するには、以下を試してください。

  • クラスター内のブローカーの数を増やします。次に、パーティションを再割り当てして、ブローカーごとのパーティション数を減らします。Amazon CloudWatch メトリックスを使用して、ブローカーごとのパーティション数を知ることができます。パーティション数は、レプリカを含む、ブローカーごとのトピックパーティションの総数です。デフォルトでは、トピックごとのパーティション数は 1 で、3-AZ クラスターのレプリケーション係数は 3 です。したがって、レプリケーション係数 3 にはメインパーティションが含まれるため、トピックごとに 3 つのパーティションがあります。同じクラスター上の別のブローカーにパーティションを移動するには、[kafka-reassign-partitions.sh] という名前のパーティション再割り当てツールを使用できます。
  • 未使用のトピックを削除して、パーティションの数を減らします。次のコマンドを使用すると、クラスターのすべてのトピックとパーティションの数を確認できます。コマンドを実行する前に、必ず Amazon Elastic Compute Cloud (Amazon EC2) マシンに Apache Kafka クライアントをセットアップしてください。
bin/kafka-topics.sh —bootstrap-server localhost:9092 —describe —topic test
AWS公式
AWS公式更新しました 1年前
コメントはありません