Lambda

Lambda は、サーバーレスアーキテクチャを実現する FaaS(Function as a Service) 型のサービスです。

インフラの管理を不要にし、Event Source(イベントソース) からのトリガーに応じて自動的にコードを実行します。

Lambda は多様な Event Source に対応しており、例えば API Gateway からの HTTP リクエスト、S3 バケットへのファイルアップロード、EventBridge によるイベントスケジュール、SNS メッセージの受信、DynamoDB Streams の更新イベントなどを契機に処理を実行できます。これにより、完全なイベント駆動型アーキテクチャを簡単に構築できます。

関数実行時には、エントリーポイントとなる Handler(ハンドラー) が呼び出され、リクエスト内容に応じて処理が実行されます。Lambda の実行環境はリクエスト数に応じて自動的に コンカレンシー(並列スケール) し、サーバー容量を意識せず高負荷にも対応します。

Provisioned Concurrency(プロビジョンドコンカレンシー) を利用すれば、関数をあらかじめ一定数の環境でウォームアップしておき、Cold Start(コールドスタート) による起動遅延を防ぐことができます。

課金は100ミリ秒単位で行われるため、コスト効率に優れた運用が可能です。Lambda では、実行ロール(Execution Role / IAM Role) を利用してアクセス権限を細かく制御し、環境変数や SSM(AWS Systems Manager)パラメータストア を用いて設定情報を安全に外部化できます。

Layers(レイヤー) 機能によって共通ライブラリや依存パッケージを共有化し、複数関数間で効率的に利用することが可能です。

Lambda 関数は コンテナイメージ にも対応しており、最大10GBまでのイメージを ECR(Elastic Container Registry) からデプロイできます。これにより、DockerベースのアプリケーションをLambda上で実行し、開発環境との一貫性を保つことができます。

Lambda は VPC(Virtual Private Cloud)接続 に対応しており、プライベートサブネット内の RDS(Relational Database Service) や ElastiCache、内部APIへのアクセスも安全に行うことができます。

ワークフロー管理では、Step Functions と統合することで、複数のLambda関数を順序制御・分岐・例外処理を含めてオーケストレーションできます。また、失敗時には DLQ(Dead Letter Queue) に未処理イベントを送信し、Retry Policy(再試行ポリシー) と組み合わせることで、再試行やエラーハンドリングを柔軟に制御できます。

Lambda 関数はデプロイ時に Version(バージョン)Alias(エイリアス) を管理でき、安定版リリースの固定化やBlue/Greenデプロイ(段階的なロールアウト)を容易に実現します。これにより、運用中の関数を安全かつ効率的に更新することが可能です。

重要用語

ユースケース

  • リスト1
  • リスト2
  • リスト3

ベストプラクティス

  • リスト1
  • リスト2
  • リスト3

高可用性・冗長化

  • リスト1
  • リスト2
  • リスト3

セキュリティ

  • リスト1
  • リスト2
  • リスト3

運用・監視

  • リスト1
  • リスト2
  • リスト3

デフォルトのリミット値

リミット事項 上限数
項目1上限1
項目2上限2
項目3上限3
項目4上限4
項目5上限5

AWS CLIのサンプルコード

vpc を作成
vpc を作成
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc

Terraformのサンプルコード

vpc を作成
bbbbbbbbbbbbbbbbbbbbbbb
ddddddddddddddddddddddd
vpc を作成
xxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyy

課金モデル

項目 内容
項目1内容1
項目2内容2
項目3内容3
項目4内容4
項目5内容5

公式ページ

AWSドキュメント