CloudWatchLogs-Firehose-S3

Amazon Data FirehoseからS3にgz形式でオブジェクトを保存したい

概要

EC2 -> CloudWatch Logs -> Data Firehose -> S3

この構成を組んだ時にデータ圧縮についていろいろ混乱したからメモしておく。
サービスつないだときの設定ってわかりにくいよなぁ。

今回の構成

EC2 -> CloudWatch Logs -> Data Firehose -> S3

やりたかったこと

  1. EC2のCloudWatch AgentはCloudWatch Logsにログデータを送信する
  2. CloudWatch Logsはログデータを受け取る
  3. CloudWatch Logsはログデータを自動的にGZIPで圧縮する
  4. CloudWatch Logsは圧縮データをData Firehoseに送信する
  5. Data Firehoseは圧縮データを受け取る
  6. Data Firehoseは受け取った圧縮データの拡張子に".gz"をつける
  7. Data Firehoseは".gz"拡張子をつけた圧縮データをS3に送信する

Data Firehose設定内容

  1. 「Amazon CloudWatch Logsからソースレコードを解凍する」という設定を「オフ」
    ⇒CloudWatch Logsから受け取った圧縮済ログデータをFirehoseは解凍しない
  2. 「データレコードの圧縮」という設定を「有効ではありません」
    ⇒Firehoseは圧縮済ログデータをS3へ送信時に再圧縮しない
  3. 「ファイル拡張子フォーマット」という設定を「.gz」
    ⇒Firehoseは圧縮済ログデータのファイル名に".gz"拡張子をつけて、S3に送信する
TECH BLOG BY OZAKI