ECS で実行中タスクのログドライバーモードを確認する方法を教えてください

ECS で実行中タスクのログドライバーモードを確認する方法を教えてください

Clock Icon2025.05.08

困っていた内容

ECS の awslogs ログドライバーでは配信モード(ブロッキング / ノンブロッキング)が選択できる認識です。
既に起動済みの ECS タスクで、どのモードが選択されているか確認する方法を教えてください。

どう確認すればいいの?

コンテナ内から ECS タスクメタデータエンドポイントにアクセスしてください。

# コマンド例
curl ${ECS_CONTAINER_METADATA_URI_V4}

# 実行例
$ curl ${ECS_CONTAINER_METADATA_URI_V4} 
...
  "LogDriver": "awslogs",
  "LogOptions": {
    "awslogs-group": "/ecs/containerlogs",
    "awslogs-region": "ap-northeast-1",
    "awslogs-stream": "ecs/curl/cd189a933e5849daa93386466019ab50"
    "mode": "blocking"
  },

ECS の各コンテナには自動的に環境変数:${ECS_CONTAINER_METADATA_URI_V4}が設定されます。

この環境変数はタスクメタデータエンドポイントとなり、アクセスするとアクセス元のタスクやコンテナに関する情報が取得できます。

そのため、起動済みのコンテナの配信モードを確認したい場合は、タスクメタデータに含まれる「LogOptions」を確認してください。

コンテナへのアクセスは、必要に応じて ECS Execをご利用ください。

なお、配信モードは ECS タスク定義で設定する方法と、タスク定義では設定せずアカウントのデフォルト値を使用する方法があります。

https://dev.classmethod.jp/articles/amazon-ecs-set-default-log-driver-blocking-mode/

ECS タスク定義で設定している場合は、タスクが使用するタスク定義からも確認できます。

また、2025年5月時点の挙動として、AWS マネジメントコンソールや AWS CLI(describe-tasks)からは、実行中のコンテナのLogOptionsは確認できませんでした。

参考資料

${ECS_CONTAINER_METADATA_URI_V4}
このパスはコンテナのメタデータを返します。

LogOptions
コンテナに定義されたログドライバオプション。

${ECS_CONTAINER_METADATA_URI_V4}
このパスはコンテナのメタデータを返します。

LogOptions
コンテナに定義されたログドライバオプション。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.