LoginSignup
5
5

More than 5 years have passed since last update.

S3のアクセス状況を可視化してみる

Last updated at Posted at 2014-12-08

きっかけ

先月CloudFrontのアクセス数などはCloudWatchで見れるようになりました。

しかしS3のアクセス状況はそのようなMetricsがなく、ログを解析するしかありません。
アクセス規模が小さくてEMRを持ち出すほど大げさではない場合、lambdaで処理すれば楽に可視化まで持って行けるのではないかと考えました。

実装

lambda2cw
ログファイルがPUTされた時にフックして、ログを解析してCloudWatchのカスタムメトリクスとしてPutMericDataを行います。
想定としては、bucket内のlogs/ から始まるキーがログファイルとなります。

デモ

負荷を発生

適当にabで負荷をかけます。

$ while [ 1 ] ; do ( ab -c 4 -n $(echo $[ $RANDOM % 100 ]) http://lambda2cw.s3-us-west-2.amazonaws.com/index.html & ); sleep 60 ; done

ローカル実行

$ node invoke.js input.json
lambda2cw Started
processing s3://lambda2cw/logs/2014-12-07-20-17-45-0C579438788F858B
20 metrics pushed. 46 left
20 metrics pushed. 26 left
20 metrics pushed. 6 left
6 metrics pushed. 0 left
SUCCESS undefined

lambda上で実行

2014-12-08 06:18:22 UTC 2014-12-08T06:18:22.723Z    6alf80tr75guxrdo    lambda2cw Started 
2014-12-08 06:18:24 UTC START RequestId: 18e0b9ed-7ea2-11e4-bae6-95e15fd35a15 
2014-12-08 06:18:24 UTC 2014-12-08T06:18:24.262Z    18e0b9ed-7ea2-11e4-bae6-95e15fd35a15    processing s3://lambda2cw/logs/2014-12-08-06-18-18-EF79DF76713F7118 
2014-12-08 06:18:25 UTC 2014-12-08T06:18:25.563Z    18e0b9ed-7ea2-11e4-bae6-95e15fd35a15    20 metrics pushed. 38 left 
2014-12-08 06:18:26 UTC 2014-12-08T06:18:26.742Z    18e0b9ed-7ea2-11e4-bae6-95e15fd35a15    20 metrics pushed. 18 left 
2014-12-08 06:18:27 UTC 2014-12-08T06:18:27.903Z    18e0b9ed-7ea2-11e4-bae6-95e15fd35a15    18 metrics pushed. 0 left 
2014-12-08 06:18:27 UTC END RequestId: 18e0b9ed-7ea2-11e4-bae6-95e15fd35a15 
2014-12-08 06:18:27 UTC REPORT RequestId: 18e0b9ed-7ea2-11e4-bae6-95e15fd35a15  Duration: 3798.96 ms    Billed Duration: 3800 ms Memory Size: 128 MB    Max Memory Used: 18 MB  

CloudWatchのグラフを確認

Graph

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5