BeeX Technical BlogAWS CloudWatchログ容量の推移を確認するワンライナー

鈴木です。最近、AWS CloudWatchだけで多額の費用を発生させてしまいました。AWS CloudWatchのログは、保存されているログの容量に対してだけではなく収集した量に対しても費用がかかります。費用は東京リージョンで以下の通りです。

保存 0.033 USD / GB / 月
収集 0.76 USD / GB

収集の費用は23か月保存の費用に相当します。大量のログをCloudWatchに集約したいけど費用を抑えたいから保存期間を短くしよう、などと考えても、意外と費用を抑えられないかもしれないので、この料金体系には要注意です。

収集したログ容量の推移

CloudWatchが取り込んだログの量の日次推移をawscliで調べる方法です。保存している容量ではなく、収集したトラフィック量です。

$ aws cloudwatch get-metric-statistics --namespace AWS/Logs --metric-name IncomingBytes --start-time 2020-04-01T00:00:00 --end-time 2020-05-01T00:00:00 --period 86400 --statistics Sum | jq -r ".Datapoints[] | [.Timestamp, .Sum] | @csv" | sort

 

こんなイメージでCSV形式で出力されます。数字はバイト単位です。このサンプルはあまり使っていないAWSアカウントなのでとても少ないです。

"2020-04-01T00:00:00Z",8946
"2020-04-02T00:00:00Z",10503
"2020-04-03T00:00:00Z",9134
"2020-04-04T00:00:00Z",8982
"2020-04-05T00:00:00Z",8944
"2020-04-06T00:00:00Z",8904
"2020-04-07T00:00:00Z",9082
"2020-04-08T00:00:00Z",9009

 

–period 86400 は1日ごとの取り込んだ量という指定です。

–start-time、–end-time は推移を調べる期間の指定です。

jqで日付と取り込んだ容量の2列のCSVファイルに変換しています。@csv@tsvにするとタブ区切りでの出力になります。

awscliからはなぜか時間順序がばらばらで出力されるので、日付順に並べるためにsortコマンドを最後に使っています。

jqコマンドは環境によっては別途インストールが必要です。awscliから出力されるJSONを見やすくするために便利なのでjqはインストールしておいて損はないです。以下のとおり簡単にインストールできます。

CentOS

$ sudo yum install jq

 

Ubuntu

$ sudo apt install jq

 

保存しているログ容量

すでに保存されているログ容量を確認するワンライナーも書いておきます。ロググループごとの容量です。

$ aws logs describe-log-groups | jq -r ".logGroups[] | [.logGroupName, .storedBytes] | @csv" | sort -t, -k2,2nr

 

jqでロググループ名と保存している容量の2列のCSVファイルに変換しています。sortコマンドで容量の多い順に並べています。

以上、参考になれば幸いです。

関連サービス:SAPシステム移行・環境構築サービス

SAPシステム移行・環境構築サービス

SAPを中心とした基幹システムをパブリッククラウド等最新のIaaS基盤に移行します。2016年3月設立の若い会社ですが、集まってきた精鋭コンサルタントが携わってきた数多くのプロジェクトの経験をもとに、安全かつ確実にシステムを移行します。

詳細を見る

カテゴリ

タグ

BeeX Technical Blogについてのお問い合わせ

BeeX Technical Blogのエントリにご質問が御座いましたらお気軽にお問合せください。

お電話でのお問い合わせ

☎ 03-6260-6240

受付時間 平日9:30〜18:00

フォームでのお問い合わせ

お問い合わせフォーム