AWS Lambda
AWS Lambda はサーバーを一切管理することなく、コードを実行できるサーバーレスコンピューティングサービスです。イベントが発生したときだけコードが動き、アイドル時の課金はゼロです。
概要
Lambda を使うと、開発者はサーバーのプロビジョニング・OS 管理・パッチ適用・スケーリングといったインフラ作業から完全に解放されます。記述したコード(関数)をアップロードするだけで、AWS がすべての実行環境を準備・管理します。
サーバーレスとは
「サーバーレス」とは物理的にサーバーが存在しないという意味ではなく、開発者がサーバーを意識・管理しなくてよいという意味です。AWS が内部でサーバーを運用しますが、利用者はコードだけに集中できます。
- サーバー管理不要: OS パッチ・容量設定・スケーリング設定がすべて自動
- 自動スケール: リクエストが増えれば Lambda が自動で並行処理を増やす。減れば自動で縮退する
- 高可用性: AWS がマルチ AZ での冗長化を自動で担保する
CP試験で押さえるポイント
- Lambda はイベント駆動で動作し、イベントがなければコードは実行されない(アイドルコストゼロ)
- 課金はリクエスト数と実行時間(ミリ秒単位)の組み合わせ
- 1 回の実行時間は最大 15 分という上限がある
- 「サーバーの管理が不要」「スケールを自動化したい」というキーワードで Lambda を選ぶ
- Lambda の責任共有モデル:実行環境(OS)は AWS が管理し、コード・データは顧客が管理する
- API Gateway と組み合わせることで HTTP API のバックエンドとして利用可能
イベント駆動アーキテクチャ
Lambda は何らかの「イベント」をトリガーとして起動します。イベントがない時間はコードが一切実行されないため、EC2 のように常時稼働するサーバーと比べて無駄なコストが発生しません。
| トリガー(イベントソース) | 具体例 |
|---|---|
| API Gateway | HTTP リクエストが届いたとき |
| S3 | ファイルがアップロードされたとき |
| DynamoDB Streams | テーブルのデータが変更されたとき |
| CloudWatch Events / EventBridge | スケジュール(cron)や AWS リソースのイベント |
| SNS / SQS | メッセージキューにメッセージが届いたとき |
課金モデルと実行制限
課金の仕組み
Lambda の料金は以下の 2 軸で計算されます。
- リクエスト数: 関数が呼び出された回数(毎月最初の 100 万リクエストは無料枠あり)
- 実行時間: コードが実際に実行された時間(ミリ秒単位)× 割り当てメモリ量
コードが動いていない時間(待機中・アイドル中)は一切課金されません。トラフィックが少ない夜間やオフピーク時にも EC2 のように費用がかかることがないため、アクセスが断続的なシステムでは大幅なコスト削減につながります。
実行時間の上限
1 回の Lambda 関数実行は最大 15 分という制限があります。これより長い処理(大規模バッチ処理・長時間のデータ変換など)は EC2 やコンテナサービスを利用する必要があります。
| 制限項目 | 上限値 |
|---|---|
| 最大実行時間 | 15 分(900 秒) |
| メモリ割り当て | 128 MB ~ 10,240 MB |
| デプロイパッケージサイズ | 50 MB(圧縮)/ 250 MB(解凍) |
API Gateway との組み合わせ
Lambda 単体では HTTP リクエストを直接受け付けることができません。Amazon API Gateway を Lambda の前段に配置することで、Web API や REST API を構築できます。この組み合わせはサーバーレス Web アプリケーションの代表的なパターンです。
- API Gateway がリクエストを受信 → Lambda 関数を起動 → 結果をレスポンスとして返す
- スケーリング・認証・レート制限は API Gateway 側で管理できる
- モバイルアプリのバックエンドや マイクロサービス API の構築に適している
関連サービスとの違い・使い分け
| サービス | 実行時間 | サーバー管理 | 適したユースケース |
|---|---|---|---|
| Lambda | 最大 15 分 | 不要(サーバーレス) | イベント駆動・短時間の処理・API バックエンド |
| EC2 | 制限なし(常時稼働) | 必要(OS 管理あり) | 長時間処理・細かいカスタマイズが必要な場合 |
| ECS / EKS(Fargate) | 制限なし | 不要(サーバーレス可) | コンテナ化されたアプリ・15 分以上の処理 |
| Elastic Beanstalk | 制限なし | 自動管理(EC2 が裏で動く) | コードをデプロイするだけで Web アプリを公開 |
試験のキーワード:「サーバーの管理が不要」「自動でスケール」「アイドル時のコスト削減」「イベントに応答」→ Lambda が正解の可能性が高いです。
確認問題
付録:公式ドキュメント・Black Belt 動画
さらに深く学びたい方は、AWS公式の以下のリソースを参照してください(いずれも外部サイトが開きます)。