その他サービス ・
AWS SAM とは?サーバーレス特化 IaC とローカル開発
AWS SAM は サーバーレスアプリケーション特化の IaC。CloudFormation の上に サーバーレス向け短縮構文 を追加し、Lambda・API Gateway・DynamoDB を最小行数で記述できる。ローカル実行・デバッグ機能も提供する。 ---
サーバーレス特化の CloudFormation 拡張。Lambda・API Gateway・DynamoDB の構築を簡略化。
1. 概要(端的に)
AWS SAM は サーバーレスアプリケーション特化の IaC。CloudFormation の上に サーバーレス向け短縮構文 を追加し、Lambda・API Gateway・DynamoDB を最小行数で記述できる。ローカル実行・デバッグ機能も提供する。
2. 何ができるか
- サーバーレス IaC:Lambda / API Gateway / DynamoDB / EventBridge を簡潔記述
- ローカル実行:
sam local invokeで Lambda をローカル実行 - API テスト:
sam local start-apiでローカル API - デプロイ:
sam deployで本番反映 - テンプレートライブラリ:SAR(Serverless Application Repository)
3. 特徴
| 観点 | 特徴 |
|---|---|
| 追加料金 | 無料(裏の CFn とリソース料金のみ) |
| 構文 | YAML(CloudFormation 拡張) |
| 対応 | Lambda / API Gateway / DynamoDB / SNS / SQS / EventBridge / Step Functions |
| ローカル開発 | Docker ベースで Lambda 実行 |
簡単な SAM YAML 例
Transform: AWS::Serverless-2016-10-31
Resources:
MyFunction:
Type: AWS::Serverless::Function
Properties:
Runtime: nodejs20.x
Handler: index.handler
CodeUri: ./src
Events:
ApiEvent:
Type: Api
Properties:
Path: /hello
Method: get
→ Lambda + API Gateway を 10 行で構築。
4. 仕組み
SAM は CloudFormation トランスフォームとして動作。SAM 構文を内部的に CloudFormation 標準に展開してデプロイする。
コマンド
sam init:プロジェクト雛形sam build:ビルドsam local invoke:ローカル Lambda 実行sam local start-api:ローカル APIsam deploy --guided:本番デプロイ
5. ユースケース
ユースケース 1:サーバーレス API
API Gateway + Lambda の最小構成。
ユースケース 2:ローカル開発
Lambda を本番デプロイ前にローカル検証。
ユースケース 3:シンプルな自動化
EventBridge + Lambda の定期処理。
6. 関連用語
- CloudFormation — SAM の基盤
- CDK — より柔軟な代替
- Lambda / API-Gateway — 主要構築対象
7. 関連サイト
🎓 試験での出題傾向
| 試験 | 重要度 | 主な出題パターン |
|---|---|---|
| CLF | 中 | サーバーレス IaC の概念 |
| SAA | 中 | サーバーレス設計 |
| DVA | 高 | サーバーレス開発(頻出) |
| SOA | 中 | デプロイ運用 |