【AWS中級へのステップ】 CloudWatch Logs から S3 への転送方法 2 選

【AWS中級へのステップ】 CloudWatch Logs から S3 への転送方法 2 選

CloudWatch Logs から S3 への転送方法として、「パターン1. CloudWatch Logs のサブスクリプションフィルタを使用する」 「パターン2. CloudWatch Logs のエクスポートタスクを使用する」を紹介します。
2026.02.17

はじめに

猫とアポロチョコとSystems Managerが好きな m.hayakawa です。

本記事は、AWS サービスの基本設計には慣れてきたものの、「この構成で問題ないのか」「より良い設計方法はないのか」といった実務的な課題に直面している方向けの内容となります。

AWS 初学者が中級者へとステップアップするために押さえておきたい実践的な知識や TIPS のひとつを紹介し、初学者の方が知識をより深めるため、またベテランの方が知識を再確認するための一助となることを目指しています。

CloudWatch Logs から S3 への転送方法

転送方法の比較

CloudWatch Logs を使用しつつ、S3 にもログを保存したい場合、2つの転送方法があります。

サブスクリプションフィルタ:

  • リアルタイムで継続的にログを転送
  • Data Firehose などの追加サービスが必要
  • フィルタリングが可能
  • 1つのロググループに設定できるサブスクリプションフィルタは2つまで(サービスクォータ)

エクスポートタスク:

  • バッチ処理で特定期間のログを転送
  • 追加サービスは不要
  • フィルタリングは不可
  • 1つのアカウント・リージョンで同時に実行できるエクスポートタスクは1つまで(同時実行制限)

それでは、各転送方法の詳細を見ていきましょう。

パターン1. CloudWatch Logs のサブスクリプションフィルタを使用する

下記の特徴があります。

  • リアルタイム転送: ログが CloudWatch Logs に書き込まれると、ほぼリアルタイムで S3 に転送されます
  • フィルタリング可能: 特定のパターンにマッチするログのみを転送することができます
  • 継続的な転送: 一度設定すれば、継続的に自動でログが転送されます
  • 複数の転送先: Kinesis Data Streams、Lambda、Data Firehose、OpenSearch Service など、用途に応じて転送先を選択できます

構成例: Data Firehose 経由で S3 に転送

最も一般的な構成は、CloudWatch Logs → Data Firehose → S3 の流れです。

CloudWatchLogs_DataFirehose_S3

実装手順

  1. S3 バケットの作成

    • ログの保存先となる S3 バケットを作成します
    • 必要に応じて暗号化やライフサイクルポリシーを設定します
  2. Data Firehose 配信ストリームの作成

    • ソースを「Direct PUT」に設定
    • 送信先を作成した S3 バケットに設定
    • バッファサイズやバッファ間隔を要件に応じて調整(デフォルトは 5MB / 300秒)
  3. サブスクリプションフィルタの作成

    • CloudWatch Logs のロググループに対してサブスクリプションフィルタを設定
    • 送信先として作成した Data Firehose を指定
    • フィルタパターンを指定(すべてのログを転送する場合は空欄)

注意点

  • スロットリング対策: ログ量が多い場合、Data Firehose の容量を適切に設定する必要があります。distribution パラメータを random に設定することでスロットリングのリスクを軽減できます
  • データ形式: サブスクリプションフィルタ経由で送信されるログは base64 エンコードされ、gzip 圧縮されています
  • コスト: Data Firehose の利用料金が発生します(データ取り込み量に応じた従量課金)
  • サービスクォータ: 1つのロググループに設定できるサブスクリプションフィルタは 2 つまでです

実際の構築手順は AWS 公式ドキュメントの Subscription filters with Amazon Data Firehose を参照してください。

パターン2. CloudWatch Logs のエクスポートタスクを使用する

CloudWatch Logs から直接 S3 にエクスポートする構成です。

CloudWatchLogs_ExportTask_S3

