ログ CloudWatch
ログはロググループとログストリームに分かれおり、ロググループが大分類を表してログストリームを包含する。
- ロググループ
- ログストリーム
ロググループ
ロググループは、タスク定義のContainerDefinitionsで指定する。
CloudFormationはロググループを以下のように指定する。
LogConfiguration:
LogDriver: awslogs
Options:
awslogs-group: "/ecs/example"
awslogs-region: ap-northeast-1
awslogs-stream-prefix: ecs # これはログストリームのプレフィックス
実行中のタスクもログストリームにログが出力される。
つまり実行中のサービスのログもログストリームに出力される。
ログストリーム
ロググループの中に作成される。
- 命名規則:
/コンテナ名/コンテナランタイム ID
コンテナランタイムIDはタスク(ID)と同じハッシュ値。
つまりタスクが複数のコンテナを持つ場合のコンテナランタイムIDはすべて同じ。
- ログを
CloudWatchに自動出力している場合、ロググループを削除するとタスク実行時にエラーになる
CloudWatchとECS
https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/using_awslogs.html
prefix-name/container-name/ecs-task-id
AWS::ECS::TaskDefinition.Properties.ContainerDefinitions.LogConfigurationで定義する。
ContainerDefinitionがMyAppContainerの場合。
LogConfiguration:
LogDriver: awslogs
Options:
awslogs-group: "/ecs/sample"
awslogs-region: ap-northeast-1
awslogs-stream-prefix: ecs # prefix-name
ロググループ /ecs/sample/のタスク実行ログは、
/ecs/MyAppContainer/タスクIdになる。