AWS Lambda
AWS Lambda
概要
AWS Lambda は、サーバーを一切管理せずにコードを実行できるサーバーレスコンピューティングサービスです。イベント(HTTPリクエスト、ファイルのアップロード、キューへのメッセージ到着など)に応じて関数が起動し、必要な分だけ自動でスケールします。課金は実行回数と、割り当てメモリに比例して決まる実行時間に対して発生し、待機中のアイドルコストがありません。インフラの調達・パッチ・スケーリングを気にせず、ビジネスロジックそのものに集中できる点が最大の価値です。
主要な概念
イベント駆動とトリガー
Lambda は様々な AWS サービスをトリガーに起動します。API Gateway 経由のHTTPリクエスト、S3 へのオブジェクト作成、DynamoDB Streams、SQS や SNS、EventBridge のスケジュールなどがイベント源になります。プッシュ型(呼び出し元が起動)とポーリング型(Lambda がストリーム/キューを読む)の違いを押さえると挙動を理解しやすくなります。
実行環境とメモリ・時間制限
関数にはメモリを割り当て、それに比例して CPU 性能も決まります。1回の実行には最大15分の制限があり、長時間バッチや常駐プロセスには不向きです。一時ディスク領域として /tmp が使え、デプロイ単位はパッケージのほかコンテナイメージも選択できます。15分を超える処理は Step Functions による分割や ECS/Fargate への切り替えを検討します。
コールドスタートと同時実行
一定時間使われない関数や新規スケール時には、実行環境の初期化に時間がかかるコールドスタートが発生します。レイテンシが重要な場合は Provisioned Concurrency で実行環境を温めておけます。同時実行数にはアカウント単位の上限があり、関数ごとに予約・制限を設定して他の関数への影響を制御できます。
IAMロールと権限
Lambda 関数には実行ロールが割り当てられ、関数が他の AWS サービス(S3 への書き込みなど)を呼ぶ際の権限を最小権限で定義します。逆に他サービスから関数を呼び出す許可はリソースベースのポリシーで制御します。認証情報をコードに書かず、ロール経由で安全に扱うのが原則です。
VPC接続と外部依存
関数を VPC に接続すると、プライベートサブネット内の RDS などへアクセスできます。その場合インターネットへ出るには NAT 経由が必要です。データベース接続の枯渇を避けるには RDS Proxy などで接続をプールするとよく、ステートレスに設計して再試行に耐える作りにすることが重要です。
典型的なユースケース
- API Gateway と組み合わせたサーバーレスなREST/HTTP APIのバックエンド
- S3へのアップロードを契機にした画像変換・サムネイル生成などの処理
- SQS/SNSやEventBridgeと連携した非同期・イベント駆動の処理パイプライン
- スケジュール起動による定期的なメンテナンスやバッチ的ジョブの実行
- ストリーム(DynamoDB Streams / Kinesis)処理によるリアルタイムなデータ加工
試験での出題観点
Lambda は DVA の中心であり、SAA・SAP でもサーバーレス設計の要として頻出します。「サーバー管理をなくしたい」「イベント駆動で自動スケールさせたい」「アイドル時にコストをかけたくない」という要件ではほぼ Lambda が正解候補になります。15分の実行時間上限は重要な制約で、長時間処理は Step Functions や Fargate へ切り替える判断が問われます。DVA ではコールドスタート対策(Provisioned Concurrency)、同時実行数の制御、実行ロールによる権限設計、環境変数と Secrets Manager の使い分けが論点です。VPC 接続時のNAT経由やDB接続枯渇への配慮もよく出題されます。
関連サービス
最終更新日: 2026-06-24
本ページの内容は、AWS公式ドキュメントを基に作成し、運営者が編集・監修しています。詳しくは編集・品質管理方針をご覧ください。