ECS fargateでログドライバにawslogsを利用するときはprefixを指定する

ECS fargateのログドライバでawslogsを利用するとき、awslogs-groupおよびawslogs-stream-prefixを指定する必要がある。 特にawslogs-stream-prefixはECS on EC2の場合は任意だが、ECS on fargateの場合は必須になるので注意が必要。

docs.aws.amazon.com

また、awslogs-stream-prefixを指定すると実際のログストリーム名は prefix-name/container-name/ecs-task-id となる。 多くの場合はECSサービスやECSタスク定義ごとに区別できるように awslogs-groupを指定すると思うので、awslogs-stream-prefixにECSサービス名を指定するとロググループ名と重複するし、コンテナ名を指定するとawslogs-stream-prefix内でコンテナ名が重複してしまう。

このためawslogs-stream-prefixにはコンテナの種類を指定するとよさそう。アプリなのかサイドカーなのか、サイドカーでも監視目的なのか、外部システムへの中継(アンバサダー)なのか、など。コンテナ数が多くないので分類不要であれば名前を重複させてよさそう。

サイドカーのパターンなどは分散システムデザインパターンなどを参考にするのがよさそう。