投稿日: Jun 21, 2022

Amazon ECS では、AWS FargateAmazon EC2 の両方について、AWS for Fluent Bit によるマルチラインロギングを完全にサポートしました。AWS Fluent Bit は、高速かつ軽量なログフォワーダーでオープンソースプロジェクトである Fluent Bit の AWS ディストリビューションです。Amazon ECS ユーザーはこの機能を使用して、AWS Fargate または Amazon EC2 で実行中のコンテナ化されたアプリケーションによって生成された部分的なログメッセージを 1 つのメッセージに再結合し、トラブルシューティングや分析を簡単に行えます。

コンテナ化されたアプリケーションの場合、ベストプラクティスは運用システムの標準出力 (stdout や stderr など) にログを送信することです。AWS Fargate コンテナランタイムは、最適なパフォーマンス結果を得るために、最大バッファサイズが 16 KB を超える長いログメッセージを部分的なメッセージに分割します。その結果、ユーザーは長いアプリケーションログメッセージを処理する際に、最終的な送信先 (分析ソリューションやログストレージ) でスタックトレースが発生するといった課題に直面する可能性があります。

そこで、AWS Fluent Bit は ECS EC2 と Fargate の両方で、本来 1 つのコンテキストに属するものの、複数のレコードやログ行に分割されている部分的なログメッセージを連結できるようにする、マルチラインフィルター機能をサポートするようになりました。ユーザーは AWS for Fluent Bit を使用して、コンテナ化されたアプリケーションからのログを Amazon CloudWatch や Amazon Kinesis Data Firehose といった AWS のサービスや、ログの分析やストレージのためのパートナーソリューションにルーティングできます。Amazon ECS のお客様は、FireLens を使用して AWS for Fluent Bit を設定するか、サイドカーやデーモンとして AWS for Fluent Bit を手動でセットアップできます。

この新しい機能は、AWS for Fluent Bit バージョン 2.24.0 以降で利用可能です。マルチラインフィルターの詳細については、こちらをご覧ください。