起動に時間のかかるファンクションで困っていたのかもしれない。
背景
- HTTP リクエストを処理するだけの Lambda ファンクションがある
- ほとんどリクエストがこないのでそのたびに新規作成してる
- リクエストの送信元が設定している応答タイムアウト時間が短くて、エラーになりやすい
目的
世の中の知見
- GitHub - juanjoDiaz/serverless-plugin-warmup: Keep your lambdas warm during winter. ♨
- Lambda Warmer: Optimize AWS Lambda Function Cold Starts - Jeremy Daly
- Serverless Frameworkで行うLambdaのコールドスタート対策 - Qiita
ソリューション
Lambda ファンクションのインスタンスは VPC で実行するなら15分、そうでないなら5分くらいで廃棄されるようです。
廃棄までの時間内に新しいイベントが到着すれば、継続して動き続けるはず。
できるだけ費用がかからないように、という前提があっても、定期的にリクエストを送信する方法はいろいろ考えられます。
- 外形監視サービスを利用する
- インテグレーションサービスを利用する
- Get Started - IFTTT で指定した URL へアクセスするだけのアプリを定期実行する
- スクリプトサービスを利用する
- Apps Script – Google Apps Script で指定した URL へアクセスするだけのスクリプトを定期実行する
- 作業PCのスケジューラーを利用する
- ログオンしているときだけ定期的に実行するコマンドを作る
- どこかに用意した仮想マシンを利用する
- 指定した URL へアクセスするだけのスクリプトを定期実行する