概要: AWS CloudWatch Logsは、システム運用に不可欠なログ管理サービスです。本記事では、CloudWatch Logsの基本から、高度な分析を可能にするInsights、S3への長期保存、CLIでの効率的な操作まで、主要機能を網羅的に解説します。ログ活用の最適化と運用効率の向上を目指しましょう。
AWS CloudWatch Logsの全体像と効果的なログ活用術
クラウドログ管理の現状とCloudWatch Logsの重要性
現代のビジネスにおいて、クラウドサービスの利用はもはや不可欠な基盤となっています。総務省の「令和7年版 情報通信白書」によると、2024年には日本国内企業の80.6%がクラウドサービスを利用しており、これは日々増加傾向にあります。この広範なクラウド利用の裏側で、システムの安定稼働やセキュリティ維持に欠かせないのが、適切かつ効率的なログ管理です。ログはシステムの「足跡」であり、障害発生時の原因究明、不正アクセスの検知、パフォーマンス最適化の貴重な情報源となります。
しかし、複数のAWSサービスから出力される多種多様なログを手動で管理するのは非現実的です。そこでAWS CloudWatch Logsが重要な役割を果たします。CloudWatch Logsは、AWS環境におけるログを一元的に集約し、リアルタイムでの監視、そして高度な分析を可能にするサービスです。これにより、ログ管理の複雑さを解消し、システムの運用効率向上とセキュリティ強化に大きく貢献します。
ログを単なるデータとしてではなく、ビジネス継続のための重要な情報として活用することで、障害の早期発見・解決、潜在的なセキュリティリスクの特定、リソース利用状況の最適化など、多岐にわたるメリットを享受できます。CloudWatch Logsは、これらのログ活用の基盤となる、AWS運用に不可欠なサービスなのです。
CloudWatch Logsの基本構造とデータフロー
AWS CloudWatch Logsは、効率的なログ管理のために階層構造を採用しています。この構造を理解することが、効果的なログ活用への第一歩です。まず、システムやアプリケーションから出力される個々の活動記録が「ログイベント」です。これにはタイムスタンプとメッセージが含まれます。次に、同じソースから時系列で送信されるログイベントの集まりが「ログストリーム」と呼ばれます。例えば、特定のEC2インスタンス上のApacheログや、Lambda関数の実行ログなどがログストリームとして扱われます。
そして最も重要なのが「ロググループ」です。これは、複数のログストリームをまとめる論理的なグループ単位であり、ログの保持期間、アクセス制御、監視設定などを共通で定義できます。例えば、あるアプリケーションのすべてのログを一つのロググループに集約し、そのロググループに対して保持期間を90日に設定したり、特定のIAMロールからのアクセスのみを許可したりできます。ログの取り込みは、CloudWatchエージェントをEC2インスタンスやオンプレミスサーバーに導入したり、AWS LambdaやKinesis Firehoseなどのサービスと連携させたりすることで実現されます。
この階層構造により、ログの集約、管理、そして後の分析が体系的に行えるようになります。ロググループごとの保持期間設定は、ログストレージコストを最適化する上で特に重要です。不要なログをいつまでも保持しないよう、ビジネス要件とコンプライアンス要件に基づいて適切な保持期間を設定することが、コスト管理の鍵となります。
Insightsとメトリクスフィルターによるログ活用の幅
CloudWatch Logsに集約された膨大なログデータは、ただ保管されているだけでは意味がありません。その真価を発揮させるのが、CloudWatch Logs Insightsとメトリクスフィルターです。CloudWatch Logs Insightsは、強力なクエリ言語を使って、大量のログデータから特定のパターンやエラー、パフォーマンスボトルネックなどを効率的に抽出・可視化できるサービスです。SQLライクな構文で直感的に操作でき、複雑なログ検索や集計、グラフ化を迅速に行えます。これにより、障害発生時の原因究明やセキュリティインシデントの分析時間を大幅に短縮できます。
一方、メトリクスフィルターは、ログイベント内の特定の文字列やパターンを検出し、それをCloudWatch Metricsの数値データとして出力する機能です。例えば、「ERROR」という文字列を含むログイベント数をカウントし、それが一定しきい値を超えた場合にアラートを発するといった使い方が可能です。これにより、ログデータをリアルタイムで監視し、異常を自動的に検知して運用者に通知する仕組みを簡単に構築できます。システム運用における予防保全やSLA(サービス品質保証)監視に非常に有効です。
これらの機能に加えて、ログクラスの適切な選択も重要です。CloudWatch Logsには「標準」と「低頻度アクセス」のログクラスがあり、ログのアクセス頻度や分析要件に応じてクラスを使い分けることで、ストレージコストを最適化できます。例えば、アクセス頻度の低い監査ログや長期保存が必要なログには低頻度アクセスログクラスを選択することで、コスト削減を図ることが可能です。
出典:総務省「令和7年版 情報通信白書」、Amazon CloudWatch Logs ユーザーガイド
CloudWatch Logs設定からInsights検索、S3転送までの実践手順
CloudWatch Logs設定のファーストステップ
AWS CloudWatch Logsを効果的に活用するためには、まず適切な初期設定が不可欠です。最初のステップとして、ログを格納する「ロググループ」を作成します。AWSマネジメントコンソールからCloudWatchサービスへ移動し、「ロググループ」を選択して新しいロググループを作成しましょう。この際、最も重要なのがログの保持期間の設定です。ビジネス要件やコンプライアンス要件に応じて、3日間から永続まで様々な期間を選択できます。不要なログを無期限に保持するとコストが増大するため、適切な期間を選定することがコスト最適化につながります。
次に、システムやアプリケーションからログをCloudWatch Logsに送信する設定を行います。EC2インスタンスやオンプレミスサーバーからのログの場合、CloudWatchエージェントを導入するのが一般的です。エージェントの設定ファイル(例:`amazon-cloudwatch-agent.json`)で、どのログファイル(例:`/var/log/httpd/access_log`)をどのロググループに送信するかを定義します。AWS LambdaやRDS、VPC Flow Logsなどの各種AWSサービスは、設定を有効化するだけで自動的にCloudWatch Logsにログを送信できるものが多いです。
最後に、アクセス権限(IAMポリシー)の適切な設定を確認します。ログを送信するEC2インスタンスやLambda関数には、logs:CreateLogStream、logs:PutLogEventsなどの権限を付与したIAMロールをアタッチする必要があります。また、ロググループへのアクセス(閲覧、削除など)もIAMポリシーで細かく制御することで、セキュリティとガバナンスを確保できます。最小権限の原則に基づき、必要な権限のみを付与することが重要です。
CloudWatch Logs Insightsによる実践的なログ検索と分析
CloudWatch Logsにログが蓄積されたら、次にそのデータを活用して問題解決や運用改善に役立てます。その中心となるのがCloudWatch Logs Insightsです。Insightsコンソールにアクセスし、分析したいロググループを選択するところから始めます。基本的なクエリは、fields @timestamp, @message | sort @timestamp desc | limit 20のように、表示したいフィールド、ソート順、表示件数を指定するものです。まずはこれでログ全体の傾向を掴みましょう。
実践的な分析では、特定の条件でログを絞り込む「フィルター」が不可欠です。例えば、filter @message like /ERROR/でエラーメッセージを含むログを抽出したり、filter status_code = 500でHTTPステータスコードが500のエラーログを特定できます。ログフィールドは、Insightが自動でパースしてくれるもの(例:`@timestamp`, `@message`)や、ログメッセージから正規表現で抽出するもの(例:parse @message " HTTP/")があります。
さらに、集計関数を組み合わせることで、より高度な分析が可能です。stats count() by pathでパスごとのリクエスト数をカウントしたり、stats avg(duration) by methodでメソッドごとの平均応答時間を計算したりできます。クエリ結果はテーブル形式だけでなく、グラフとして可視化することもでき、時系列での変化や傾向を一目で把握するのに役立ちます。これらの機能を活用することで、障害発生時の原因究明やパフォーマンス分析を格段に効率化できます。
ログの長期保存とコスト最適化のためのS3転送
CloudWatch Logsはリアルタイム監視や短期的な分析に優れていますが、長期的なデータ保存や他の分析ツールとの連携を考慮する場合、Amazon S3へのログ転送が非常に有効な選択肢となります。S3は非常に安価で高い耐久性を持つストレージサービスであり、膨大なログデータを長期間にわたって安全に保管するのに適しています。また、S3にログを転送することで、Amazon AthenaやRedshift Spectrumといったデータレイクサービスと連携し、より高度な分析を行うことも可能になります。
CloudWatch LogsからS3へログを転送する方法としては、主に以下の二つが考えられます。一つは、AWS Lambda関数を利用する方法です。CloudWatch LogsのロググループにKinesis Data Firehoseをサブスクライブし、そのFirehoseをトリガーとしてLambda関数を実行させ、S3バケットへログを転送します。もう一つは、Kinesis Data Firehoseを直接利用する方法です。CloudWatch LogsのロググループからKinesis Data Firehoseへサブスクライブし、Firehoseの配信ストリームの送信先としてS3バケットを指定します。後者の方法が、よりシンプルで推奨されることが多いです。
S3への転送設定時には、S3バケットへの適切なアクセス権限(IAMポリシー)をFirehoseまたはLambda関数に付与することを忘れないでください。また、S3バケット側の設定として、バージョニングやライフサイクルポリシーを設定することで、データの整合性を保ちつつ、さらにストレージコストを最適化できます。これにより、ログの長期保存とコスト削減を両立させながら、将来的な分析基盤の拡張にも対応できるようになります。
出典:Amazon CloudWatch Logs ユーザーガイド
目的別AWS CloudWatch Logs Insightsクエリとフィルター活用例
エラーログの迅速な特定と原因分析クエリ
システム運用において、エラーログの迅速な特定と原因分析は、障害対応の成否を分ける重要なプロセスです。CloudWatch Logs Insightsを活用することで、このプロセスを劇的に加速できます。基本的なエラーログ特定クエリは、ログメッセージ内に特定のエラーキーワードが含まれるものをフィルタリングすることから始まります。例えば、filter @message like /ERROR|FAIL|Exception/と記述することで、「ERROR」「FAIL」「Exception」のいずれかの文字列を含むログイベントを抽出できます。
さらに、特定のエラーコードやアプリケーション固有の識別子を組み合わせて絞り込むことも可能です。例えば、HTTP 500エラーを調査する場合、filter status_code = 500のようにクエリします。特定の時間範囲に発生したエラーに限定したい場合は、コンソール上で時間範囲を指定するか、filter @timestamp between "2024-06-01 00:00:00" and "2024-06-01 23:59:59"のようにクエリに含めることもできます。エラー発生傾向を把握するには、stats count() by bin(5m)のように時間でグループ化し、5分間隔でエラー数を集計することで、スパイク発生箇所を可視化できます。
複数のログストリームを横断して関連ログを検索することも重要です。例えば、リクエストIDがログメッセージに含まれている場合、まずエラーを特定したログからリクエストIDを抽出し、そのIDを使って他のロググループやログストリームで関連するログイベントを検索することで、処理の全経路を追跡し、根本原因をより深く掘り下げることが可能になります。これにより、分散システムにおけるエラー調査の複雑さを軽減し、迅速な解決へと導きます。
パフォーマンスボトルネックを特定するクエリ
システムのパフォーマンス問題は、ユーザーエクスペリエンスの低下やビジネス機会の損失に直結します。CloudWatch Logs Insightsは、パフォーマンスボトルネックの特定にも強力なツールとなります。例えば、WebアプリケーションのAPI応答時間に関するログがある場合、parse @message "latency=(?\d+)ms" | filter duration_ms > 1000 | stats count(), avg(duration_ms) by pathのようにクエリを記述することで、応答時間が1秒を超えているリクエストの数と平均応答時間をパスごとに集計し、どのAPIエンドポイントが遅延しているかを特定できます。
特定のユーザーや処理に起因するパフォーマンス問題を調査する場合は、ユーザーIDやセッションID、トランザクションIDなどの識別子を利用してログをフィルタリングします。filter user_id = "user123" | stats avg(processing_time)のように、特定のユーザーの処理時間のみを集計することで、個別のユーザー体験に影響を与えている可能性のある部分を洗い出すことができます。また、特定の時間帯にパフォーマンスが低下している場合は、stats max(cpu_usage) by bin(1m)のように、CPU使用率などのリソース関連ログを集計し、その時間帯のリソース消費状況を把握することで、インフラストラクチャ側のボトルネックを特定するヒントを得られます。
さらに、メトリクスフィルターと組み合わせることで、パフォーマンス関連のログからメトリクスを抽出し、CloudWatchダッシュボードで時系列グラフとして可視化することも可能です。これにより、アプリケーションのパフォーマンス傾向を継続的に監視し、異常を早期に検知するための基盤を構築できます。定期的にこれらのクエリを実行し、システムのパフォーマンス健全性を確認することは、安定したサービス提供において非常に重要です。
セキュリティイベント監視と不正アクセス検知クエリ
セキュリティはクラウド運用において最優先事項の一つであり、CloudWatch Logsはセキュリティイベントの監視と不正アクセスの検知に不可欠な役割を果たします。特に、AWS CloudTrailと連携することで、AWSアカウント内で行われたAPIアクティビティのログを一元的に分析し、不審な挙動を早期に発見できます。例えば、filter @message like /Failed authentication/ or @message like /AccessDenied/というクエリで、失敗した認証試行やアクセス拒否されたイベントを抽出することで、ブルートフォースアタックや権限昇格試行の兆候を捉えられます。
また、特定のIPアドレスからの不審なアクセスを監視するには、filter source_ip = "X.X.X.X"のようにクエリを記述し、そのIPアドレスからのアクティビティを洗い出します。AWSリソースへの変更履歴を追跡することも重要です。例えば、IAMユーザーの作成や削除、S3バケットのポリシー変更などの重要な操作は、CloudTrailログに記録されます。これらのログをfilter eventName = "CreateUser" or eventName = "DeleteBucketPolicy"のようにフィルタリングし、意図しない変更が発生していないかを確認できます。
これらのセキュリティ関連クエリは、単にログを検索するだけでなく、メトリクスフィルターと組み合わせてアラートを生成することで、リアルタイムでのセキュリティインシデント対応能力を高めます。例えば、異常な回数の認証失敗が発生した場合にSNSで通知を受け取るように設定することで、攻撃の初期段階で迅速な対処が可能になります。定期的なログ分析とアラート設定は、セキュリティ脅威からシステムを守るための重要な防御線となります。
出典:Amazon CloudWatch Logs ユーザーガイド
AWS CloudWatch Logs運用で陥りやすい落とし穴と対策
予期せぬログ量増大とコスト高騰への対策
CloudWatch Logsは非常に便利なサービスですが、計画なしに運用を開始すると、予期せぬログ量の増大によりコストが跳ね上がるという落とし穴に陥りがちです。特に、デバッグログレベルが本番環境で有効になっていたり、急なトラフィック増加でアプリケーションログが大量に出力されたりすると、あっという間に想定以上のストレージ費用が発生してしまいます。この問題への対策として、最も効果的なのはログクラスの適切な選択です。
CloudWatch Logsには「標準」と「低頻度アクセス」のログクラスがあります。頻繁にアクセスしたり、リアルタイム分析が必要なログには標準クラスを、長期保存が目的でアクセス頻度が低い監査ログなどには低頻度アクセスログクラスを選択することで、ストレージコストを大幅に削減できます。また、不要なログのフィルタリングやサンプリングも重要です。CloudWatchエージェントの設定で、特定のメッセージパターンを除外したり、ログイベントの一部のみを送信したりすることで、CloudWatch Logsに到達するログ量を抑制できます。
さらに、異常なログ量増加を早期に検知するためのアラート設定も有効です。メトリクスフィルターを使用して、ロググループあたりのIncomingLogEventsやIncomingBytesのメトリクスを監視し、設定したしきい値を超えた場合に通知するアラームを設定します。これにより、コスト高騰のリスクを最小限に抑えつつ、必要なログを確実に収集・管理することが可能になります。
ログのアクセス権限不備とセキュリティリスク
ログには、システムの動作状況だけでなく、機密性の高い情報(ユーザーID、IPアドレス、リクエスト詳細など)が含まれることがあります。そのため、ログのアクセス権限管理が不適切であると、情報漏洩や不正アクセスなどの重大なセキュリティリスクにつながる可能性があります。この落とし穴を回避するためには、IAMロールとポリシーによる最小権限の原則を徹底することが不可欠です。
具体的には、ログをCloudWatch Logsに送信するEC2インスタンスやLambda関数には、logs:PutLogEventsやlogs:CreateLogStreamなど、ログの書き込みに必要な最小限の権限のみを付与します。開発者や運用担当者がログを参照する場合も、特定のロググループへのlogs:FilterLogEventsやlogs:GetLogEventsといった参照権限のみを付与し、logs:DeleteLogGroupのような破壊的な操作を許可しないように設定すべきです。さらに、ロググループへの「削除保護」設定を有効にすることで、誤って重要なロググループが削除されることを防ぎ、意図しないデータ損失のリスクを軽減できます。
また、誰がいつログにアクセスしたかを追跡するために、CloudTrailと連携した監査ログの取得も推奨されます。CloudTrailはAWSアカウント内のAPIアクティビティを記録するため、CloudWatch Logsへのアクセス状況自体も監視の対象とすることで、より強固なセキュリティガバナンスを確立できます。定期的にIAMポリシーを見直し、不要な権限が付与されていないか確認する運用も重要です。
オンプレミス連携時の課題と解決策
CloudWatch LogsはAWS環境のログだけでなく、CloudWatchエージェントを導入することでオンプレミス環境のログも一元管理できる強力な機能を提供します。しかし、オンプレミス環境との連携時には、特有の課題に直面することがあります。最も一般的な課題の一つは、ネットワーク設定です。オンプレミスサーバーからCloudWatch Logsエンドポイントへの通信がファイアウォールによってブロックされていないか、適切なポート(通常はHTTPSの443番)が開いているかを確認する必要があります。
また、CloudWatchエージェントを稼働させるためのパーミッション設定も重要です。エージェントがログファイルを読み取るためのOSレベルの権限や、AWSに対するログ送信権限(IAMロールまたはアクセスキー/シークレットキー)が正しく設定されているかを確認します。IAMロールを利用する場合は、オンプレミス環境からAWSへの安全な認証メカニズムを確立する必要があります。
さらに、オンプレミスとクラウドの時刻同期の重要性も見過ごせません。ログイベントにはタイムスタンプが含まれるため、オンプレミスサーバーの時刻がAWSの時刻と大きくずれていると、ログの時系列が乱れ、分析の精度が低下します。NTP(Network Time Protocol)などを利用して、オンプレミスサーバーの時刻を正確に同期させるようにしましょう。エージェントのヘルスチェックや、CloudWatch Logsコンソールでログの取り込み状況を定期的に監視することで、問題の早期発見と解決が可能です。
- ロググループごとの保持期間をビジネス要件に合わせて最適化しましたか?
- ログクラス(標準/低頻度アクセス)をログのアクセス頻度に応じて使い分けていますか?
- CloudWatchエージェントで不要なログのフィルタリングやサンプリングを設定しましたか?
- ログ量が増大した場合に通知するCloudWatchアラームを設定済みですか?
- IAMポリシーでログに対する最小限のアクセス権限を付与していますか?
- 重要なロググループに「削除保護」を設定し、誤削除を防止していますか?
- オンプレミスサーバーのCloudWatchエージェントからのログ送信経路が確保されていますか?
- オンプレミスサーバーの時刻が正確に同期されていますか?
出典:Amazon CloudWatch Logs ユーザーガイド
【ケース】ログ分析遅延による障害長期化を回避した改善事例
障害発生時のログ分析における課題
これは、架空のWebサービス運用事例です。ある日、大規模ECサイトでユーザーからの「ページ表示が遅い」「購入手続きが進まない」といった問い合わせが急増し、システムパフォーマンスの顕著な劣化が発生しました。運用チームは即座に調査を開始しましたが、このECサイトはマイクロサービスアーキテクチャを採用しており、フロントエンド、バックエンドAPI、データベース、認証サービスなど、複数のAWSサービスとカスタムアプリケーションが連携していました。それぞれのサービスから出力されるログは、個別のCloudWatchロググループやS3バケット、時にはサービスごとのローカルストレージに分散して保存されており、一元的な参照が困難でした。
障害発生時、運用担当者は複数のコンソールを行き来し、手動でログをダウンロードしてはキーワード検索を行うという作業に追われました。特定のサービスのエラーログは見つかるものの、それがどのユーザーのリクエストに関連しているのか、 upstream(上流)やdownstream(下流)のサービスで何が起きていたのかを追跡するのに膨大な時間を要しました。結果として、原因究明と根本的な解決策の特定が遅れ、サービス影響が長期化する可能性が高まっていました。顧客体験の悪化は、ブランドイメージへのダメージや売上機会の損失に直結するため、早急な改善が求められていました。
CloudWatch Logs Insights導入による分析プロセス改善
上記のような課題に対し、運用チームはCloudWatch Logsへのログ一元化とInsightsの本格導入を決定しました。まず、全てのAWSサービス(ALB、Lambda、RDS、ECSなど)およびカスタムアプリケーションからのログを、それぞれ適切なロググループにCloudWatch Logsへ集約するよう設定を見直しました。これにより、ログが分散している問題を解消し、単一のインターフェースからすべてのログデータにアクセスできるようになりました。
次に、CloudWatch Logs Insightsを積極的に活用しました。パフォーマンス劣化の調査では、まずALBのアクセスログから特定時間帯の5xxエラーや高レイテンシーのリクエストを抽出し、そのリクエストIDを特定しました。次に、そのリクエストIDを用いて、関連するバックエンドAPIのロググループやデータベースのロググループを横断的に検索し、アプリケーション内部での処理時間やエラーの詳細を深掘りしました。例えば、特定のAPIが外部サービスへの高負荷なコールを行っていること、またはデータベースクエリの遅延が原因で全体のボトルネックになっていることなどが、Insightsのクエリを通じて迅速に特定されました。
具体的なクエリ例としては、fields @timestamp, @message | filter @message like /requestId:/ | sort @timestamp ascのように、リクエストIDで絞り込み、時系列順にログを追跡しました。これにより、手動でのログ調査に比べて、原因特定までの時間を大幅に短縮し、迅速に問題解決へ取り組むことが可能になりました。
改善事例から学ぶ運用最適化のポイント
この事例から学ぶべき運用最適化のポイントは多岐にわたります。最も重要なのは、ログ集約の徹底です。ログが分散していると、障害発生時の分析が著しく困難になります。全てのログをCloudWatch Logsに集約することで、Insightsによる横断的な分析能力が劇的に向上します。これにより、障害発生時に「どこにログがあるか分からない」という初期の混乱を避け、すぐに原因究明フェーズに入れるようになります。
次に、Insightsクエリのテンプレート化です。頻繁に利用するエラー検索、パフォーマンス分析、セキュリティ監視などのクエリは、あらかじめテンプレートとして保存しておくことで、緊急時にゼロからクエリを組み立てる手間を省き、分析時間をさらに短縮できます。運用チーム内でこれらのクエリを共有し、新しいメンバーでも迅速にログ分析ができるようなナレッジ化も効果的です。
最後に、メトリクスフィルターとアラートによる早期検知の仕組み構築です。Insightsは事後分析に強力ですが、障害の兆候を事前に捉えるためには、ログから異常なパターン(例:エラー率の急増、レイテンシーのしきい値超え)を抽出し、CloudWatchアラームで通知する仕組みを構築することが重要です。これにより、障害が本格化する前に問題を発見し、対応することで、サービスへの影響を最小限に抑えることができる可能性が高まります。
まとめ
よくある質問
Q: AWS CloudWatch Logsとは具体的に何ですか?
A: AWSサービスやオンプレミス環境からのログを一元的に収集、監視、保存できるクラウドサービスです。システムの稼働状況把握やトラブルシューティングに不可欠な情報を提供します。
Q: CloudWatch Logs Insightsの主な利点は何ですか?
A: 大量のログデータをSQLライクなクエリ言語で高速に分析できる点です。これにより、特定のエラーパターンやパフォーマンスボトルネックを迅速に特定し、問題解決時間を短縮できます。
Q: サブスクリプションフィルターの活用方法を教えてください。
A: 特定のキーワードやパターンに合致するログイベントをリアルタイムで検出し、Lambda関数やKinesis Data Firehoseなどの他のAWSサービスへ転送できます。異常検知やカスタムアラートのトリガーに利用可能です。
Q: CloudWatch LogsからS3へのログ転送のメリットは何ですか?
A: S3の安価で高耐久なストレージを利用してログを長期保存できる点です。これにより、コンプライアンス要件を満たしつつ、CloudWatch Logsのデータ保持コストを削減できます。
Q: CloudWatch Logsの料金を抑えるにはどうすれば良いですか?
A: ログの取り込み量と保持期間を最適化することが重要です。不要なロググループの削除、ログイベントフィルタリングによる取り込み量の削減、アクセス頻度の低いログのS3転送を検討しましょう。
