- 公開日
- 最終更新日
【Amazon Data Firehose】Amazon Data Firehose を使ったログ配信
この記事を共有する
目次
はじめに
AWS環境でシステムを運用していると、
- ログを長期保管したい
- 監査対応のためログを一定期間保存したい
- S3へ集約してAthenaなどで分析したい
といったニーズが発生します。
CloudWatch Logsは非常に便利なログ管理サービスですが、
長期保管や分析用途を考えるとS3へアーカイブする構成が一般的です。
本記事では、
CloudWatch Logs → Amazon Data Firehose → Amazon S3
という標準的なログアーカイブ構成の構築手順を整理します。
背景・課題
CloudWatch Logsのみで長期運用した場合、以下の課題があります。
- 保持期間を長くするとコストが増加する
- ログの横断分析がしづらい
- 監査要件で数年単位の保存が必要なケースがある
そのため、
✔ CloudWatchは短期保管
✔ S3へ長期アーカイブ
という構成が推奨されます。
Amazon Data Firehoseを利用することで、
CloudWatch LogsのログをリアルタイムにS3へ自動転送できます。
前提条件・構成
前提
- AWSマネジメントコンソールへログイン可能であること
- CloudWatch Logs のロググループが作成済みであること
- Amazon S3 バケットが作成済みであること
- S3バケットへ書き込み可能な権限が付与されていること
システム構成
- 対象: CloudWatch Logs → Amazon Data Firehose → Amazon S3 構成
- リージョン: ap-northeast-1(東京)
- ログ送信元: CloudWatch Logs
- 配信サービス: Amazon Data Firehose
- 保存先: Amazon S3
- 作業環境: AWSマネジメントコンソール
今回の設定情報(サンプル構成)
| 項目 | 設定値 |
|---|---|
| ストリーム名 | sample-app-firehose-stream |
| ソース | Direct PUT |
| 送信先 | Amazon S3 |
| S3プレフィックス | app-logs/ |
| ロググループ | /aws/xxx/sample-app-firehose-stream |
手順1:S3バケットの確認
まずはログ保存先となるS3バケットを確認します。
例:
s3://example-log-bucket/app-logs/
■ 確認ポイント
- バケットが存在していること
- バケットポリシーで拒否されていないこと
手順2:Amazon Data Firehose 配信ストリームの作成
1. Amazon Data Firehoseで「配信ストリームを作成」します
■ 基本設定
| 項目 | 設定値 |
|---|---|
| ストリーム名 | sample-app-firehose-stream |
| ソース | Direct PUT |
| 送信先 | Amazon S3 |
■ S3設定
| 項目 | 推奨設定 |
|---|---|
| プレフィックス | app-logs/ |
| エラープレフィックス | error/ |
| 圧縮形式 | GZIP |
手順3:CloudWatch Logs から Firehose へ転送設定
1.サブスクリプションフィルター設定
対象ロググループ:/aws/xxx/sample-app-firehose-stream
| 項目 | 設定値 |
|---|---|
| フィルターパターン | 空欄(全件転送) |
| 送信先 | Amazon Data Firehose |
| ストリーム | sample-app-firehose-stream |
手順4:動作確認
1.テスト配信
テストを実施しログを出力します。
2.S3へ出力確認
s3://example-log-bucket/app-logs/
.gzファイルが出力されていれば成功です。
■確認ポイント
- 配信ストリームのステータスが「ACTIVE」
- S3にログファイルが出力されている
- errorフォルダにファイルが出力されていない
- IAMロールに適切な権限が付与されている
手順5:後片付け
後片付けでは新規作成したリソースの削除を実施します。
- CloudWatch Logsのサブスクリプションフィルター削除
- 配信ストリーム削除
- S3バケット削除
まとめ
CloudWatch Logs → Amazon Data Firehose → S3 構成は、AWS環境における標準的なログアーカイブ手法です。
本手順が参考となれば幸いです。
この記事は私が書きました
橋本 歩
記事一覧AWSと犬が好きです。