目次
AWS Lambda の特徴
- サーバーレスアプリケーションを実現する為の代表的なサービスです。
- ENI(Elastic Network Interface)を通して VPC 内のリソースにアクセスが出来ます。
- Rate や Cron を利用してスケジュールを設定し、特定時刻に Lambda 関数を実行できます。
- Blueprint(ブループリント)を利用してゼロから開発するのではなく、実績のあるソースを利用して短時間で開発ができます。
- バージョンを使用して Lambda 関数のデプロイができます。
- Push モデルと Pull モデルがあります。
- Push モデル ← Lambda に向けてイベントを発行します。順序は保証されません。3回リトライを実行します。(S3 など)
- Pull モデル ← Lambda からイベントを発行します。順序が保証されます。(DynamoDB ストリーム、Kinesis ストリーム等)
- (Push モデル)Amazon Cognito は Lambda 関数を同期的に呼び出します。
- (Push モデル)Amazon SNS は Lambda 関数を呼び出すことができます。
Lambda で課金される要件について
- 関数(ファンクション)に対するリクエストの数
- コードの実行にかかる時間
Lambda が ENI を利用して VPC にアクセスする構成

ENI(Elastic Network Interface)とは
- VPC の IPv4 アドレス範囲からのプライマリプライベート IPv4 アドレス
- VPC の IPv4 アドレス範囲からの 1 つ以上のセカンダリプライベート IPv4 アドレス
- プライベート IPv4 アドレスごとに 1 つの Elastic IP アドレス (IPv4)
- 1 つのパブリック IPv4 アドレス
- 1 つ以上の IPv6 アドレス
- 1 つ以上のセキュリティグループ
- MAC アドレス
- 送信元/送信先チェックフラグ
Lambda関数がプライベートサブネット内にいる場合
Lambda関数がプライベートサブネット内にいる場合で、インターネットにアクセスをしたい場合は、NATゲートウェイ(NatGateway)が必要になります。
Lambda 関数のエイリアス
Lambda 関数の 1 つ以上のエイリアスを作成できます。Lambda のエイリアスとは、特定の関数のバージョンに対するポインタのようなものです。ユーザーは、エイリアス Amazon リソースネーム (ARN) を使用して関数のバージョンにアクセスできます。
Lambda 関数のエイリアス
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-aliases.html
エイリアスのカナリアデプロイ(ルーティング設定)
Lambda エイリアスのルーティング設定をすることでカナリアデプロイができます。
Lambda 関数のリソースベースポリシーとは
Lambda 関数のリソースベースポリシーとは、その Lambda 関数自身に直接ぶら下がる許可設定です。この関数を、どの AWS アカウント・どの AWS サービス・どの組織に使わせるかを、関数側に書くポリシーです。Lambda は関数やレイヤーに対してリソースベースポリシーをサポートし、他アカウント、Organizations、AWS サービスにアクセス許可を与えられると説明しています。
Lambda 関数の実行ロールとの違い
Lambda 関数のリソースベースポリシーと実行ロールは役割が異なります。Lambda 関数の実行ロールは Lambda 関数が外へ何をしに行けるかを決めます。たとえば DynamoDB を読む、S3 に書く、CloudWatch Logs に出す、などです。
一方、リソースベースポリシーは外から誰がこの Lambda 関数を呼べるかを決めます。たとえば S3、EventBridge、API Gateway、別アカウントの IAM ロールなどが、この関数を invoke できるようにするために使います。
- Lambda 実行ロール = Lambda が他サービスへアクセスするための権限。
- Lambda リソースベースポリシー = 他サービスや他アカウントが Lambda を呼ぶための権限。
コメント