AWS上のログとメトリクスをどのエージェントで集めるか。CloudWatch AgentとFluentd(td-agent)は競合というより役割が違い、多くの現場では併用が正解です。加えてtd-agentは既にサポート終了しており、新規採用には注意が必要です。判断軸を決定表で整理します。

「EC2やオンプレのログをどう集めるか」「CPU以外のメトリクス(メモリ・ディスク)をどう取るか」を考え始めると、必ず突き当たるのがエージェント選定です。候補は主に CloudWatch AgentFluentd(かつての td-agent)、そしてコンテナ時代の Fluent Bit。本記事では、日本のSIer・情シス・エンタープライズ運用の実務目線で、この3つの使い分けを判断軸と決定表に落とし込みます。まず結論から言えば、両者は排他ではなく併用が現実解になる場面が多く、選定の勘所は「送信先」と「ログ加工の複雑さ」です。

01CloudWatch Agent とは何か(AWS純正の統合エージェント)

CloudWatch Agent(統合CloudWatchエージェント)は、AWSが公式に提供する収集エージェントです。最大の特徴は、メトリクスとログを1つのエージェントで両方扱えること。EC2標準のCPU使用率などに加え、OS内部からしか見えないメモリ使用率・ディスク空き容量・スワップといった、いわゆる「カスタムメトリクス」をCloudWatchへ送れます。ログについても、指定したファイルをそのままCloudWatch Logsのロググループへ転送します。

現場のコツ:「メモリとディスクのアラームを上げたい」という要件は非常に多いですが、EC2の標準メトリクスにはメモリもディスク空き容量も含まれません。ここは黙ってCloudWatch Agentを入れるのが定石です。アラーム設計の全体像はCloudWatchアラーム設計の勘所CloudWatch監視のはじめの一歩もあわせてご覧ください。

02Fluentd / td-agent とは何か(汎用ログコレクタ/ルータ)

Fluentdは、特定のクラウドに依存しない汎用ログコレクタ/ルータです。データをinput → filter → outputというパイプラインで処理し、あらゆる入力を受けて、あらゆる出力先へ振り分けられるのが本質です。CloudWatch Agentが「AWSへ送る」ことに最適化されているのに対し、Fluentdは送信先を選ばないのが強みです。

そしてtd-agentは、このFluentdをTreasure Data社が「すぐ使える安定版パッケージ」として配布していたものです。Fluentd本体とtd-agentは同一物ではなく、td-agentは配布物(ディストリビューション)という位置づけである点を押さえてください。

03【最重要】td-agent は既にサポート終了。新規は Fluent Package を

ここが本記事で最も注意喚起したい点です。td-agentは既にサポート終了(EOL)しています。Fluentd公式のアナウンスによれば、td-agent 42023年12月末でEOLとなり、以降はメンテナンス・新リリース・セキュリティ更新のいずれも行われません。

現場のコツ:提案書や構築手順書に「td-agentを導入」と書くのは、もう避けましょう。EOL製品の新規採用は、エンタープライズのセキュリティレビューで確実に指摘されます。新規はFluent Package(現行はv6 LTS)またはFluentd本体、コンテナなら次章のFluent Bitを指定するのが正解です。既存でtd-agentが動いている環境は、後方互換を保ったままfluent-packageへの移行を計画してください。

04Fluent Bit — コンテナ/K8s時代の軽量な現実解

コンテナやKubernetesが前提の環境では、FluentdよりFluent Bitが現実的な選択肢になります。Fluent BitはCNCFのGraduatedプロジェクトで、Fluentdと同じFluent組織のもとにある兄弟プロジェクトです。C言語製で、非常に軽量(最小フットプリントは数百KB規模)なため、DaemonSetとして各ノードに常駐させても負荷が小さいのが利点です。

ざっくり言えば、Fluentd=サーバ集約・複雑なルーティング向けのフルスタックFluent Bit=各ノード/各コンテナに置く軽量なフォワーダという役割分担で、両者を組み合わせる構成も一般的です。

05使い分けの判断軸 — 5つの問いで決める

選定は「どれが優れているか」ではなく「要件がどこにあるか」で決まります。次の5つの問いに答えると、自然と候補が絞れます。

パターンA:CloudWatch Agent パターンB:Fluentd / Fluent Bit EC2 / オンプレ メトリクス+ログ CloudWatch Agent CloudWatch Metrics / Logs サーバ / コンテナ 多様なログ源 Fluentd / Fluent Bit input→filter→output S3 Open Search SIEM
図:CloudWatch Agentは「メトリクス+ログをCloudWatchへ」に最適。Fluentd/Fluent Bitは多様なログを加工して複数の宛先へ振り分ける。

06決定表 — 判断軸から推奨エージェントを引く

上の判断軸を1枚の表にまとめます。実務では「メトリクスはCloudWatch Agent、複雑なログ配送はFluentd/Fluent Bit」という併用が最も多いパターンです。

要件 / 判断軸 推奨エージェント メモリ/ディスク等のメトリクスが必要 CloudWatch Agent 送信先はCloudWatchのみでよい CloudWatch Agent S3/OpenSearch/SIEM等へ振り分け Fluentd / Fluent Bit ログの加工/マスキング/条件分岐 Fluentd / Fluent Bit コンテナ / Kubernetes 環境 Fluent Bit(+FireLens) メトリクスも複雑なログ配送も両方 両者を併用
図:判断軸ごとの推奨エージェント。最下段のとおり、メトリクスと複雑なログ配送の両方が必要なら併用が定石。
現場のコツ:「ログはS3のデータレイクとSecurity Lakeにも寄せたい」という要件では、収集はFluent Bit/Fluentdで、集約後の設計は別テーマになります。S3データレイク設計S3からSecurity Lakeへの取り込みもあわせて検討すると、収集から蓄積までの絵が繋がります。

07併用構成の型と、選定時に外さないポイント

実際のエンタープライズ案件では、次のような併用構成に落ち着くことがよくあります。役割で切り分けると迷いません。

選定時に外さないポイントは3つです。第一に、EOL製品を新規採用しないこと(td-agentは不可、Fluent Package/Fluent Bitの現行LTSを)。第二に、バッファとリトライの設計を必ず確認すること(出力先が落ちたときのログ欠損は後から効いてきます)。第三に、IAM権限を最小化すること(CloudWatch AgentもFluent BitのAWS出力も、必要なActionだけに絞る)。

まとめ

CloudWatch AgentとFluentd(td-agent)は競合ではなく役割分担です。判断の芯は「送信先がCloudWatchで足りるか」と「ログの加工・振り分けがどれだけ要るか」。メトリクス(特にメモリ・ディスク)はCloudWatch Agentの独擅場、複雑なログ配送はFluentd/Fluent Bit、コンテナならFluent Bit。そして重要な前提として、td-agentは既にEOLであり、新規はFluent Package(現行v6 LTS)やFluent Bitを選んでください。多くの現場では、両者の併用が最もバランスの取れた解になります。

参考(一次情報)

収集エージェントの構成やログ基盤の設計でお悩みでしたら、お問い合わせください。EMWが要件から一緒に整理します。

相談する
← ブログ一覧へ戻る