ステータスが HEALING になった Amazon Managed Streaming for Apache Kafka (Amazon MSK) クラスターをトラブルシューティングしたいと考えています。
解決策
Amazon MSK クラスターは、サービスが問題に対処するための内部操作を実行する際、HEALING ステータスに移行します (たとえば、ブローカーが応答せず、Amazon MSK が内部操作を実行して応答のないブローカーを修正する場合)。
クラスターが HEALING ステータスである間も、そのクラスターを使用してデータを生成、利用することは可能です。ただし、クラスターが ACTIVE ステータスに戻るまでは、Amazon MSK API または AWS コマンドラインインターフェイス (AWS CLI) の更新操作を実行できません。
Amazon MSK の Amazon CloudWatch メトリクスを参照し、クラスターが HEALING ステータスになる原因を確認します。
次の手順を実行します。
- Amazon CloudWatch コンソールを開きます。
- ナビゲーションペインで [メトリクス] を選択し、[すべてのメトリクス] を選択します。
- [参照] タブで [AWS/Kafka] を選択します。
- [メトリクス] で [クラスター名] を選択します。
- 監視するクラスターを選択します。
注: ActiveControllerCount または OfflinePartitionsCount メトリクスが急増している場合、1 つ以上のブローカーに異常があります。異常のあるブローカーが原因でクラスターが HEALING ステータスに移行した可能性があります。
- ブローカーレベルのメトリクスを確認するには、[メトリクス] で [ブローカー ID] および [クラスター名] を選択します。
- リストから、クラスター名とメトリクス、および CpuUser と CpuSystem を含むエントリを選択します。
- クラスターにおいて、全エントリの CpuUser および CpuSystem の合計値が平均で 60% 以上に達しているかどうかを確認します。平均値が 60% を超える場合は、高 CPU 使用率が原因でブローカーが HEALING ステータスに移行した可能性があります。詳細については、「CPU 使用率を監視する」を参照してください。
次の原因でも、Amazon MSK クラスターが HEALING ステータスに移行する可能性があります。
- ハードウェア障害が原因で、Amazon MSK がノードまたは Amazon Elastic Block Store (Amazon EBS) ボリュームを交換する必要がある。
- ノードはブローカーの Amazon MSK パフォーマンス SLA を満たしていないため、パフォーマンス効率を改善するために Amazon MSK がノードを交換する必要が生じた。
Amazon MSK は完全マネージドサービスなので、ブローカーには自己管理ワークフローが備わっており、自身に対して修正アクションを実行します。たとえば、ブローカーの Amazon EBS ボリュームに異常が発生した場合、Amazon MSK はそのボリュームの状態を一定期間監視します。この期間にボリュームが正常化した場合は、AWS MSK はアクションを実行しません。この期間を過ぎてもボリュームの異常が解決されない場合、Amazon MSK は自動的に当該ボリュームを交換します。Amazon MSK がこれらのアクションを実行すると、クラスターは HEALING ステータスに移行します。ただし、ベストプラクティスに準拠する場合は、Amazon MSK クラスターを利用できます。
Amazon MSK クラスターが無期限に HEALING ステータスに留まる
クラスターのワークロード高負荷
クラスターのワークロードが高く、AWS MSK がブローカーを継続的に交換している場合、クラスターは無期限に HEALING ステータスに留まる可能性があります。クラスターのワークロード高負荷を避けるために、本番クラスターのホスティングには t3.small インスタンスを使用しないようにしてください。m5 インスタンスを使用する場合は、選択したサイズがクラスターに適していることを確認してください。ワークロードに応じてクラスターに適切なサイズを判断するために、CPU 使用率、パーティション数、スループットなどを監視します。
また、ブローカーごとのパーティション数が推奨値を超えないようにしてください。
Auto Scaling グループが新しいインスタンスを起動できない
依存関係の欠落などの内部的な問題がある場合、Auto Scaling グループは新しくインスタンスを起動できず、クラスターは 無期限に HEALING ステータスになります (
たとえば、クラスターの作成時に指定した AWS Key Management Service (AWS KMS) キーにアクセスできなくなった場合)。
内部イベントが EC2 インスタンスの可用性に影響している
次の原因でも、クラスターが無期限に HEALING ステータスになる可能性があります。
- 内部イベントが基盤 Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの可用性に影響している。
- 内部イベントが、アベイラビリティーゾーンまたは AWS リージョン内の Amazon EBS の遅延を引き起こしている。
クラスターが無期限に HEALING ステータスに留まっているものの、ワークロード負荷が原因ではない場合は、AWS サポートにお問い合わせください。
関連情報
MSK プロビジョンドクラスターの状態を把握する
Amazon MSK 開発者ガイドへようこそ
MSK プロビジョンドクラスターに接続する
Apache Kafka クライアントのベストプラクティス