AWS Lambda入門|サーバーレスアーキテクチャの設計と実践的なユースケース

現場実践|サーバーレスアーキテクチャ
AWS Lambda入門|サーバーレスアーキテクチャの設計と実践的なユースケース
「Lambdaって何ができるの?」「サーバーレスって本当に使えるの?」——AWS Lambdaの仕組み・イベントドリブンアーキテクチャ・実際のユースケース・コスト計算・コールドスタート対策を解説します。
💡 Lambdaは「サーバー管理なし・使った分だけ課金・秒単位でスケール」が最大の特徴。EC2+常時稼働より圧倒的に安いユースケースがある一方、コールドスタートや実行時間制限の制約も理解する必要があります。
1. Lambdaの基本的な仕組み
AWS Lambdaはコードをアップロードするだけでサーバー管理不要で実行できるサーバーレスのコンピューティングサービスです。「イベント」をトリガーとして関数が実行されます。最大実行時間は15分、メモリは128MB〜10GBで設定できます。
2. Lambdaの代表的なトリガー
API Gateway
HTTPリクエストをトリガーにLambdaを実行するREST API・WebSocket APIを構築できる。EC2なしでAPIサーバーが実現する。
S3イベント
S3にファイルがアップロードされたときにLambdaが実行される。画像リサイズ・CSV変換・ウイルススキャン等の自動処理に最適。
EventBridge(Cron)
スケジュール実行。「毎朝9時にDBのバックアップを取る」「毎時に外部APIからデータを取得する」等の定期処理に使う。
SQS・SNS
メッセージキューやPub/SubのイベントをトリガーにLambdaを実行。非同期処理・マイクロサービス間の連携に使う。
3. シンプルなLambda関数(Python)
import json
import boto3
def lambda_handler(event, context):
# S3にオブジェクトがアップロードされた場合のイベント処理
s3 = boto3.client("s3")
bucket = event["Records"][0]["s3"]["bucket"]["name"]
key = event["Records"][0]["s3"]["object"]["key"]
print(f"アップロードされたファイル: s3://{bucket}/{key}")
# ファイルの内容を取得
response = s3.get_object(Bucket=bucket, Key=key)
content = response["Body"].read().decode("utf-8")
return {
"statusCode": 200,
"body": json.dumps({"processed": key})
}4. コールドスタート対策
- Provisioned Concurrency:事前にLambda実行環境をウォームアップしておくことでコールドスタートを排除できる。コストがかかるためレイテンシーが厳しいAPIのみに適用する
- メモリを増やす:LambdaはメモリをCPUに比例してスケールする。メモリを増やすとコールドスタート時間も短縮される場合がある
- デプロイパッケージを小さくする:依存パッケージが大きいとコールドスタート時間が長くなる。必要最小限のパッケージのみ含める
📌 この記事のポイント
- LambdaはAPI Gateway・S3イベント・EventBridge・SQSをトリガーとするイベントドリブンな実行モデル
- S3ファイルアップロード処理・定期バッチ・非同期処理がLambdaの代表的なユースケース
- コールドスタート対策はProvisioned Concurrency・メモリ増加・デプロイパッケージの軽量化の3つ
キャリアの疑問、一緒に解決しませんか?
Route Bloomでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。
ABOUT ME




