CloudWatch Logs を AWS マネジメントコンソールから手動で S3 バケットにエクスポートする

記事タイトルとURLをコピーする

イメージ:

こんにちは😺
技術課の山本です。

気になったので、「どういう用途があるのか?」という観点で調べてみました。
結論としては、「何も考えずに長らく CloudWatch Logs に保管していたログを、S3 に保管して料金削減したい」という場合に良いのかなと感じました。
手動エクスポートなので、暫定的な対処の位置づけです。

AWS マネジメントコンソールから手動で S3 バケットにエクスポートする

AWS マネジメントコンソールの CloudWatch Logs の画面から、期間とストリーム名を指定して、自他の AWS アカウントにある S3 バケットにエクスポートできます。

開始と終了は UTC 時間で記載する必要があります。CloudWatch Logs のタイムゾーン表示は UTC+9 になっていたりするので注意です。

CloudWatch Logs のタイムゾーン表示:

注意点は、事前に S3 バケットのバケットポリシーを記述し、CloudWatch Logs のサービスから S3 バケットへの Put オブジェクトを許可する必要があります。 詳細は以下のドキュメントをご参照ください。
コンソールを使用してログデータを Amazon S3 にエクスポートする

エクスポートしたログは、ログストリームごとにフォルダができています。

参考:CloudWatch Logs のログストリーム画面

ログストリームのフォルダ内に 000000.gz という圧縮ファイルができています。試していないものの、サイズがある程度の大きさになると 000001.gz というようにファイルが増えるのでしょう。ドキュメントには特に言及なしでした。

解凍したファイルの中身です。一番最初に INIT_START のログが来ていると嬉しいのですが、なぜか真ん中あたりにあります・・・。時系列でエクスポートしてくれないようです。1 回目の実行ログの上に、2 回目の実行ログがあります。

参考:実際のログストリームの中身。一番最初に INIT_START のログがあります。

また、S3 はフォルダ単位のダウンロードができず、ファイルも 1 ファイルずつ選択してダウンロードする必要があります。

まとめ

AWS マネジメントコンソールから手動で S3 バケットにエクスポートするときには以下が注意点でした。

  • 事前に S3 バケットに CloudWatch Logs サービスからの Put を許可すること
  • エクスポートする際に開始時間と終了時間を UTC 時間で指定すること
  • ログファイルは圧縮した状態となること
  • ログファイルの中身は時系列ではないこと
  • S3 のマネジメントコンソールでは 1 ファイルずつしかダウンロードできないこと

上記より、用途としては保管のために Export するための機能かなと思います。
検索性としては CloudWatch Logs の画面からの方が断然良いので。
Athena を使いたい場合も、CloudWatch Logs から直接クエリできます
結論としては、「何も考えずに長らく CloudWatch Logs に保管していたログを、S3 に保管して料金削減したい」という場合に良いのかなと感じました。
手動エクスポートなので、暫定的な対処の位置づけです。
AWS マネジメントコンソールから S3 にエクスポートしたあとに、CloudWatch Logs 側で保持期間を短くする、というイメージですね。

S3 バケット上でもさらに料金を削減するなら、Intelligent-Tiering を設定するのも良いかなと思います。

blog.serverworks.co.jp

なお、標準 S3 の最初の 50 TB の保管料金が、「0.023USD/GB」、CloudWatch Logs は「0.03USD/GB」くらいです。執筆時点 (2023/12/11)。

参考:
料金 - Amazon S3 |AWS

料金 - Amazon CloudWatch | AWS

関連ブログ

CloudWatch Logs を "自動で" S3 にエクスポートする方法。その 1 、Kinesis Data Firehose を使用する方法。 - サーバーワークスエンジニアブログ

CloudWatch Logs を "自動で" S3 にエクスポートする方法。その 2 、EventBridge Scheduler を使用する方法。 - サーバーワークスエンジニアブログ

余談

相変わらず軽いトレイルランニングにハマっています。
最近は「伊豆トレイルジャーニー」という大会を見に行ってきました。
トップのランナーたちは本当に速くてびっくりしました。
富士山と駿河湾が綺麗でした。

山本 哲也 (記事一覧)

カスタマーサクセス部のエンジニア。2024 Japan AWS Top Engineers に選んでもらいました。

今年の目標は Advanced Networking – Specialty と Machine Learning - Specialty を取得することです。

山を走るのが趣味です。今年の目標は 100 km と 100 mile を完走することです。 100 km は Gran Trail みなかみで完走しました。OSJ koumi 100 で 100 mile 砕け散りました。どこかで 100 mile やりたいです。

基本的にのんびりした性格です。座右の銘は「いつか着く」