0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS SAM

Posted at

AWS SAM(Serverless Application Model)とは、AWS が提供するサーバーレスアプリケーション構築のためのフレームワークです。Lambda や API Gateway、DynamoDB などのサーバーレスサービスを簡単に定義・構築・デプロイ・管理できるようにするためのツールセットです。


✅ ざっくり一言でいうと

**「サーバーレスアプリを簡単に書いて、簡単にデプロイできる便利な仕組み」**です。


📦 AWS SAM の構成要素

要素 説明
SAM テンプレート(YAML) CloudFormation の拡張。Lambda関数やAPI Gatewayなどを簡潔に定義可能。
sam CLI 開発・ビルド・ローカル実行・デプロイなどを行うコマンドラインツール。
SAM Runtime ローカル実行のときにLambdaと同じような実行環境を提供する仕組み。

📁 典型的なSAMプロジェクト構成

my-app/
├── template.yaml         # SAMテンプレート(CloudFormationの拡張)
├── hello_world/          
│   ├── app.py            # Lambda関数のコード(例:Python)
│   └── requirements.txt  # 依存パッケージ
└── events/               # テストイベントJSON

🛠️ よく使う sam CLI コマンド

コマンド 説明
sam init プロジェクトの初期化(テンプレート作成)
sam build Lambda関数などのビルド(依存解決など)
sam local invoke ローカルでLambda関数を実行
sam local start-api ローカルでAPI Gatewayのように動かす
sam deploy --guided 対話形式でデプロイ(初回向け)
sam validate テンプレート構文チェック

💡 AWS SAM のメリット

  • ✅ YAML でシンプルにインフラを記述
  • ✅ Lambda/APIGW/DynamoDB/SQS などを一括管理できる
  • ✅ ローカル実行&テストが可能
  • ✅ CI/CD との相性が良い(CodePipeline等と連携可能)
  • ✅ CloudFormation ベースなので他のリソースとも統合しやすい

🤔 AWS CloudFormationとの違いは?

項目 CloudFormation AWS SAM
記述量 多い(冗長) 少ない(シンプル)
ローカル実行 できない 可能
Lambda用の拡張 なし あり(関数・APIを簡単に記述可能)

🧠 まとめ:AWS SAMはこんな人におすすめ!

  • サーバーレスアーキテクチャ(Lambda, API Gateway など)を使いたい
  • シンプルにインフラをコードで管理したい(IaC)
  • ローカルでデバッグや動作確認をしたい
  • 小~中規模のLambdaベースのアプリを効率的に構築したい
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?