【AWS】CloudWatch Logs のログを S3 に移行する方法の比較と注意事項

本記事では、CloudWatch Logs のログを S3 に移行する方法と注意事項を解説します。

S3 Bucket Policy

前提


CloudWatch Logs のログを S3 に移行する方法は大きく分けて以下の2つがある。

①Kinesis Data Firehoseを利用するパターン

ログ発生時、ニアリアルタイムでS3にも転送する。

②EventBridge+Lambdaを利用するパターン

保存期間を経過したログをLambdaを利用して転送する。

説明


①Kinesis Data Firehoseを利用するパターン

コスト$:ログ量によるが、基本的に数十ドル程度かかる。

難易度:Subscription FilterとFirehoseの設定のみ。

運用面:基本必要なことはなし。

②EventBridge+Lambdaを利用するパターン

※ EventBridge の API である Export Task が、1つのアカウントおよびリージョンにて同時に 1 度のみ実行可能という制約があり、定期的な実行として、AWSは推奨していない。

また、上記制約のため、複数のロググループがある場合、Step Functionが必要になる可能性がある。

コスト$:ログ量によるが、Lambda、Step Function、 EventBridgeの従量課金のため、基本的に無料か数十ドル以下と安い。

難易度:Lambdaの作成が必要。

運用面:LambdaやStep Function周りでエラー等が発生する可能性がある。