その他サービス

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:ローカル API
  • sam deploy --guided:本番デプロイ

5. ユースケース

ユースケース 1:サーバーレス API

API Gateway + Lambda の最小構成。

ユースケース 2:ローカル開発

Lambda を本番デプロイ前にローカル検証。

ユースケース 3:シンプルな自動化

EventBridge + Lambda の定期処理。


6. 関連用語


7. 関連サイト


🎓 試験での出題傾向

試験重要度主な出題パターン
CLFサーバーレス IaC の概念
SAAサーバーレス設計
DVAサーバーレス開発(頻出
SOAデプロイ運用