レストラン経営で理解する超入門ガイド
AWS SAMを、身近なレストラン経営で例えて分かりやすく説明します!
サーバーレスアプリケーション を 設計図一枚 で作って、 自動でAWS上にお店を開店 してくれる魔法のツールです
お店を開くために 必要なのは...
👨🍳
料理人
(注文が来たら料理)
🙋♀️
ウェイター
(お客さんの注文受付)
🏪
食材倉庫
(材料やレシピ保存)
📋
設計図
(お店全体の計画書)
アプリを作るために 必要なのは...
⚡
Lambda
(リクエストが来たら処理)
🚪
API Gateway
(ユーザーからの要求受付)
💾
DynamoDB
(データやファイル保存)
📄
SAMテンプレート
(アプリ全体の設計書)
お客さんの注文を受け付ける
窓口です。
お客さんが「パスタください!」と言うと、
厨房の
適切な料理人(Lambda)
に注文を伝えます。
注文が来た時だけ動く
プロの料理人です。
普段はお休み中で、注文が入ると瞬時に起きて
美味しい料理(処理結果)
を作ります。
レシピや食材を保存
する倉庫です。
料理人がいつでも必要な材料を
高速で取り出せる
よう整理されています。
レストラン全体の計画書
です。
「どんな料理人を何人雇うか」
「倉庫はどのくらいの大きさか」を
YAML形式
で記述。
ユーザー
「パスタください!」API Gateway
注文を受けてLambda Function
注文を受けて必要に応じて食材を取りに行く
DynamoDB
レシピや材料をお客さん → ウェイター → 料理人 → (必要に応じて倉庫) → 料理完成 → お客さん
お店を開くときに必要な「設計図」と「材料リスト」を一枚の紙にまとめたようなものです
📋 設計図に書くこと:
📄 YAMLファイルに書くこと:
📋 たった一つのファイルで:
SAMテンプレートを作成
→ お店の設計図を書く(何人雇うか、倉庫の大きさなど)
→ 必要なサービスとその設定をYAMLで記述
Lambda関数のコードを作成
→ 料理人が作る料理のレシピを書く
→ Python、Node.js、Javaなどで処理ロジックを実装
アプリケーションをビルド
→ レシピと材料を一つの配達ボックスにまとめる
→ 依存関係の解決とパッケージング
AWS上にデプロイ
→ 実際にレストランを開店させる
→ CloudFormationが全てのリソースを自動作成
アプリケーション稼働開始
→ お客さんがお店に来れるようになった!
→ API Gateway経由でアプリにアクセス可能
template.yaml
sam build
sam deploy
稼働開始
手動設定なら数日かかる作業が、数分で完成。レストランが即座に開店!
使った分だけ課金。お客さんが来ない時間は料金ゼロ!
お客さんが急増しても自動で料理人を増員。パンクしません
サーバー管理やOSアップデートは全てAWSにお任せ
同じ設計図で、テスト店舗と本店を簡単に作り分け
設計図をGitで管理すれば、チーム開発も楽々
👷♂️ 手動でレストラン開店:
📋 設計図でレストラン開店:
| 項目 | 従来手動 | SAM |
|---|---|---|
| 開発時間 | 数日〜数週間 | 数時間 |
| 複雑さ | 高い | 低い |
| エラー率 | 高い | 低い |
| チーム開発 | 困難 | 簡単 |
AWS SAMとCloudFormationは、どちらもAWSインフラを作るツール。でも使いやすさと対象が全然違います!
📋 レストラン専用の簡単設計図
「料理人3名、ウェイター2名、倉庫50㎡」
→ お任せでレストラン完成!
🏢 万能建築の詳細設計図
「配管の位置、電気の容量、窓の寸法...」
→ 全て一から詳細設計
簡単な注文書
「料理人3名詳細設計を生成
内部で自動的に詳細設計図
全ての配線、配管
SAMはCloudFormationの「簡単版」
内部的にはCloudFormationを使って、複雑な設定を自動生成してくれます!
約80行のコード
が必要
→ IAMロール、API Gateway、Lambda、各設定を個別に記述
→ 権限設定、リソース間の連携を手動で設定
約10行のコード
で完成
→ 必要最小限の設定のみ記述
→ 権限設定、連携設定は自動で生成
対象:
サーバーレス専用
難易度:
⭐⭐
記述量:
少ない
開発速度:
高速
対象:
AWS全サービス
難易度:
⭐⭐⭐⭐⭐
記述量:
多い
開発速度:
時間がかかる
初心者:
SAMから始める
API作成:
SAM
複雑インフラ:
CloudFormation
迷ったら:
SAM
🍽️ AWS SAM = レストラン経営の魔法の設計図
🙋♀️ API Gateway = ウェイター(注文受付)
👨🍳 Lambda = 料理人(実際の処理)
🏪 DynamoDB = 食材倉庫(データ保存)
📋 SAMテンプレート = 設計図(YAML)
🚀 たった一つの設計図で、完全なレストラン(アプリ)が自動開店!
🎯 初心者へのアドバイス:
🌟 SAMなら、誰でも簡単にプロ級のサーバーレスアプリが作れます!
Created by SSuzuki1063
AWS SAP Learning Resources