手軽なパターンですが、下記の特徴があります。

  • シンプルな構成: 追加のサービス(Data Firehose など)が不要で、CloudWatch Logs から直接 S3 にエクスポートできます
  • コスト効率: Data Firehose などの中間サービスが不要なため、その分のコストを削減できます
  • バッチ処理向き: 定期的なバックアップやアーカイブ用途に適しています
  • 時間範囲指定: 特定の期間のログのみをエクスポートできます

制約事項

  • 同時実行は 1 つまで: 1 つのアカウント・リージョンで同時に実行できるエクスポートタスクは 1 つのみです
  • 遅延: ログデータがエクスポート可能になるまで最大 12 時間かかる場合があります
  • タイムアウト: エクスポートタスクは 24 時間でタイムアウトします。大量のログをエクスポートする場合は時間範囲を分割する必要があります
  • リアルタイム性なし: 継続的なリアルタイム転送には向いていません

そのため、アドホックなログのバックアップや、過去の特定期間のログを S3 に保存したい場合に適しています。

実装手順

  1. S3 バケットの作成と権限設定

    • ログの保存先となる S3 バケットを作成
    • CloudWatch Logs がバケットに書き込めるようバケットポリシーを設定
  2. エクスポートタスクの作成

    • AWS コンソールまたは CLI から実行
    • ロググループ名、時間範囲(from/to)、S3 バケット名、プレフィックス(オプション)を指定
aws logs create-export-task \
  --log-group-name "/aws/lambda/my-function" \
  --from 1704067200000 \
  --to 1704153600000 \
  --destination "my-log-bucket" \
  --destination-prefix "lambda-logs/2024-01-01"
  1. エクスポート状況の確認
    • describe-export-tasks コマンドでタスクの進行状況を確認できます

使い分けのポイント

エクスポートタスクは以下のようなケースで有効です。

  • 月次や週次での定期的なログアーカイブ
  • 過去の特定期間のログを調査のために取得
  • コスト重視で、リアルタイム性が不要な場合
  • EventBridge Scheduler や Lambda を使った定期実行のバッチ処理として実装

詳細は AWS 公式ドキュメントの Exporting log data to Amazon S3 を参照してください。

補足: 料金面で検討すること

ログの保存方法として、S3 への直接書き込みと CloudWatch Logs への書き込みを料金の観点で比較します。

項目 S3 Standard CloudWatch Logs
書き込み(取り込み)料金 $0.0047/1,000リクエスト $0.76/GB
月額保存料金 $0.025/GB $0.033/GB(圧縮後)

CloudWatch Logs は自動的にデータを圧縮(0.15 compression ratio)するため、保存料金は実質的に S3 と大きな差はないと考えられます。

書き込み料金については、S3 はリクエスト数ベース、CloudWatch Logs はデータ量ベースと課金体系が異なります。一般的なログの書き込みパターン(ある程度まとまったサイズのデータを書き込む)では CloudWatch Logs の方が高額になりやすい傾向です。CloudWatch Logs の機能(リアルタイム監視、Logs Insights、メトリクスフィルタなど)を利用せずに、コスト削減を最優先する場合は、アプリケーションから直接 S3 にログを書き込むアーキテクチャも選択肢となります。

まとめ

CloudWatch Logs から S3 への転送方法について、2 パターンを紹介しました。

  • サブスクリプションフィルタ(パターン1): リアルタイム性が必要、継続的な転送、フィルタリングが必要な場合に最適
  • エクスポートタスク(パターン2): シンプルな構成、コスト重視、定期的なバッチ処理に最適

ログの保存要件やコスト、運用の手間などを総合的に考慮して、要件に沿った方法を選択してください。

参考資料

クラスメソッドオペレーションズ株式会社について

クラスメソッドグループのオペレーション企業です。

運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AI をフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。

当社は様々な職種でメンバーを募集しています。

「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイト をぜひご覧ください。※2026 年 1 月 アノテーション㈱から社名変更しました

この記事をシェアする

FacebookHatena blogX

関連記事