自責の不具合が原因でAWSから高額請求されました

はじめに 

個人でAWSを使って遊んでたら、自分の作ったアプリの不具合だったり設定が原因で高額請求されてしまいました。APIキーを誤ってぎっはぶなどに上げてしまい、それを悪用されて高額請求されました!という報告は多々ありますが、 自分で埋め込んだ不具合が原因で高額請求されてしまった話は見当たらなかったので残しておきます。

何をしてしまったか

S3に置いた動画ファイルをトリガーにして、
Lambdaを起動、AWS Transcoderで動画処理して処理したファイルをS3に置く。
S3のイベントトリガーの設定が悪く、Transcoderで処理して置いたファイルでもLambdaが起動するという不具合を混ぜ込みました。
Lambda無限起動という不具合です。
翌日夜にいぢくるまで約24h程度動かし続けました。
S3のコンソール開いたときは、血の気が引きました。。

請求の内訳(約24h稼働)

・Lambda:0ドル(22万リクエスト&遅延なしで済んだので無料)
・S3:5ドルくらい
・Transcoder:約6500ドル(税込約7000ドル)

こんな状況下なんですけど、LambdaとS3すげー(安い)とか思いましたw
Transcoder分はゼロの数違うんじゃないか?とか何度も数え直しました。
人間、高額請求されると頭真っ白になって、ゼロの数数え直すの本当なんだなー、と身を以て思い知りました。

1日でこれなので、AWSのサポートから連絡くるまで気がつかなったりしたら、おそらくこれの3〜5倍の請求がきていたと思われます。

支払いについて

Transcoder分は免除してもらったので、S3の5ドルだけです。
AWSのサポート様ありがとうございました。

支払い免除までにやったこと

・不具合を起こしたリソースを停止 or 削除(一次対応)
・サポートに連絡
・免責申請に必要なものの対応、および情報開示
・免責申請を出してもらって待つ

免責申請に必要なこと

・誤って使用してしまったリソースの削除
・どうして本件が起きたのかについての説明
・今後起こさないために、読んで欲しいと言われたWEBページの読書
 及びすぐに対応できるものを対応

Transcoder パイプラインに大量の処理待ちジョブが登録されているので、これの大掃除にとても時間がかかりました。

Transcoderパイプラインは未実行ジョブを全部削除しなくてはいけないのですが、削除するためにはジョブの実行状態がSubmittedのヤツを一つ残らずキャンセルしないといけません。

一括でキャンセルにすることができないので、Submittedの一覧をcliで取得して1件ずつキャンセル要求を出さないといけない。。。
その数約20万件・・・

これの処理に大体3日くらいかかりました。。
※リクエストを横に並べて大量に叩いて怒られたら嫌なので、慎ましく処理させていただきましたw

かかった期間は?

発生から約1か月で承認が下りました。
請求書の再作成は9月10日以降と言われているのでまだ終わってはいません。
今回は不具合が絡んでいたということで、審査に時間がかかったようです。

学んだこと

監視設定は必須。
触る前にCloudWatchで何が監視できるのかを理解して監視設定を入れておけば今回の事象は起きなかったです。
個人でクラウドサービスを使う場合の自衛として、今後はちゃんとアラートが届くようにしていかないとな、と思いました。

ちなみに、会社のアカウントでやったら恐らく免責されないと思うので、
ボーナスカット物の失態だと思います。

会社でAWSを使用するときは、インフラエンジニアに監視設定よろしくやってください、みたいな感じで投げてしまっていますが、
開発時の事故を防ぐという意味でも、使用するエンジニアが監視設定を最初に設定できないとマズイな、と思ったので今後はとりあえず設定は入れようと思います。

お金恐い・・・。

まとめ

不具合起因で高額請求をされてしまっても免責申請は通ります。
が、2度とは御免なので今後は起こさないようにしたいと思います。

この記事が気に入ったらサポートをしてみませんか?