Amazonは先頃、新たなログ集約サービスを、AWS Firelensという名称で発表した。Amazon ECS、Amazon EKS、Amazon Fargateを含む、すべてのAWSコンテナサービスに対して、ログのフィルタリングとルーティングを統一するサービスである。
Amazon Web ServiceのプリンシパルエバンジェリストであるMartin Beeby氏は、自身のブログ記事の中で、ログ集約サービスFirelensの使用法について書いている。
FireLensを使用することで、デプロイメントスクリプトを修正したり、別のソフトウェアを手作業でインストールしたり、あるいはコードを書き加えたりしなくても、コンテナログをストレージや分析ツールに送ることが可能になります。Amazon ECSやAWS Fargateの設定をいくつか更新することによって、デスティネーションを選択し、必要ならばFireLensがコンテナログを必要な場所に送るためのフィルタを定義します。
オープンソースのログプロジェクトとして広く採用されているFluentdやFluent Bitともシームレスに動作する。さらに、そのいずれかを使用して、ストリームログをAmazon CloudWatch、Amazon Kinesis Data Firehose、あるいはDatadogやSplunk、New Relicといったパートナ製品にリダイレクトすることも可能である。Amazonが提供するAWS for Fluent Bitイメージだけでなく、独自のFluentあるいはFluent Bitイメージを使用することもできる。
Source: https://aws.amazon.com/blogs/containers/under-the-hood-firelens-for-amazon-ecs-tasks/
送信先へのルーティングには、AWS SDK、AWS CLI、あるいはAWS Manegement Consoleを使用してタスク定義を生成し、設定する。さらに、IAM(Identity Access Manegement)ロールを生成して、そのタスクに必要なAWSサービスへのパーミッションを設定することも必要だ。例えば、あるコンテナがログをKinesis Data Firehoseにルーティングする場合、そのタスクにはfirehose:PutRecordBatch APIをコールするパーミッションが必要である。
AWSパートナであるSysdigでは、オープンソースのKubernetesランタイムセキュリティプロジェクトであるFalco(現在はCNCFに寄贈されている)を、Fluent Bitと統合した。これを導入すれば、FalcoのセキュリティデータをAWS FireLensにストリームして、ログ管理を容易にすることができる。Falcoの統合に関するSysdigのプレスリリースで、SysdigのチーフオープンソースアドボケートであるKris Nova氏は、次のように述べている。
SysdigがFireLensプレビューへの参加を依頼されたのは、Falcoが実現するセキュアなクラウドネイティブ環境をAWSが評価したからです。FireLensと統合することによって、すべてのユーザが、そのアプローチに関わらず、クラウドでの開発、クラウドでのセキュリティ確保、クラウドでの監査を容易に実現できるものと期待しています。
AWSのFirelensに対しては、MicrosoftのAzure MonitorのAzure Log Analysticsサービスなど、他のクラウドプロバイダも同じようなログ集約機能を提供している。Azureのこのサービスでは、クラスタがサポート対象のアウトプットプラグイン経由でAKS(Azure Container Services)を運用していない場合には、Fluent BitからのKubernetesログも受け入れる。
最後に、AWS Firelensは現在、Amazon ECSおよびAWS Fargateをサポートするすべてのリージョンで利用可能である。また、Amazon ECSおよびAWS Fargate上でFireLensを使用するロギングアーキテクチャのサンプルがGitHubで公開されている。その他の詳細は、AWSのドキュメントページで確認が可能だ。