導入
「サーバーを立てずに動くコンピューティング」がLambdaです。しかし何でもLambdaで作ればいいわけではありません。SAAでは、EC2とLambdaの使い分けの判断基準が問われます。
説明
AWS Lambda は、コードをアップロードするだけでAWSが実行環境を管理してくれるサーバーレスなコンピューティングサービスです。イベント(S3へのアップロード、API Gatewayからのリクエスト、DynamoDBの変更など)をきっかけに関数が実行されるイベント駆動な設計が基本です。
flowchart LR
E1["S3にファイル追加"] --> L["Lambda関数"]
E2["API Gatewayリクエスト"] --> L
E3["DynamoDBの変更"] --> L
L --> O["処理結果を出力"]
Lambdaの主な制約と特徴は次の通りです。
- 実行時間の上限は15分。それを超える処理には向かない
- 呼び出しが増えると自動でスケールする(同時実行数の設定で上限を制御可能)
- 初回や久しぶりの呼び出しで初期化コストがかかる コールドスタート がある
- 課金はリクエスト数と実行時間に応じた従量課金で、待機コストはゼロ
| 観点 | EC2向き | Lambda向き |
|---|---|---|
| 実行時間 | 長時間・常駐 | 短時間(〜15分) |
| 負荷パターン | 一定〜緩やかな変動 | 断続的・イベント駆動 |
| 運用 | OS/ミドルウェアの管理が必要 | サーバー管理不要 |
| コスト | 稼働時間課金(アイドルでも課金) | 実行分のみ課金 |
読んでみよう
「サーバー管理を最小化したい」「イベントをトリガーに短時間の処理をしたい」「使った分だけ払いたい」とあればLambda、「長時間の常駐処理」「特殊なOS/ミドルウェア依存」とあればEC2、という判断基準を持っておきましょう。