AWSにオンプレミスからサービスを移行するとき、最近の流れだとまず
Cacoo(https://cacoo.com/)でネットワーク図を書いた上で、おもむろに
簡易見積もりツール(http://calculator.s3.amazonaws.com/index.html?lng=ja_JP)
を開いて見積もりを始めることになるわけですが、この時EC2のデータ転送量
(特にデータ送信)をどれくらい載せるか、っていうのがドンブリだったので
今回Apacheのアクセスログからカウントしてみました。
【作業内容】
■http://cohakim.com/archives/1971
Apacheのログから総転送量を算出する
$ cat az-nyan_access_log-* | awk '{ SUM += $5} END { print SUM/1024/1024 }'
※「転送量がGB単位で表示される」ってあるけどアクセスログの転送量は%bだとバイト単位なので
「MB単位」の間違いだと思った。
上記を見て作業。
【追加のメモ】
apacheのaccess_logがいずれの書式を利用しているかによりますが、
例えばcombined
> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
を利用していて、かつログローテーションしている場合は、%b(送信されたバイト数)が10番目なので
cat access_log.201406* | awk '{ SUM += $10} END { print SUM/1024/1024 }'
の様にして転送量(%bの部分)をMB単位で算出できます。
※アクセスログが大きいところでやる場合は、ロードアベレージが跳ね上がるので、
1日ずつとかでやってみてください。
※ステータスコード30xで%bの所にハイフンとかあるけどSUM大丈夫?検証
例)
xxx.xxx.xxx.xxx - - [21/May/2014:12:27:17 +0900] "GET /hoge/fuga/hoge/button1.gif HTTP/1.1" 200 406 "http://hoge.fuga.hoge.jp/hoge/StyleSheet.css" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0" xxx.xxx.xxx.xxx - - [21/May/2014:12:27:17 +0900] "GET /hoge/fuga/hoge/button1.gif HTTP/1.1" 200 - "http://hoge.fuga.hoge.jp/hoge/StyleSheet.css" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0" xxx.xxx.xxx.xxx - - [21/May/2014:12:27:17 +0900] "GET /fuga/ascend.gif HTTP/1.1" 200 590 "http://hoge.fuga.hoge.jp/index.php" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"
上記について
cat access_log_test | awk '{ SUM += $10} END { print SUM }'
→996
→ハイフンが含まれていたら無視してくれる模様。OK。