AWSで無限課金しそうになった話
先日とあるプロジェクトでS3にプロフィール画像を登録したイベントでLambda関数を実行して、サムネイルを作成する仕組みを作りました。
仕事後に用事があったので、動作確認をしないまま帰宅したのですが翌朝S3を見ると。。。
hoge.png hoge_thumb.png hoge_thumb_thumb.png hoge_thumb_thumb_thumb.png ...
(゚ロ゚;)エェッ!? プログラマなので見た瞬間に何が起きたかは理解しました。
なんとサムネイル画像の保存のイベントから更にサムネイル画像のLambda関数がキックされて、サムネイルの無限生成が発生していました。
幸いS3のキー長の制限かなにかに引っかかったのか1ファイル毎に200ファイル前後のサムネイルが生成されるという現象で済みました。
_thumb
というサフィックスを拡張子の前に付与していたので助かりましたが、これがちょっとした検証のつもりで同じ名前でPUTしていたら無限ループになっていた思います。
久しぶりにヒヤリ・ハットを経験しました。
学び
- イベントを検知するフォルダーとアウトプットの出力フォルダーは分ける