はじめに
2025 年 10 月 14 日、AWS は Amazon ECS / EKS 向けのログ収集ツールである AWS for Fluent Bit 3.0.0 をリリースしました。
このバージョンは Fluent Bit version 4.1.0 と Amazon Linux 2023 をベースとした大規模なメジャーアップデートです。
OpenTelemetry のネイティブサポート、大幅なパフォーマンス向上、セキュリティ強化によりコンテナログ収集の効率性と機能性が大きく向上しました。
本リリースは全 AWS 商用リージョンおよび AWS GovCloud (US)リージョンで即座に利用可能となっています。
本記事では 新機能の詳細、従来バージョンとの違い 、実際の使い方、コストや制限事項についてまとめています。
新機能の概要
AWS for Fluent Bit 3.0.0 は従来のバージョンから大幅にアップグレードされ、Fluent Bit version 4.1.0 と Amazon Linux 2023 をベースとした最新版となっています。
主な特徴
主な特徴としては以下の 4 つです。
- OpenTelemetry ネイティブサポート
- Amazon Linux 2023 ベース
- パフォーマンスの向上
- セキュリティの強化
OpenTelemetry ネイティブサポート
OpenTelemetry Protocol(OTLP)のネイティブサポートが追加され、単一のFluent Bitプロセスでログ、メトリクス、トレースを処理できるようになりました。
追加のサイドカーコンテナが不要になり、リソース使用量とコストの削減が期待できます。
Amazon Linux 2023 ベース
ベースイメージが Amazon Linux 2 から Amazon Linux 2023 にアップグレードされました。
2029 年 6 月 30 日までの長期サポートと最新のセキュリティパッチが提供されます。
パフォーマンスの向上
JSON解析が高速化され、vCPUあたりのログ処理量が増加し、レイテンシが低減されました。
セキュリティの強化
TLS最小バージョンと暗号制御が追加され、組織のセキュリティポリシーに準拠した設定が容易になりました。
何が変わったのか
今回発表された AWS for Fluent Bit 3.0.0 により、コンテナログ収集のパフォーマンスが大きく変わりました。
従来の課題と新バージョンによる変化を見ていきましょう。
従来の課題
主な課題としては以下の 4 つがありました。
- 複数サイドカーによるリソース消費
- 古いベースイメージとサポート終了
- 限定的なパフォーマンス
- 基本的なTLS設定のみ
複数サイドカーによるリソース消費
OpenTelemetry のログ、メトリクス、トレースを収集するには、Fluent Bit に加えて OpenTelemetry Collector などの追加サイドカーコンテナが必要でした。
各サイドカーが CPU とメモリを消費し、特にマイクロサービス環境では大量の Pod やタスクに対してリソースコストが積み上がっていました。
古いベースイメージとサポート終了
従来バージョンのベースイメージは Amazon Linux 2 を使用しており、サポート終了を見据えた移行計画が必要な状況でした。
また、Fluent Bit 1.9.10 という古いバージョンがベースとなっており、最新機能やパフォーマンス改善の恩恵を受けられませんでした。
限定的なパフォーマンス
従来の JSON 解析では大量の JSON 形式ログを処理する際のパフォーマンスに限界がありました。
vCPU あたりの処理量も限られており、高トラフィック環境ではリソース増強が必要になるケースがありました。
基本的なTLS設定のみ
TLS 設定は基本的なオプションのみで、TLS 最小バージョンの強制や特定の暗号スイートの指定ができませんでした。
厳格なセキュリティポリシーやコンプライアンス要件に対応するには、追加の設定や工夫が必要でした。
新機能による変化
新バージョンにより、従来の課題がすべて解決されました。
バージョンとベースイメージのアップグレード
項目 | 2.x 系(従来版) | 3.0.0(新版) |
---|---|---|
Fluent Bit バージョン | 1.9.10 | 4.1.0 |
ベースイメージ | Amazon Linux 2 | Amazon Linux 2023 |
サポート期限(ベースイメージ) | 2026 年 6 月 30 日 | 2029 年 6 月 30 日 |
OpenTelemetry サポート | 外部 Collector が必要 | ネイティブ統合 |
JSON 解析性能 | 標準 | 高速化 |
TLS 制御 | 基本設定のみ | バージョン・暗号指定可能 |
AWS SigV4 認証 | 手動設定 | 統合サポート |
サイドカーコンテナの削減
OpenTelemetry Protocol(OTLP)のネイティブサポートにより、追加のサイドカーコンテナなしでログ、メトリクス、トレースを収集できるようになりました。
これにより、各タスクや Pod で使用する CPU とメモリが削減され、大規模環境ほどコスト削減効果が大きくなります。
長期サポートとセキュリティ
Amazon Linux 2023 への移行により、2029 年 6 月 30 日までの長期サポートが保証されました。
また、最新のセキュリティパッチが継続的に提供されるためセキュリティリスクが低減されます。
パフォーマンスの向上
JSON 解析の高速化により、同じ vCPU リソースでより多くのログを処理できるようになりました。
これは、ログ量が多い環境でのコスト削減やレイテンシ改善につながります。
詳細なセキュリティ制御
TLS最小バージョン(TLSv1.1、TLSv1.2、TLSv1.3)の指定や暗号制御が可能になり、組織のセキュリティポリシーに準拠した設定を強制できるようになりました。
PCI DSS や SOC 2 などのコンプライアンス要件への対応が容易になります。
使い方
AWS for Fluent Bit 3.0.0 の新機能を実際に試すための設定例と動作確認方法を説明します。
OpenTelemetry ネイティブサポートの実例
OTLP ネイティブサポートを活用して、アプリケーションからの OTLP ログを Fluent Bit で CloudWatch Logs に転送する設定例です。
Fluent Bit 追加設定ファイルの作成
Fluent Bit で OTLP ログを受信するための設定ファイルを作成します。
[INPUT]
Name opentelemetry
Listen 0.0.0.0
Port 4318
[OUTPUT]
Name cloudwatch_logs
Match *
region ap-northeast-1
log_group_name /ecs/otlp-logs
log_stream_prefix otlp
auto_create_group true
カスタムDockerイメージの作成
設定ファイルを含むカスタム Fluent Bit イメージを作成します。
Dockerfile の作成
FROM public.ecr.aws/aws-observability/aws-for-fluent-bit:3.0.0
# 設定ファイルをコピー
COPY extra.conf /extra.conf
Docker イメージのビルド
# Dockerイメージをビルド
docker build -t aws-for-fluent-bit-otlp:3.0.0 .
# ビルドされたイメージを確認
docker images | grep aws-for-fluent-bit-otlp
Amazon ECR へのプッシュ
作成したカスタムイメージを Amazon ECR にプッシュします。
ECR リポジトリの作成
aws ecr create-repository \
--repository-name aws-for-fluent-bit-otlp \
--region ap-northeast-1
イメージのプッシュ
# ECR にログイン
aws ecr get-login-password --region ap-northeast-1 | \
docker login --username AWS --password-stdin \
<account-id>.dkr.ecr.ap-northeast-1.amazonaws.com
# イメージにタグ付け
docker tag aws-for-fluent-bit-otlp:3.0.0 \
<account-id>.dkr.ecr.ap-northeast-1.amazonaws.com/aws-for-fluent-bit-otlp:3.0.0
# プッシュ
docker push <account-id>.dkr.ecr.ap-northeast-1.amazonaws.com/aws-for-fluent-bit-otlp:3.0.0
タスク定義の作成
カスタムイメージを使用したタスク定義を作成します。
{
"family": "fluent-bit-otlp-custom",
"networkMode": "awsvpc",
"requiresCompatibilities": ["FARGATE"],
"cpu": "1024",
"memory": "2048",
"executionRoleArn": "arn:aws:iam::<account-id>:role/ecsTaskExecutionRole",
"taskRoleArn": "arn:aws:iam::<account-id>:role/ecsTaskRole",
"containerDefinitions": [
{
"name": "log-router",
"image": "<account-id>.dkr.ecr.ap-northeast-1.amazonaws.com/aws-for-fluent-bit-otlp:3.0.0",
"essential": true,
"firelensConfiguration": {
"type": "fluentbit",
"options": {
"config-file-type": "file",
"config-file-value": "/extra.conf"
}
},
"portMappings": [
{
"containerPort": 4318,
"protocol": "tcp"
}
],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/fluent-bit-otlp",
"awslogs-region": "ap-northeast-1",
"awslogs-stream-prefix": "otlp",
"awslogs-create-group": "true"
}
}
},
{
"name": "app",
"image": "curlimages/curl:latest",
"essential": false,
"command": [
"sh",
"-c",
"sleep 20 && while true; do TIMESTAMP=$(date +%s)000000000 && echo \"Sending with timestamp: $TIMESTAMP\" && curl -X POST http://localhost:4318/v1/logs -H 'Content-Type: application/json' --data-raw \"{\\\"resourceLogs\\\":[{\\\"resource\\\":{\\\"attributes\\\":[{\\\"key\\\":\\\"service.name\\\",\\\"value\\\":{\\\"stringValue\\\":\\\"test-service\\\"}}]},\\\"scopeLogs\\\":[{\\\"logRecords\\\":[{\\\"timeUnixNano\\\":\\\"$TIMESTAMP\\\",\\\"severityText\\\":\\\"INFO\\\",\\\"body\\\":{\\\"stringValue\\\":\\\"Test message at $(date)\\\"}}]}]}]}\" && sleep 30; done"
],
"logConfiguration": {
"logDriver": "awsfirelens",
"options": {
"Name": "cloudwatch_logs",
"region": "ap-northeast-1",
"log_group_name": "/ecs/app-otlp",
"log_stream_prefix": "app",
"auto_create_group": "true"
}
}
}
]
}
サービスの作成
- 上記のタスク定義を登録
- サービスを作成してデプロイ
ログの確認
タスクをデプロイ後、ログを確認します。
Fluent Bit の起動確認
aws logs tail /ecs/fluent-bit-otlp --follow
[info] [input:opentelemetry:opentelemetry.3] listening on 0.0.0.0:4318
[info] [output:cloudwatch_logs:cloudwatch_logs.0] Creating log stream otlpv1_logs
OTLP 形式のログデータを確認
CloudWatch Logs コンソールで /ecs/otlp-logs ロググループ内の otlpv1_logs ストリームを開くと、OTLP 形式で送信されたログデータが保存されています。
{
"log": "Test message at Thu Oct 16 17:03:04 UTC 2025",
"ecs_cluster": "<ecs-cluster-name>",
"ecs_task_arn": "arn:aws:ecs:ap-northeast-1:...",
"ecs_task_definition": "fluent-bit-otlp-custom:1"
}
OTLP の body.stringValue が log フィールドに自動変換され、ECS メタデータ(cluster、task_arn、task_definition)が自動的に付与されていることが確認できます。
コストと制限事項
AWS for Fluent Bit 3.0.0 を導入する前に知っておくべきコストと制限事項について説明します。
料金体系
AWS for Fluent Bit 3.0.0 自体は無料で利用できますが、ログの送信先となる AWS サービスで料金が発生します。
AWS for Fluent Bit
- コンテナイメージの使用は無料
- 標準的な Amazon ECS および AWS 料金のみが発生
CloudWatch Logs
- 取り込み:$ 0.50 / GB(無料枠:月 5 GB)
- 保存:$ 0.03 / GB / 月
- クエリ実行:$ 0.005 / GB スキャン
その他の送信先サービス
Amazon S3
- ストレージクラスに応じた料金
- 標準ストレージ:$0.023/GB/月(東京リージョン)
Amazon Kinesis Data Firehose
- $0.029/GB(最初の 500 TB/月)
Amazon Kinesis Data Streams
- シャードあたりの時間料金 + PUT ペイロードユニット料金
コスト例
東京リージョンにおいて、CloudWatch Logs を使用した場合の環境規模ごとの月額概算は以下のようになります。
環境規模 | ログ量 / 日 | 保持期間 | 月額概算 |
---|---|---|---|
小規模 | 100 MB | 7 日 | $ 1 ~ 2 |
中規模 | 1 GB | 30 日 | $ 13 ~ 15 |
大規模 | 10 GB | 30 日 | $ 150 ~ |
コスト最適化のポイント
- 保持期間を適切に設定(本番環境 30 日、開発環境 7 日など)
- まずは非本番環境でログ量を測定
- ログレベルを適切に設定
- 不要なログをフィルタリング
- Infrequent Access ログクラスの活用
制限事項
機能面の制限
- cloudwatch_logs 出力プラグインでは TLS 関連パラメータがサポートされていない(CloudWatch Logs API は常に HTTPS で通信するため設定不要)
- Amazon Linux 2023 ベースのため、パッケージマネージャーが yum から dnf に変更
- Fluent Bit のメジャーバージョンアップのため、既存設定の動作確認が必要
運用上の注意点
- 2.x 系から 3.0.0 へのアップグレードは互換性を確認してから実施
- CloudWatch Logs の保持期間を明示的に設定しないと、ログ蓄積に伴うコスト増加が発生
- ログフォーマットやメタデータが期待通りか確認してから本番適用
まとめ
今回発表された AWS for Fluent Bit 3.0.0 は、Fluent Bit 4.1.0 と Amazon Linux 2023 をベースとした大規模なメジャーアップデートです。
OpenTelemetry のネイティブサポートにより追加のサイドカーコンテナが不要になり、JSON 解析の高速化によって同じリソースでより多くのログを処理できるようになりました。
2029 年 6 月 30 日までの長期サポートが保証され、TLS 制御の強化によりセキュリティポリシーへの準拠も容易になっています。
小規模環境であれば月額 $ 1 ~ 2 程度から始められるため、まずは非本番環境で実際に試してみることをお勧めします。
参考リンク
https://aws.amazon.com/jp/about-aws/whats-new/2025/10/aws-fluent-bit-3-0-0-based-4-1-0/
https://github.com/aws/aws-for-fluent-bit