今更ながらlambdaについて勉強しました。
今回は概要についてです。
lambdaとは
- サーバーの管理を気にすることなくコードを実行できるサービス
- ほかのAWSのサービスをトリガーにコードを実行できる
- APIのように使うことができる
- 課金されるのはコードを実行した時間と、回数によって課金(月に100万リクエストまで無料)
- デフォルトで使える言語はJava、Node.js、C#、Python、Go、PowerShell、Ruby
- Javaは実行時にコンパイルが行われる関係で速度が遅い
- lambda layerを利用することでほかの言語も使用可能
lambda functionとは
- 実際に実行されるコード
- それぞれが隔離されたコンテナ内で実行される
- lambdaの実行環境はAmazonLinux
lambda functionのコールドスタートとウォームスタート
コールドスタート
ライフサイクルの1~6までをすべて実行するのがコールドスタート
ウォームスタート
作成したコンテナを再利用して1~6の処理を省略することで効率化
lambda functionのライフサイクル
- ENIの作成(VPC利用時のみ)※
- コンテナの作成
- デプロイパッケージのロード
- デプロイパッケージの実行
- ランタイムの起動・初期化
- 関数/メソッドの実行
- コンテナの破棄
※ENI・・・VPCで利用できる仮想NIC
lambda layerとは
- 複数のlambda functionで共通する処理や、使用するライブラリを一つにまとめたもの
- ひとつのlambda functionに使用できるレイヤーは最大5つまで、ただし、容量制限もある(公式サイト)
今回、lambdaについて概要をまとめてみました。
次回は実際にlambda functionを実際に使ってみたいと思います。