Lambda無限ループでクラウド破産しないために
Lambda無限ループでクラウド破産しないためにどうしたらいいか考えました。
Lambda無限ループ
AWSのFaaSであるLambdaはサービスへのなんらかのアクションをトリガーにサーバーレスで稼働してくれます。
...が、一定の条件を満たすと「無限ループ」になってしまい、ものの数日でクラウド破産します。この現象を「Lambda無限ループ」と呼びましょう...!
Lambda無限ループになるパターン
Lambdaが他のサービスを介してループになっていないことに注意することが最も重要です。
例えば、下図のような構成を考えている人は、lambdaを実行する前に無限ループにならないか、よく考えとよいでしょう。
Lambda無限ループと私
今年の2月にこんな記事を書き、ありがたいことに、割とたくさんの方に見ていただいていています。
tasotasoso.hatenablog.com
ところで、この構成をなんですが、Lambdaで生成したHTMLを元のS3に戻したとき、もし戻り先のバケットをLambdaのトリガーの対象にしておくと、無限ループが発生してしまいます。
回避方法
自分は怖がりなので以下の対策をしています。
- 新しい構成を試したときはコンソールの請求をこまめにチェックしする。
- 請求アラートを設定する(AWSで請求アラートを設定する - Qiita)。
クラウドサービス徹底比較・徹底解説 (2019年版)(クラウド破産について | クラウドサービス徹底比較・徹底解説 (2019年版))の対策に上げられているように、slackに請求金額を飛ばすのも、すごくよさそうです。
ほかのクラウド破産事例について
ほかの事例についてもすごく細かく載っているので、使い始める人はもちろん、慣れてきてそろそろやらかしそうな人はぜひ一読してください。
cloud-textbook.com