ECS on Fargateで動いているプログラムのログをElasticsearch/Kibanaで可視化 : 当初の状況 あるサービスでECS on Fargate + Goの運用が始まり、取り急ぎGoが出力したログの運用を以下のようにしていました。 Goが出力したログの流れ awslogsドライバ経由でCloudWatchLogsに保存。 CloudWatchLogsのサブスクリプションを使ってKinesis Firehose経由でS3に保存 (ログの永続保存/コスト考慮的な) 運用を始めて出てきた要望 運用を始めると開発時とは違った形でログを調査することが増えてきて、ログ調査に対する要望が出てきました。 主な要望 CloudWatchLogsやS3上のログを見るのにAWS Console使うのは頻度的に手間/ストレス CloudWatchLogsやS3上のログにgrep的なことをするのにAWS ConsoleやAWS CLIだと調べにくい S3 Selectしてみると1レコードに複数ログ(logEvents部分)が入っているケースがあるので、1レコード1ログで見られるといい S3Selectした結果のサンプル [ { "messageType": "DATA_MESSAGE", "owner": "xxx", "logGroup": "/ecs-task", "logStream": "/ecs-task/xxxxxxx-4c18-4ab5-b1d6-7f8bff82a23d", "subscriptionFilters": [ "/ecs-task" ], "logEvents": [ { "id": "xxxxxxxx", ...