AWS Lambda

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 エイリアスのルーティング設定をすることでカナリアデプロイができます。

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-aliases.html#configuring-alias-routing

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 を呼ぶための権限。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

AlphaOmega Captcha Classica  –  Enter Security Code
     
 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください