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?

#0104(2025/04/12)AWS SAM(Serverless Application Model)ガイド

Posted at

AWS SAM(Serverless Application Model)ガイド

AWS SAM(Serverless Application Model)は、サーバーレスアプリケーションを簡単に構築・デプロイ・管理するためのAWS公式フレームワークです。この記事では、SAMの概要から使い方、利点、CLIコマンドなどを詳しく解説します。


📌 SAMとは何か?

項目 内容
名称 AWS Serverless Application Model (SAM)
提供元 Amazon Web Services(AWS公式)
目的 サーバーレスアプリケーションの簡易構築と運用
基盤 AWS CloudFormation(インフラ構成のIaC)
特徴 CloudFormationの簡略版テンプレート記法を使える / ローカル開発が容易 / デプロイが高速

SAMはCloudFormationの拡張であり、template.yaml を使ってLambda、API Gateway、DynamoDBなどのリソースを宣言的に定義・管理します。


🧱 SAMのアーキテクチャと構成要素

SAMで定義可能な主要リソース:

  • AWS::Serverless::Function:Lambda関数
  • AWS::Serverless::Api:API Gateway
  • AWS::Serverless::SimpleTable:DynamoDB
  • AWS::Serverless::LayerVersion:Lambdaレイヤー

SAMテンプレートはYAML形式で記述され、CloudFormationに変換されてデプロイされます。


🧰 SAM CLI とは?

SAM CLIはSAMアプリケーションのローカルビルド・テスト・デプロイなどを簡単に行えるコマンドラインツールです。

主要なコマンド一覧

コマンド 説明
sam init プロジェクトの初期化(テンプレート生成)
sam build Lambda関数などをビルド(依存のインストール含む)
sam local invoke ローカルで関数をテスト(Docker使用)
sam local start-api ローカルでAPI Gatewayを模擬起動(REST API)
sam deploy --guided 初回デプロイ(スタック名などを対話式で設定)
sam logs CloudWatchログをCLIから取得
sam delete deploy削除

🐳 SAMとDockerの関係

SAM CLIは、Lambdaの実行環境をローカルで再現するためにDockerを利用します。これにより、本番に近い環境で関数をテストできます。

sam local invoke        # ローカルで1回実行
sam local start-api     # ローカルでHTTPサーバー起動

📂 SAM プロジェクト構成例

sam-app/
├── template.yaml          # SAMテンプレート
├── hello_world/
│   ├── app.py             # Lambda関数コード
│   └── requirements.txt   # Python依存(pip)
├── events/                # テストイベント(任意)
└── .aws-sam/              # ビルド成果物(自動生成)

✨ SAMのメリット

  • YAMLによる簡易テンプレートでサーバーレス開発が高速に
  • CloudFormationベースなのでIaCのベストプラクティスに対応
  • Dockerを使って本番に近い環境でローカルテスト可能
  • CLIでビルド・デプロイ・ログ確認が一括でできる

🔗 公式リソース

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?