Lambda@Edge でプレウォーミングを行う方法を教えてください
困っていた内容
アプリへのプッシュ配信に画像を添付しており、画像をCloudFront経由で取得しています。 その際に Lambda@Edge を使って、URLの書き換えを行っているのですが、 静的なビューワーリクエストでスロットリングが発生しています。
スロットリングが発生しないように、Lambda@Edge でプレウォーミングを行うにはどのようにすればよいでしょうか?
どう対応すればいいの?
Lambda では「予約された同時実行」および「プロビジョニングされた同時実行」を使い、 スロットリングを回避することが可能です。
一方、Lambda@Edge では「予約された同時実行」および「プロビジョニングされた同時実行」は、 現在のところ共に対応しておりません。 そこで、対応策としては、事前にアクセスすることで、コールドスタートを回避することになります。
Lambda@Edge を CloudFrontに設定した後、 世界中の AWS ロケーションに関数をレプリケートしつつ、 リクエスト数の状況に合わせて、同時実行数を自動的に調整します。
Lambda@Edge のリクエスト数が急上昇した場合、 Lambda@Edge はリクエスト数に合わせて1分あたり同時実行数 500 ずつ増加し続け、スケールアウトします。