Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SAM + FastAPI + Mangum でお手軽サーバーレス
Search
abimaru
June 09, 2025
Technology
410
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SAM + FastAPI + Mangum でお手軽サーバーレス
SAM + FastAPI + Mangum でお手軽サーバーレス
Strands Agents SDKをFastAPIに統合して、動くか試してみました。
abimaru
June 09, 2025
More Decks by abimaru
See All by abimaru
モノレポ × DevContainere 設計パターン
kugimiya
1
290
Other Decks in Technology
See All in Technology
変化の早いClaude Codeを 書籍に落とし込む
oikon48
6
1.3k
PLaMo 3.0 Primeの事後学習
pfn
PRO
0
270
Cursor Meetup Sapporo - Cursor物語 続編
cocacola917
0
120
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
230
個人OSSが、机の上から世界に広がるまでの話
shinyasaita
1
340
GitHub CopilotのFinOps- AI CreditのObservabilityと価値を生むためのエージェント設計
yuriemori
0
120
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
550
タクシーアプリ『GO』の実践的データ活用〜位置情報データの収集とStreamlitでの可視化〜
mot_techtalk
2
200
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
19k
事業価値と Engineering 2026年度版
recruitengineers
PRO
33
17k
Data Hubグループ 紹介資料
sansan33
PRO
0
3.1k
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
19k
Featured
See All Featured
Building an army of robots
kneath
306
46k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
870
Abbi's Birthday
coloredviolet
3
9.1k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
660
Designing for humans not robots
tammielis
254
26k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
BBQ
matthewcrist
89
10k
Code Reviewing Like a Champion
maltzj
528
40k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
Paper Plane (Part 1)
katiecoart
PRO
1
10k
Transcript
SAM + FastAPI + Mangum で お手軽サーバーレス Strands Agents SDK
使ってみた 2025/06/07 JAWS-UG OITA 発表 @あびまる(釘宮) JAWS-UG 発表資料
自己紹介 名前: あびまる(釘宮) 所属: 株式会社スリーシェイク 経験言語: TypeScript, Golang, Python, Kotlin
環境: AWS, Google Cloud etc… GitHub: https://github.com/daikugimiya0715 JAWS-UG 発表資料 2
今日話すこと SAM + FastAPI + Mangumを使ったサーバーレスAPI開発について説明します。 その後に、Strands Agent SDKを統合した物のデモをします。 1.
なぜ SAM + FastAPI + Mangum なのか 2. 実装のポイント 3. コスト効率とスケーラビリティ 4. OpenAPI と Swagger の活用 5. 生成 AI 時代の Python 活用 6. デモ: Strands SDK 統合 JAWS-UG 発表資料 3
課題: API 開発の悩み 開発環境のセットアップが面倒 インフラコストが心配 スケーラビリティの考慮 ドキュメント生成の手間 生成 AI SDK
との統合 JAWS-UG 発表資料 4
解決策: SAM + FastAPI + Mangum 3 つの技術を組み合わせた現代的なアプローチ SAM: Infrastructure
as Code でインフラ管理 FastAPI: 高速で直感的な API 開発 Mangum: サーバーレス環境での ASGI 実行 メリット 開発効率: 型安全で高速な開発 コスト効率: 使った分だけの課金 運用効率: サーバー管理不要 + JAWS-UG 発表資料 5
SAM (Serverless Application Model) AWS 公式のサーバーレス開発フレームワーク Infrastructure as Code: YAML
でインフラ定義 ローカル開発: sam local start-api で即座にテスト 簡単デプロイ: sam build && sam deploy SAM の強み CloudFormation 拡張: AWS リソースを簡潔に定義 依存関係管理: 自動的にパッケージングとデプロイ 実際のメリット 学習コスト低: CloudFormation より簡単 デバッグ効率: ローカルで API をテスト可能 JAWS-UG 発表資料 6
FastAPI + Mangum FastAPI の特徴 自動 OpenAPI 生成: /docs で即座に
API 仕様確認 型安全: Python の型ヒントでバグ防止 高パフォーマンス: 非同期処理対応 Mangum の役割 ASGI ブリッジ: FastAPI を Lambda で実行 Zero Configuration: 設定不要で動作 ECS 移行対応: 同じコードでコンテナ化可能 JAWS-UG 発表資料 7
実装例 from fastapi import FastAPI from mangum import Mangum from
pydantic import BaseModel app = FastAPI(title="サーバーレス API") class Item(BaseModel): name: str price: int @app.post("/items/") async def create_item(item: Item): return {"item": item, "status": "created"} # Lambda用ハンドラー handler = Mangum(app) JAWS-UG 発表資料 8
なぜサーバーレスなのか? コスト面のメリット アイドル時コストゼロ: 使用していない時は課金なし 従量課金: リクエスト数に応じた課金 予算管理: 使用量に応じた透明な課金 運用面のメリット サーバー管理不要:
インフラ運用から解放 自動スケーリング: トラフィック増加に自動対応 ECS 移行: コード変更なしで可能 ← これが本当に嬉しい 実際の開発環境では月額数百円程度で運用可能! JAWS-UG 発表資料 9
なぜ Python なのか? 豊富な AI/ML 系 SDK OpenAI, Anthropic, AWS
Bedrock Langchain, LlamaIndex etc… データサイエンスエコシステム # 最新のAI SDKが揃っている import openai import anthropic import boto3 # Bedrock from strands import Agent # 今回のデモ JAWS-UG 発表資料 10
ついでに Strands SDK 使ってみる 実装例 from strands import Agent from
strands.models import BedrockModel # Bedrock Claude を使用 bedrock_model = BedrockModel( model_id="claude-3-sonnet", region_name="ap-northeast-1" ) agent = Agent( model=bedrock_model, tools=[calculator, shell, use_aws] ) @app.post("/chat") async def chat_with_agent(message: str): response = await agent.stream_async(message) return StreamingResponse(response) JAWS-UG 発表資料 11
実際のディレクトリ構成 fast-api-sam/ ├── app/ │ ├── __init__.py │ └── main.py
# FastAPI アプリ ├── template.yaml # SAM テンプレート ├── samconfig.toml # SAM 設定 ├── pyproject.toml # Python 依存関係 └── tests/ └── test_main.py # テスト JAWS-UG 発表資料 12
実際に動かしてみた結果 invoke エンドポイントの実行例 確認できたこと API が正常に動作: エンドポイントが期待通りにレスポンス S3 バケット情報取得: agent
のツールコール (use_aws) Stream レスポンス: Agent を使った Stream レスポンスの実装 JAWS-UG 発表資料 13
実際の運用メリット 開発体験 ローカル開発が快適 型安全性 自動ドキュメント生成 豊富なエコシステム 運用面 コスト効率 自動スケーリング メンテナンス不要
AWS 統合 JAWS-UG 発表資料 14
まとめ SAM + FastAPI + Mangum の価値 POCから本格運用まで一気通貫で対応できる、モダンなサーバーレスAPI開発スタッ クです。 1.
開発効率: 現代的な API 開発体験 2. コスト効率: 使った分だけの従量課金 3. 拡張性: ECS への移行も容易 4. AI 統合: Python 生態系の恩恵 5. ドキュメント: 自動生成で保守コスト削減 JAWS-UG 発表資料 15
質疑応答 ご質問をお待ちしています! GitHub: https://github.com/daikugimiya0715 X: https://x.com/abimaruXD ありがとうございました! JAWS-UG 発表資料 16
補足: 参考リンク AWS SAM FastAPI Mangum Strands SDK JAWS-UG 発表資料
17