結論(試験でまず押さえるべきこと)
- AWS Lambdaは「イベント(トリガー)が発生したときだけコードを実行する」サーバーレスの実行基盤。
- 課金は主に「リクエスト回数」と「実行時間(Duration)」で、実行時間は1ms単位で切り上げ。
- 1回の実行(1 invocation)の最大実行時間は900秒(15分)。
- コードはZIPだけでなくコンテナイメージでもデプロイでき、イメージサイズは最大10GB(非圧縮・全レイヤー合計)。
用語ミニ辞典(初学者が混乱しやすい語だけ)
- サーバーレス:サーバーが無いという意味ではなく、OS管理や台数管理などの運用負担をAWS側に寄せ、利用者は主にコードと設定に集中できる実行形態。
- Lambda関数(Function):Lambda上で実行するコードと、その実行設定(メモリ、タイムアウト、権限など)のまとまり。
- トリガー(イベントソース):Lambda関数を起動するきっかけ。例:S3へのアップロード、APIリクエスト、スケジュール実行など。
- イベント駆動:何かが起きた(イベントが発生した)タイミングで処理を起動する設計。待機中のサーバーを立てっぱなしにしない発想。
AWS Lambdaの特徴(Cloud Practitionerで問われやすい観点)
1) 「イベントが来たときだけ動く」=イベント駆動が基本
Lambdaは、S3・SQS・API Gateway・EventBridgeなどのAWSサービスと連携し、イベントを受けて自動で起動するのが典型です。 公式の概要は以下を参照できます: https://aws.amazon.com/lambda/
2) 対応言語(代表例)
試験対策としては「Lambdaは複数言語に対応し、代表的にはNode.js / Python / Javaなどが使える」程度の把握で十分なことが多いです。 AWS公式FAQでは、Lambdaがネイティブにサポートする言語例として Java / Go / PowerShell / Node.js / C# / Python / Ruby を挙げています: https://aws.amazon.com/lambda/faqs/
3) 実行時間の上限(重要)
Lambda関数のタイムアウト(最大実行時間)は最大900秒(15分)です。 コンソール設定としても「最大900秒(15分)」まで調整できることが明記されています: https://docs.aws.amazon.com/lambda/latest/dg/configuration-timeout.html
4) 課金の基本(ミリ秒課金の意味)
LambdaのDuration(実行時間)は「コードが実行を開始してから返る(または終了する)まで」で計算され、最も近い1msへ切り上げられます。 詳細はLambda料金ページ: https://aws.amazon.com/lambda/pricing/
5) コンテナイメージでのデプロイ(10GB上限)
Lambdaはコンテナイメージでも関数を作成できます。最大イメージサイズ(非圧縮・全レイヤー合計)は10GBです: https://docs.aws.amazon.com/lambda/latest/dg/images-create.html
トリガー(イベントソース)を「試験で選べる」形に整理
よく出る代表トリガー早見表
| トリガー(イベント) | 典型ユースケース | 試験での見分けポイント |
|---|---|---|
| S3:オブジェクト作成/削除 | 画像アップロード後にサムネ生成、ファイル形式変換 | 「ストレージに置いたら自動処理」=S3→Lambda |
| DynamoDB:更新(Streams) | 更新を検知して集計テーブル更新、監査ログ作成 | 「DB更新に連動して処理」=DynamoDB Streams→Lambda |
| SQS:キューのメッセージ | 注文処理などをキューに積み、順次処理(疎結合・平準化) | 「キューでバッファ」=SQS→Lambda |
| API Gateway:HTTPリクエスト | サーバーレスAPI(REST/HTTP API) | 「HTTPで呼べるAPI」=API Gateway→Lambda |
| EventBridge:スケジュール | 毎日/毎時のバッチ、定期集計、定期通知 | 「定期実行」=EventBridge→Lambda |
1) S3トリガー(アップロードをきっかけに処理)
S3はオブジェクト作成/削除などのイベントでLambdaを起動できます(例:画像アップロード→リサイズ)。 公式ドキュメント: https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html
例(流れ)
- ユーザーがS3バケットに画像をアップロード
- S3イベント(ObjectCreated)が発生
- Lambdaが起動し、画像を縮小して別プレフィックスへ保存
2) DynamoDB更新トリガー(Streams)
DynamoDB Streamsを使うと、テーブルの更新に応じてLambdaで追加処理を実行できます。 公式ドキュメント: https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html
例(用途)
- 注文テーブル更新→集計テーブル更新
- 更新イベント→監査ログとして別の保管先へ保存
3) SQSトリガー(キューで“ためて”処理)
SQSやDynamoDB Streamsのような「キュー/ストリーム」系は、Lambdaがイベントソースマッピングでレコードを取り込み処理します(内部的にはポーリングを含みます)。 公式ドキュメント: https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html
例(試験での定番シナリオ)
- アクセス集中時、注文を直接処理せずSQSに投入して後で順次処理(平準化)
4) API Gatewayトリガー(HTTPで呼ぶ)
API GatewayでHTTPエンドポイントを作り、リクエストをLambdaにルーティングできます。 公式ドキュメント: https://docs.aws.amazon.com/lambda/latest/dg/services-apigateway.html
例(流れ)
- クライアントが
GET /itemsなどでAPIを呼ぶ - API GatewayがLambdaを起動
- LambdaがDynamoDB等から取得してJSONで返す
5) EventBridgeスケジュール(定期実行)
EventBridge SchedulerでLambdaをスケジュール実行できます(定期バッチの代表例)。 公式ドキュメント: https://docs.aws.amazon.com/lambda/latest/dg/with-eventbridge-scheduler.html
試験対策:Lambdaが「向いている/向いていない」を即断するコツ
- 向いている:イベント駆動、断続的な処理、短時間の実行(最大15分)、インフラ運用を最小化したいケース。
- 向いていない:1回の処理が長時間に及ぶ、常時稼働・常時接続が前提、細かなOS制御が必要なケース(別サービス検討が基本)。
「短時間(最大15分)のイベント駆動タスク」という整理は、AWS公式の判断ガイドでも明確です: https://docs.aws.amazon.com/decision-guides/latest/fargate-or-lambda/fargate-or-lambda.html
よくある“ひっかけ”整理(CLFでの誤答パターン)
- 「サーバーレス=サーバーが存在しない」:誤り。運用管理の責任範囲がAWS側に寄っているという意味。
- 「Lambdaはずっと動かし続けられる」:誤り。標準的な呼び出しでは最大15分(900秒)。
- 「SQSは“すぐ処理”のサービス」:キューは“ためる”設計。処理の平準化・疎結合が目的。
- 「APIを作るならEC2が必須」:小規模・イベント駆動ならAPI Gateway+LambdaでサーバーレスAPIが可能。
公式一次情報(復習用リンク)
- Lambda概要:https://aws.amazon.com/lambda/
- 料金(Duration 1ms切り上げ):https://aws.amazon.com/lambda/pricing/
- タイムアウト最大900秒(15分):https://docs.aws.amazon.com/lambda/latest/dg/configuration-timeout.html
- コンテナイメージ最大10GB:https://docs.aws.amazon.com/lambda/latest/dg/images-create.html
- S3→Lambda:https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html
- DynamoDB Streams→Lambda:https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html
- SQS/Streamsイベントソースマッピング:https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html
- API Gateway→Lambda:https://docs.aws.amazon.com/lambda/latest/dg/services-apigateway.html
- EventBridge Scheduler→Lambda:https://docs.aws.amazon.com/lambda/latest/dg/with-eventbridge-scheduler.html
- 対応言語(FAQ):https://aws.amazon.com/lambda/faqs/
