AWS 道場コース / 第3章 Firehoseで監査ログをS3へ送信

CloudWatch LogsからFirehoseで監査ログを配送する

CloudWatch LogsのサブスクリプションからFirehoseを経由してS3へ永続化するデータ経路を理解する。

TL;DR — この章で学ぶこと

  1. サブスクリプションが配送を開始する
  2. FirehoseがバッファしてS3へ書く
  3. 変換と失敗時の保管を設計する

01サブスクリプションが配送を開始する

何がこの仕組みの入口になるか? — サブスクリプションが配送を開始するを、構成図の矢印から読み解く。

サブスクリプションが配送を開始するの図解
図の読み方: 左から入力、中央が判断・制御、右が到達先。矢印は処理または検証が進む向きを示す。

何を学ぶか

実務では 何がこの仕組みの入口になるか? を先に確認する。設定値だけでなく、入力と出力の境界を明確にする。

02FirehoseがバッファしてS3へ書く

どのサービスが責任を持つか? — FirehoseがバッファしてS3へ書くを、構成図の矢印から読み解く。

FirehoseがバッファしてS3へ書くの図解
図の読み方: 左から入力、中央が判断・制御、右が到達先。矢印は処理または検証が進む向きを示す。

何を学ぶか

実務では どのサービスが責任を持つか? を先に確認する。設定値だけでなく、入力と出力の境界を明確にする。

03変換と失敗時の保管を設計する

失敗時にはどこへ戻る/進むか? — 変換と失敗時の保管を設計するを、構成図の矢印から読み解く。

変換と失敗時の保管を設計するの図解
図の読み方: 左から入力、中央が判断・制御、右が到達先。矢印は処理または検証が進む向きを示す。

何を学ぶか

実務では 失敗時にはどこへ戻る/進むか? を先に確認する。設定値だけでなく、入力と出力の境界を明確にする。

結論

  1. CloudWatch Logsのsubscription filterは一致するログイベントをFirehoseへ渡す。フィルタ条件と対象ロググループを明確にする。
  2. Firehoseはレコードをバッファし、設定した条件でS3に書く。低遅延と小さなファイル数は両立しないため、バッファ設定は用途に合わせる。
  3. Lambda変換を挟めるが、変換失敗の扱いを決める。S3のprefixやエラー出力先を分け、後で原因を追えるようにする。