AWS に毎日100ドル払っていた話

ちゃんとCost Explorer を見ましょうという話。

ホント、それに尽きます。

マイクロバッチ

みなさんはマイクロバッチという言葉をご存じでしょうか。

簡単にいうと、短期間のスパンで動く、軽量バッチです。

これをAWS Fargateで動かす実装になっており、その運用がはじまりました。

特に問題もなく動いていたため、対して気にしていなかったのですが、数か月後、ふとCost Explore を見ると、 

AWS Config の請求がデイリーで100ドルを超えている。という事態になりました。

AWS Config

AWS Config(リソースのインベントリと変更の追跡)| AWS

AWSでのリソースの変化を記録してくれるものです。

ここまでくると、知ってる方はなんとなく、事情が飲み込めるのではないかと思います。

Fargate

いわずと知れたAWSのマネージドコンテナ環境ですね。

EC2インスタンスをあらかじめ用意することなく動作するコンテナです。そのため、コンテナはAWSVPCモードが必須です。

何がおこっていたのか。

マイクロバッチが毎分、Fargateを起動します。

すると、ENIが作られ、結果、Subnetが変更されます。

つまり、これだけで4つのリソースが変化します。

また、バッチが完了すると、ENIが削除され、結果、Subnetが変更されます。

もうおわかりですね? マイクロバッチが動くたび、AWS Configに4つのリソース変化が記録されます。

それが毎分動くということは、

4* 60 * 24 =5,760 なんと1日あたり5,760の変更がAWS Configに記録されます。

AWS Configの料金に関しては

AWS リージョンごとに、AWS アカウントに記録された設定項目あたり 0.003USD をお支払いいただきます。設定項目は、リソースの設定や関係に変更があった際に記録されます。

とありますので

5,760 * 0.003 = $17.28

なんと1分毎に動くマイクロバッチが一つあるだけで17ドルかかる計算になります。

こんなのがいくつもあると……

ということで、AWS Configを利用してこういう変なことをするときは十分気を付けましょう。