時代はクラウドということで、クラウド関連の案件が増えて来ましたので、
Amazon Web Servicesに関する知識を深めようと思います。
Kinesis Data Firehose と CloudWatch の住み分けで、CloudWatch は元々 AWS リソースやアプリケーションの状態を監視するためのサービスで、Kinesis Data Firehose は、ログやイベントデータを長期保存や分析基盤に届けるためのサービスです。
この違いを踏まえると、例えば「エラーが増えたらすぐ通知したい」「今の状況をダッシュボードで見たい」といった用途では CloudWatch の方が明らかに適しています。逆に、「ログを数か月~数年保存して分析したい」「Athena や Redshift で横断的にクエリをかけたい」「データを Parquet 形式でデータレイクに貯めたい」といった用途では Firehose の方が向いています。CloudWatch Logs でもログは保存できますが、長期保存や大規模分析にはコストや柔軟性の面で不利になることが多いです。
実務ではどちらか一方を選ぶのではなく、両方を組み合わせる構成がよく採られます。まず CloudWatch Logs にログを出力して、障害対応や運用監視に使います。同時に、そのログを Kinesis Data Firehose で S3 に配信し、後続の分析やレポーティングに利用します。こうすると「短期的な監視」と「長期的な分析」を無理なく両立できます。
ようするに、運用監視・アラートが目的なら CloudWatch, 蓄積・分析・データ活用が目的なら Firehose という住み分けになります。