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
MCPサーバー、AWSのどこに置く?
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Champ
March 23, 2026
Technology
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MCPサーバー、AWSのどこに置く?
Champ
March 23, 2026
More Decks by Champ
See All by Champ
Kiro CLI 徹底解剖
champ
0
31
Amazon Bedrockの自動推論チェックを検証!
champ
0
21
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
1
560
Amazon BedrockでClaude 3.5 Sonnet v2のComputer useを試す
champ
0
130
【Bedrock×Athena】生成系AIでSlackデータの分析に挑戦
champ
0
240
Amazon Qの全体像を掴んでみよう!
champ
0
87
神アプデ?Amazon Comprehendで 生成系AIの毒性検出に挑戦!
champ
0
390
Bedrockで挑戦! 生成系AIで Slackコミュニケーションの活性化!
champ
0
470
Other Decks in Technology
See All in Technology
5分でわかる Amazon Connect_20260608
hwangbyeonghun
0
130
40代で“やっとエンジニアになれた”――閉じた学びを開き、空の青さを知る / 20260628 Naoki Takahashi
shift_evolve
PRO
4
1.2k
Multi-Agent並列開発を 安全に回すための技術 / Technology for Safely Multi-Agent Parallel Development
tooppoo
0
220
小さいから、全部わかる。— 常駐AI "xangi" のすすめ
sugupoko
0
120
クラウドファンディング版StackChan 3体(4体)をインタラクティブな体験型作品にして展示もした話 / スタックチャンお誕生日会2026
you
PRO
0
250
サイバーエージェントにおけるAI推進戦略と変革への取り組み
shotatsuge
0
610
初めてのDatabricks勉強会
taka_aki
2
200
ご挨拶「10周年を迎える共創ラボのこれまでとこれから」
iotcomjpadmin
0
150
BPaaSで進むAIオペレーションの現在地 AI実装が効く領域とスケーラビリティの選定と実装
kentarofujii
0
210
技術・能力を向上する原理原則 #きのこセッションa #きのこ2026
bash0c7
0
170
AIをフル活用してオンコール機能のプロトタイプを2日で作った話 / Building an AI-Powered On-Call Prototype in Just Two Days
nari_ex
0
150
AWS Summit 2026で見えたSIerにとっての Amazon Quickの位置づけ
maf_0521
0
120
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
620
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.6k
Mind Mapping
helmedeiros
PRO
1
260
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
170
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
How GitHub (no longer) Works
holman
316
150k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
Transcript
MCPサーバー、AWSのどこに置く? JAWS-UG AI/ML支部 LT大会 — 2026-03-23 1
2
今日話すこと MCPサーバーをリモートにホスティングするとき、AWSの選択肢はどれが適切か? パート1 — MCPトランスポート仕様の整理 パート2 — AWSホスティング5選択肢の比較 3
パート 1:MCPトランスポート仕様 2つの通信方式を整理する 4
MCPには2つのトランスポートがある MCPサーバーとクライアントの間の通信方式として、仕様上2つ定義されている 1. stdio — ローカル向け 2. Streamable HTTP —
リモート向け それぞれどんな仕組みか見ていきます 5
stdio ローカルのOSの機能(プロセス間パイプ)を使って通信する方式 JSON-RPCメッセージのやり取り(同じPC内のみ) クライアント (Claude Desktop等) MCPサーバー (サブプロセス) FD0/stdin FD1/stdout
パイプA(カーネル内バッファ) クライアント → サーバー⽅向 パイプB(カーネル内バッファ) サーバー → クライアント⽅向 stderr(ログ専⽤) ⚠ stdoutにデバッグ⽂字列を書くとJSONパースエラーになる! デバッグ出⼒は必ずstderrへ 6
Streamable HTTP HTTPのPOST / GET / DELETEを使って通信する方式。それぞれの役割は後ほど説明し ます。 POST /
GET / DELETE クライアント MCPサーバー POST (必須) ツール呼び出しリクエスト パターンA: JSON即時応答(シンプル) パターンB: SSEストリーム(途中経過付き) GET (任意) サーバーからの通知を待ち受ける リソース変更通知・Push(⻑時間接続) DELETE (任意) セッション明⽰的終了 200 OK または 405 Not Allowed 7
2つのトランスポートの比較 項目 stdio Streamable HTTP 通信の仕組み OSのプロセス間パイプ HTTP 接続形態 1対1
N対1 通信範囲 ローカルのみ ネットワーク越しも可 MCPサーバーをリモートに置くなら Streamable HTTP 一択 8
Streamable HTTPをもう少し詳しく Streamable HTTPは1つのエンドポイントURLに対して、3つのHTTPメソッドを使い分 ける POST / GET / DELETE
クライアント MCPサーバー POST (必須) ツール呼び出しリクエスト パターンA: JSON即時応答(シンプル) パターンB: SSEストリーム(途中経過付き) GET (任意) サーバーからの通知を待ち受ける リソース変更通知・Push(⻑時間接続) DELETE (任意) セッション明⽰的終了 200 OK または 405 Not Allowed 9
ホスティング要件を4つのレベルで整理する ※ MCP公式仕様の定義ではなく、ホスティング要件を整理するために勝手に分類 レベル 何を使うか どんな場面で必要か L1 POST → JSON単発応答
即座に結果を返せるとき L2 POST → SSEストリーム応答 処理に時間がかかる、途中経過を返したいとき L3 GET → SSEストリーム サーバーから能動的に通知を送りたいとき L4 L1〜L3 + セッション管理 クライアントごとの状態を保持したいとき 現状はほぼL1で動いているが、今後L2以上が必要になるケースは増えていく見込み。 10
L1: POST → JSON単発応答(パターンA) 普通のWeb APIと同じ ツールの実行が一瞬で終わるケース(API変換、データ取得など)で使う サーバーレス環境(Lambda等)でそのまま動かしやすい SSEもセッション管理も不要で、ホスティング先への要求が最も低い構成 11
L2: POST → SSEストリーム応答(パターンB) SSE(Server-Sent Events)= 1つのHTTP接続を維持したままデータを逐次送信する仕 組み ツール実行に時間がかかるケース(外部API呼び出し、重い処理など)で使う 途中経過をクライアントに届けたいときに使う
HTTP接続を維持する必要があるため、ホスティング先のタイムアウト制限が重要 になる 12
L3: GET → SSEストリーム(サーバー起点の通知) クライアントがGETで接続を張り、サーバーが能動的に通知を送信する MCPサーバーが管理するリソースが外部から変更されたとき、クライアントに通 知するための仕組み L2との違い: L2: POSTで送って、SSEストリームでクライアントに返す
L3: GETで接続した後、クライアントが待ち受けている接続に対して、サーバ ーが好きなタイミングで通知を送る サーバーが常駐している必要があり、サーバーレス環境では困難 13
L4: セッション管理 Mcp-Session-Id ヘッダーでクライアントごとの状態を管理する MCPサーバーが前のやり取りの文脈を保持したいとき、クライアント固有の状態 を管理したいときに使う L4はL1〜L3のどれとも組み合わせて使える(L1+L4、L2+L4、L3+L4) セッション状態の保存先(Redis、DynamoDB等)が必要 スケールアウト時はスティッキーセッションまたは共有ストアが必要になる 14
レベルのまとめ レベル 要件 ホスティングへの要求 L1 HTTPリクエスト/レスポンス 低い(普通のWeb API) L2 SSEストリーミング
中(HTTP接続の長時間維持) L3 サーバー起点の通知 高(常駐プロセス必要) L4 セッション管理 L1〜L3と組み合わせ(外部ストア必要) レベルが上がるほど、ホスティング先に求められる要件が増える。 15
ただし、現状のエコシステムは... 2026年3月時点では、実用的なMCPサーバーのほぼすべてがL1で動いている L2: MCP公式仕様やMCP SDKにAPIは存在するが、実際に使われている例はまだ少 ない L3: Claudeの公式ドキュメントで、この機能に未対応と明記されている(参照) L4: MCPサーバーはステートレスを前提に設計されていることがほとんどで、実例
はまだ少ない 今はまだ急いで必要になるものではないが、今後エコシステムが成熟するにつれてL2 以上の重要性は増していくと考えている。 16
パート 2:AWSホスティング選択肢の比較 4つの選択肢を比較する 17
比較対象 # 選択肢 特徴 1 Lambda + Function URL サーバーレス、ゼロスケール
2 ECS Fargate コンテナ常駐、柔軟性高 3 EC2 制約なし、運用負荷最大 4 AgentCore Runtime MCP特化のマネージド環境 18
比較軸 1. MCP SDK互換性 — MCPサーバーの開発キットがそのまま動くか 2. SSE/ストリーミング対応 — MCPのレベル別にどこまで対応できるか
3. コスト — 月1,000リクエスト想定での月額目安 19
比較軸 1:MCP SDK互換性 20
MCP SDK互換性 — MCP SDKとは Anthropic(MCPの仕様策定元)が公式に提供しているサーバー開発キット Python SDK( modelcontextprotocol/python-sdk )
TypeScript SDK( modelcontextprotocol/typescript-sdk ) MCPサーバーを作るとき、ほとんどの開発者はこのSDKを使うと思われる。 このSDKで作ったサーバーがそのままデプロイできるかがホスティング先選びのポイ ントになる。 21
MCP SDK互換性 — 内部的な仕組み MCP SDKは内部でHTTPサーバーを起動して、リクエストを待ち受け続ける設計 mcp = FastMCP("MyServer") mcp.run(transport="streamable-http",
host="0.0.0.0", port=8000) # → ポート8000 でHTTP サーバーが起動し、ずっと動き続ける ECS / EC2 / AgentCore → プロセスを常駐させられるのでそのまま動く Lambda → サーバーレスなのでHTTPサーバーを常駐させられない 22
MCP SDK互換性 — サービス別の対応状況 選択肢 そのまま動 くか 備考 ECS Fargate
◦ SDKが使うポートに合わせたタスク定義の設定が必要 EC2 ◦ SDKが使うポートに合わせたセキュリティグループ等の設定 が必要 AgentCore Runtime ◦ SDKのデフォルト設定(ポート8000、パス /mcp )と一致す るため設定不要 Lambda + Function URL × 変換ツールが必要 23
Lambda + Function URLでMCPサーバーを動かすには Lambda用の変換ツールがAWS公式等から複数提供されている 変換ツール 提供元 Lambda Web Adapter
AWS公式 run-mcp-servers-with-aws-lambda AWS Labs MCPLambdaHandler AWS Labs middy-mcp コミュニティ これらの変換ツールなしにはLambdaでMCPサーバーは動かせず、構成の複雑性が増 す。 24
比較軸 2:SSE/ストリーミング対応 25
パート1で整理したレベル別の対応状況 ※ L1〜L4はパート1で整理したホスティング要件のレベル分け 選択肢 L1 L2 L3 L4 Lambda +
Function URL ◦ ※ 変換ツール必要 ◦ 最大15分 △ △ ECS Fargate ◦ ◦ ALB最大4,000秒 ◦ △ 外部ストア推奨 EC2 ◦ ◦ ◦ ◦ AgentCore Runtime ◦ ◦ 最大60分 ◦ ◦ マネージド ◦ = 対応可 / △ = 条件付き 26
比較軸 3:コスト 27
コスト比較(月1,000 MCPリクエスト想定) 選択肢 月額 コールドスタート Lambda + Function URL $0
発生する可能性がある(3〜5秒) Lambda + Provisioned Concurrency $6.85 なし AgentCore Runtime $0.01 ほぼなし(microVM起動1秒未満) EC2 (t4g.nano) $8.36 なし(常時起動) ECS Fargate + ALB $26.74 なし(常時起動) 28
AgentCore Runtimeの注意点 MCPプロトコル仕様にはバージョンがあり、クライアントとサーバーは同じバージョ ンの仕様に基づいて実装されている必要がある MCPプロトコル仕様の最新バージョンは 2025-11-25 主要なMCPクライアント(Claude等)は 2025-11-25 への移行が進んでいる しかしAgentCore
Runtimeは 2025-06-18 までしか対応していない クライアントが新しい仕様で接続すると、AgentCore Runtime上のMCPサーバーとの 通信が失敗するリスクがある。 29
ユースケース別の選択肢 基本的にはAgentCore Runtimeが最もバランスが良い → SDK互換性◎、コスト最安クラス、コールドスタートほぼなし、インフラ管理不要 ただしMCPプロトコル最新バージョンが必要な場合は他の選択肢を検討: コスト最優先 → Lambda +
Function URL 本番環境・長時間接続 → ECS Fargate 制約なし・フルコントロール → EC2 30
まとめ MCPサーバーのホスティング先は、SDK互換性とMCPで実現したいことから考える MCP SDKは常駐サーバー前提 → ECS/EC2/AgentCoreはそのまま動く、Lambdaは 変換ツール必要 AgentCore Runtimeが総合的に最もバランスが良いが、MCPプロトコルバージョン の追従に注意
コスト最優先なら Lambda + Function URL 本番環境・長時間接続なら ECS Fargate 選択肢を知った上で、自分のユースケースに合ったものを選びましょう。 31
ありがとうございました 32