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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
SRE歴2ヶ月でも開発6年の知見を活かして、チームで止まっていた環境改善を前に進めた話
a_ono
0
120
Text-to-SQLをAgentCoreで実現し、生成されるSQLの精度を定量的に評価する
yakumo
2
130
トークン最適化のためのユーザーストーリー分析 / User Story Analysis for Token Optimization
oomatomo
0
130
Comment regagner la souveraineté de vos données tout en étant payé grâce à Nostr !
rlifchitz
0
230
Kotlin 開発のツラミを爆破した話! / Explode the difficulty of Kotlin dev!
eller86
0
110
事業会社は今こそSWEを高給で雇ってWebシステムを内製しよう
masaokb
0
100
AIは、人間らしい仕事の夢を見るか?─ AI時代のtoB/toEプロダクトを再設計する
techtekt
PRO
0
160
感情と身体を置き去りにしない、エンジニアの生きのこり方 ──いまから、ここから「自分の状態」を扱うという選択
saorimurooka
0
390
スタートアップにAmazon EKSは早すぎる? マルチプロダクト戦略を加速する Platform Engineeringの実践 / Is Amazon EKS Too Soon for Startups? Practical Platform Engineering to Accelerate a Multi-Product Strategy
elmodev09
1
1.9k
AI Agentをシステムに組み込む前にゆるく向き合ってみる
hayama17
0
170
徹底討論!ECS vs EKS!
daitak
3
1.8k
AI時代における最適なQA組織の作り方
ymty
3
170
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Done Done
chrislema
186
16k
Documentation Writing (for coders)
carmenintech
77
5.4k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
180
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
160
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
220
It's Worth the Effort
3n
188
29k
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