AWS ► Billing
CloudTrail課金恐るべし
AWSBillingCloudTrail

はじめに

こんにちは。インフラエンジニアレベル1のf_prgです。先々月ぐらいからなんかAWSの料金が上がっていたので、原因の調査方法と対策を紹介いたします。

まずは、現状の料金のチェックをします

Billngのダッシュボードからサマリーを見てみます。

pic1_check_billing.png

2016/01/06で$4.19なので、確かに月末には、$22.72にあがりそうです。

料金の詳細をみてみます。

詳細を確認したところ普段使っているのはS3とRoute53ぐらいで、多くのAWSのサービスを使ってないので、すぐに原因がわかりました。

pic2_check_billing_detail.png

AWS Data Transfer APN1-USW2-AWS-Out-Bytes
がとても高かったです。

Billingからレポートをダウンロードしてみます。

pic3-1_aws_usage_report.png

AWS Data Transfer APN1-USW2-AWS-Out-Bytes
に該当するようなものはS3なので、Amazon Simple Storege Service
を指定しました。

pic3-pic3-2_s3_usage_csv_report.png

Service Operation UsageType Resource StartTime EndTime UsageValue
AmazonS3 ListBucket APN1-USW2-AWS-Out-Bytes CloudTrail用S3バケット 2015/12/24 2015/12/25 6,676,475,591
AmazonS3 ListBucket APN1-USW2-AWS-Out-Bytes CloudTrail用S3バケット 2015/12/25 2015/12/26 7,339,948,431
AmazonS3 ListBucket APN1-USW2-AWS-Out-Bytes CloudTrail用S3バケット 2015/12/26 2015/12/27 6,563,745,606
AmazonS3 ListBucket APN1-USW2-AWS-Out-Bytes CloudTrail用S3バケット 2015/12/27 2015/12/28 6,588,483,797
AmazonS3 ListBucket APN1-USW2-AWS-Out-Bytes CloudTrail用S3バケット 2015/12/28 2015/12/29 7,242,939,845
AmazonS3 ListBucket APN1-USW2-AWS-Out-Bytes CloudTrail用S3バケット 2015/12/29 2015/12/30 6,494,980,200
AmazonS3 ListBucket APN1-USW2-AWS-Out-Bytes CloudTrail用S3バケット 2015/12/30 2015/12/31 6,661,957,268
AmazonS3 ListBucket APN1-USW2-AWS-Out-Bytes CloudTrail用S3バケット 2015/12/31 2016/1/1 6,517,448,067
AmazonS3 ListBucket APN1-USW2-AWS-Out-Bytes CloudTrail用S3バケット 2016/1/1 2016/1/2 6,635,636,418
AmazonS3 ListBucket APN1-USW2-AWS-Out-Bytes CloudTrail用S3バケット 2016/1/2 2016/1/3 7,044,241,009
AmazonS3 ListBucket APN1-USW2-AWS-Out-Bytes CloudTrail用S3バケット 2016/1/3 2016/1/4 6,186,638,877
AmazonS3 ListBucket APN1-USW2-AWS-Out-Bytes CloudTrail用S3バケット 2016/1/4 2016/1/5 6,947,555,379

レポートをみると、桁がおかしいですね。。。
過去分からものすごく上がっておりました。
2015年9月のときより、4倍近く

原因

CloudTrailの結果を保存している
CloudTrail用S3バケット
は東京リージョン(ap-northeast-1, APN1)でした。

USW2でListBucketが実行され、その結果のバイトが大きいため
APN1 —> USW2
の転送が大きくなっているようです。

対策

CloudTrailのログは、ずっと溜めているだけの状態にしてました
CloudTrailが、ListBucketをどう使っているのかは不明なので
とりあえず消すことにしました。

  1. CloudTrailの停止
    全リージョン分やっていたのでとりあえず、停止しました。
  2. ログの削除
    個人用なのでそこまで必要性はないので、ログを削除しました。
  3. 新しいS3バケットに対して、CloudTrailの再開
    使用しているリージョンのみ再開しました。
  4. 新しいS3バケットに、30日後に削除するように設定

結果

結果のレポートを抽出し見てみたら
ListBucket

APN1-USW2-AWS-Out-Bytes
がなくなりました。

Service Operation UsageType Resource StartTime EndTime UsageValue
AmazonS3 ListBucket APN1-DataTransfer-Out-Bytes CloudTrail用S3バケット 2016/1/4 2016/1/5 25850
AmazonS3 ListBucket APN1-USW2-AWS-Out-Bytes CloudTrail用S3バケット 2016/1/5 2016/1/6 7166549991
AmazonS3 ListBucket APN1-USW2-AWS-Out-Bytes CloudTrail用S3バケット 2016/1/6 2016/1/7 1738559203
AmazonS3 ListBucket APN1-DataTransfer-Out-Bytes CloudTrail用S3バケット 2016/1/6 2016/1/7 208302819
AmazonS3 ListBucket APN1-DataTransfer-Out-Bytes 新しく用意したCloudTrail用S3バケット 2016/1/6 2016/1/7 1132

まとめ

個人だとログ消すことはすぐにできますが、企業だとではなかなか難しいそうですね。
ちなみにBillingアラートはしてて届いてましたが、見てなかったです。orz

参考資料・リンク

AWSのS3とCloudTrailのドキュメント