Amazon ECS のメトリクス - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon ECS のメトリクス

Amazon ECS は、Amazon ECS コンテナエージェントを使用して、クラスターおよびサービスレベルで EC2 および Fargate 起動タイプの標準 CloudWatch メトリクス (CPU およびメモリ使用率など) を提供します。 EC2 CloudWatch Container Insights を使用してサービス、タスク、コンテナのメトリクスをキャプチャしたり、埋め込みメトリクス形式を使用して独自のカスタムコンテナメトリクスをキャプチャしたりすることもできます。

Container Insights は、クラスター、コンテナインスタンス、サービス、タスクレベルで CPU 使用率、メモリ使用率、ネットワークトラフィック、ストレージなどのメトリクスを提供する CloudWatch 機能です。Container Insights では、サービスとタスクを分析し、コンテナレベルで平均メモリまたは CPU 使用率を確認するのに役立つ自動ダッシュボードも作成します。コンテナインサイトは、カスタム指標を ECS/ContainerInsights カスタム名前空間 グラフ、アラーム、およびダッシュボードに使用できます。

個々の Amazon ECS クラスターでコンテナインサイトを有効にすることで、コンテナインサイトメトリクスを有効にすることができます。コンテナインスタンスレベルでメトリクスを確認したい場合は、Amazon ECS クラスター でデーモンコンテナとして CloudWatch エージェントを起動できますcwagent-ecs-instance-metric-cfn.yaml AWS CloudFormation テンプレートを使用して、 CloudWatch エージェントを Amazon ECS サービスとしてデプロイできます。重要なのは、この例では、適切なカスタム CloudWatchエージェント設定を作成し、それを キーを使用して Parameter Store に保存していることを前提としていますecs-cwagent-daemon-service

CloudWatch Container Insights のデーモンコンテナとしてデプロイされた CloudWatch エージェントには、 や などの追加のディスク、メモリContainerInstanceIdinstance_cpu_reserved_capacityおよび 、、 InstanceIdディメンションinstance_memory_reserved_capacityを持つ CPU ClusterNameメトリクスが含まれます。コンテナインスタンスレベルのメトリクスは、 CloudWatch 埋め込みメトリクス形式を使用して Container Insights によって実装されます。Amazon ECS コンテナインスタンスにからのガイドの CloudWatch エージェントのデプロイと設定のためにステートマネージャーとディストリビューターを設定する セクションを参照したアプローチを使用して、追加のシステムレベルのメトリクスを設定できます。

Amazon ECS でカスタムアプリケーションメトリクスを作成する

CloudWatch 埋め込みメトリクス形式 を使用して、アプリケーションのカスタムメトリクスを作成できます。awslogs ログドライバーは、 CloudWatch 埋め込みメトリックフォーマットステートメントを解釈できます。

CW_CONFIG_CONTENT 次の例の環境変数は、cwagentconfig Systems Manager パラメータストアパラメータに設定されています。この基本構成でエージェントを実行して、組み込みメトリック形式のエンドポイントとして構成できます。ただし、これは不要になりました。

{ "logs": { "metrics_collected": { "emf": { } } } }

複数のアカウントとリージョンに Amazon ECS デプロイがある場合は、 AWS Secrets Manager シークレットを使用して CloudWatch 設定を保存し、組織と共有するようにシークレットポリシーを設定できます。タスク定義で secrets オプションを使用して、CW_CONFIG_CONTENT 変数を設定します。

AWS 提供されたオープンソースの埋め込みメトリクスフォーマットライブラリをアプリケーションで使用し、 AWS_EMF_AGENT_ENDPOINT環境変数を指定して、埋め込みメトリクスフォーマットエンドポイントとして機能する CloudWatch エージェントサイドカーコンテナに接続できます。例えば、ecs_cw_emf_example サンプル Python アプリケーションを使用して、埋め込みメトリクス形式のエンドポイントとして設定された CloudWatch エージェントサイドカーコンテナに埋め込みメトリクス形式のメトリクスを送信できます。

Fluent Bit プラグインは、埋め込みメトリックフォーマットメッセージを送信するために CloudWatch も使用できます。また、 ecs_firelense_emf_example Amazon ECS サイドカーコンテナに FireLens 組み込みメトリクス形式のメトリクスを送信する Python アプリケーションのサンプルを使用することもできます。

埋め込みメトリクス形式を使用しない場合は、 AWS API または AWS SDK を使用して CloudWatch メトリクスを作成および更新できます。特定のユースケースがない限り、このアプローチは推奨されません。これは、コードにメンテナンスと管理オーバーヘッドを追加するためです。