クラスターメトリクス
Amazon CloudWatch Observability EKS add-onを使用して、EKSクラスター用のCloudWatch Container Insightsを有効にします。このアドオンは、ノード、ポッド、コンテナなどのクラスターのさまざまな側面に関するメトリクスを収集し、CloudWatchに送信するCloudWatchエージェントをデプロイします。
内部的には、CloudWatchエージェントはOpenTelemetry上に構築されています。OTel Container Insightsを有効にすると、エージェントは組み込みのOpenTelemetryパイプラインを実行します:AWS Container Insights Receiverがノードとコンテナのテレメトリを収集し、AWS CloudWatch EMF ExporterがそれをCloudWatch Embedded Metric Format (EMF)に変換してCloudWatch Logsに送信します。そこでメトリクスはContainerInsights名前空間に表示されます。アドオンがこのパイプラインを管理するため、デプロイや保守するコレクターマニフェスト、Helmチャート、DaemonSetはありません。エージェントはDaemonSetとして実行されるため、クラスター内の各ノードで1つのポッドが実行されます。
CloudWatchエージェントに権限を付与する
CloudWatchエージェントは、メトリクスとログをCloudWatchに送信するためのIAM権限が必要です。Amazon EKS Pod Identityを使用して権限を付与します。これにより、Kubernetes Service AccountがIAMロールを引き受けることができます。静的な認証情報は必要ありません。
Pod Identityの前提条件であるEKS Pod Identity Agentアドオンは、prepare-environmentによって既にクラスターにインストールされています。
CloudWatchエージェントが引き受けることができるIAMロールを作成します。信頼ポリシーはEKS Pod Identityサービスプリンシパルを許可し、AWSマネージドCloudWatchAgentServerPolicyをアタッチします:
アドオンがamazon-cloudwatch名前空間に作成するcloudwatch-agent Service Accountにロールを関連付けます:
Container Insightsを有効化する
次に、OTel Container Insightsを有効にしてamazon-cloudwatch-observabilityアドオンをインストールします。これは、コンソールまたはAWS CLIのどちらを使用してもインストールされる同じアドオンで、CloudWatchエージェントをデプロイして設定します:
otelContainerInsights.enabled設定はOTel Container Insightsをオンにします。デフォルトでは有効になっていません。
アドオンはamazon-cloudwatch名前空間にCloudWatchエージェントをDaemonSetとしてデプロイします。エージェントポッドが実行されていることを確認します:
NAME READY STATUS RESTARTS AGE
cloudwatch-agent-4frxx 1/1 Running 0 31s
cloudwatch-agent-5rvpc 1/1 Running 0 31s
cloudwatch-agent-tptl7 1/1 Running 0 31s
エージェントはPod Identityを介してIAMロールを引き受けるため、すぐにメトリクスをCloudWatchに送信できます。メトリクスを表示するには、CloudWatchコンソールを開き、Container Insightsに移動します:
CloudWatchにデータが表示され始めるまで2〜3分かかることがあります。
CloudWatchコンソールを開く

コンソールを探索して、クラスター、名前空間、ポッドなど、メトリクスが表示されるさまざまな方法を確認することができます。