AWS Lambdaの基礎
Lambdaインスタンスの起動
初回実行時はウォームアップ(コンテナ作成や言語コンパイル等)に時間がかかる。
一定時間経過後にインスタンスは消滅する
コールドスタートとは
ウォームアップに時間がかかること。
常時ウォームアップ状態にしておくオプションもある
https://qiita.com/ny7760/items/700ae917da2c5b5e3f8a
Lambdaのネットワーク
・LambdaはAWSが所有するVPC内で実行される
・ユーザー作成のVPC内に置くことも出来る
2019年のアップデートでネットワークインターフェースが改善
- これまで、カスタマー所有のVPCへアクセスするには、都度自動でENIが作られていた(=ENIの増殖)
- 今回のアップデートにより、カスタマーVPC内の単一のENIにNAT接続するようになった(1つのENI、1つのプライベートIPアドレスを使用)
https://aws.amazon.com/jp/blogs/news/announcing-improved-vpc-networking-for-aws-lambda-functions/
Lambda VPCからインターネットへ接続する方法
https://qiita.com/keitakn/items/b140b7d63f81d86233ce
スケーリング
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/invocation-scaling.html
デプロイ
デプロイパッケージとは
デプロイパッケージは、関数のコードと依存関係を含むZIPアーカイブです
https://dev.classmethod.jp/articles/aws-lamda-deploy-package/
Lambdaレイヤー
vendorフォルダ的なものは、毎回デプロイしなくてもレイヤーとして切り出しておける
アップロードしたzipは/optに配置される。
言語ごとにPATHが決まっているので、その場所に合わせる形でzipをアップロードするか、環境変数を指定する
https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html#configuration-layers-path
https://dev.to/nckslvrmn/overwriting-shared-libraries-in-aws-lambda-479h
コンテナデプロイ
概要
https://dev.classmethod.jp/articles/lambda-support-oci-container-image/
チュートリアル
https://dev.classmethod.jp/articles/lambda-container-pkgfmt-with-sam-cli/