AgentCore Runtime

1. Overview


Amazon Bedrock AgentCore Runtime์€ ๋™์  AI ์—์ด์ „ํŠธ์™€ ๋„๊ตฌ๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ํ™•์žฅํ•˜๊ธฐ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋œ ์•ˆ์ „ํ•œ ์„œ๋ฒ„๋ฆฌ์Šค ๋Ÿฐํƒ€์ž„์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ํ”„๋ ˆ์ž„์›Œํฌ, ํ”„๋กœํ† ์ฝœ ๋˜๋Š” ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ์—์ด์ „ํŠธ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐฐํฌํ•˜๊ณ  ์šด์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค.

AgentCore Runtime์€ ์—…๊ณ„ ์ตœ๊ณ ์˜ ํ™•์žฅ ๋Ÿฐํƒ€์ž„ ์ง€์›, ๋น ๋ฅธ ์ฝœ๋“œ ์Šคํƒ€ํŠธ, ์ง„์ •ํ•œ ์„ธ์…˜ ๊ฒฉ๋ฆฌ, ๋‚ด์žฅ๋œ ID ๋ฐ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํŽ˜์ด๋กœ๋“œ ์ง€์›๊ณผ ํ•จ๊ป˜ ์—์ด์ „ํŠธ ์›Œํฌ๋กœ๋“œ๋ฅผ ์œ„ํ•ด ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ํ˜์‹ ์— ์ง‘์ค‘ํ•˜๋Š” ๋™์•ˆ Amazon Bedrock AgentCore Runtime์ด ์ธํ”„๋ผ์™€ ๋ณด์•ˆ์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ์‹œ์žฅ ์ถœ์‹œ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•ฉ๋‹ˆ๋‹ค.

AgentCore Runtime์˜ ์ฃผ์š” ํŠน์ง•

  • ํ”„๋ ˆ์ž„์›Œํฌ ๋…๋ฆฝ์  (Framework agnostic): ๊ธฐ๋ณธ ํ”„๋ ˆ์ž„์›Œํฌ์— ๊ด€๊ณ„์—†์ด ๋ช‡ ์ค„์˜ ์ฝ”๋“œ๋กœ ๋กœ์ปฌ ์—์ด์ „ํŠธ ์ฝ”๋“œ๋ฅผ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฐฐํฌ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. LangGraph, Strands, CrewAI ๋“ฑ ์ธ๊ธฐ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์›ํ™œํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋ธ ์œ ์—ฐ์„ฑ (Model flexibility): AWS Bedrock, Anthropic Claude, Google Gemini, OpenAI ๋“ฑ ๋ชจ๋“  ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

  • ํ”„๋กœํ† ์ฝœ ์ง€์› (Protocol support): ์—์ด์ „ํŠธ๊ฐ€ Model Context Protocol (MCP)๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์—์ด์ „ํŠธ ๋ฐ ๋„๊ตฌ์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • [์ค‘์š”] ๊ฐ„ํŽธํ•œ ๋ฐฐํฌ: Python SDK์˜ @app.entrypoint ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋กœ ๋กœ์ปฌ ํ•จ์ˆ˜๋ฅผ HTTP ์„œ๋น„์Šคํ™”ํ•  ์ˆ˜ ์žˆ์–ด, ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ ๋ณ€๊ฒฝ์œผ๋กœ ํ”„๋กœํ† ํƒ€์ž…์—์„œ ๋ณธ๊ฒฉ ์šด์˜ ํ™˜๊ฒฝ์œผ๋กœ ์ „ํ™˜์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • ํ™•์žฅ๋œ ์‹คํ–‰ ์‹œ๊ฐ„ (Extended execution time): ์‹ค์‹œ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ๊ณผ ์ตœ๋Œ€ 8์‹œ๊ฐ„๊นŒ์ง€์˜ ์žฅ๊ธฐ ์‹คํ–‰ ์›Œํฌ๋กœ๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ํ˜‘์—…์ด๋‚˜ ์žฅ๊ธฐ๊ฐ„ ๋ฌธ์ œ ํ•ด๊ฒฐ ์„ธ์…˜์„ ํฌํ•จํ•œ ๋ณต์žกํ•œ ์—์ด์ „ํŠธ ์ถ”๋ก ๊ณผ ๋น„๋™๊ธฐ ์›Œํฌ๋กœ๋“œ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

  • ํ–ฅ์ƒ๋œ ํŽ˜์ด๋กœ๋“œ ์ฒ˜๋ฆฌ (Enhanced payload handling): 100MB ํŽ˜์ด๋กœ๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€, ์˜ค๋””์˜ค, ๋น„๋””์˜ค์™€ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๋ชจ๋‹ฌ๋ฆฌํ‹ฐ์˜ ์›ํ™œํ•œ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

  • ์„ธ์…˜ ๊ฒฉ๋ฆฌ (Session isolation): ๊ฐ ์‚ฌ์šฉ์ž ์„ธ์…˜์€ ๊ฒฉ๋ฆฌ๋œ CPU, ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ๋Š” ์ „์šฉ microVM์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์„ธ์…˜ ๊ฐ„์˜ ์™„์ „ํ•œ ๋ถ„๋ฆฌ๊ฐ€ ๋ณด์žฅ๋˜์–ด ์ƒํƒœ๊ฐ€ ์žˆ๋Š” ์—์ด์ „ํŠธ ์ถ”๋ก  ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณดํ˜ธํ•˜๊ณ  ์„ธ์…˜ ๊ฐ„ ๋ฐ์ดํ„ฐ ์˜ค์—ผ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

  • ์†Œ๋น„ ๊ธฐ๋ฐ˜ ๊ฐ€๊ฒฉ ๋ชจ๋ธ (Consumption-based pricing model): ์‹ค์ œ๋กœ ์†Œ๋น„๋œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด์„œ๋งŒ ๊ณผ๊ธˆํ•˜๋Š” ์†Œ๋น„ ๊ธฐ๋ฐ˜ ๊ฐ€๊ฒฉ ์ฑ…์ •์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฏธ๋ฆฌ ์„ ํƒํ•ด์•ผ ํ•˜๋Š” ํ• ๋‹น ๊ธฐ๋ฐ˜ ๋ชจ๋ธ๊ณผ ๋‹ฌ๋ฆฌ, Runtime์€ ํ•„์š”ํ•œ ๊ฒƒ์„ ๋™์ ์œผ๋กœ ํ”„๋กœ๋น„์ €๋‹ํ•ฉ๋‹ˆ๋‹ค.

  • ๋‚ด์žฅ๋œ ์ธ์ฆ (Built-in authentication): Amazon Bedrock AgentCore Identity์—์„œ ์ œ๊ณตํ•˜๋Š” Runtime์€ AI ์—์ด์ „ํŠธ์— ๊ณ ์œ ํ•œ ID๋ฅผ ํ• ๋‹นํ•˜๊ณ  Okta, Microsoft Entra ID, Amazon Cognito์™€ ๊ฐ™์€ ๊ธฐ์—… ID ์ œ๊ณต์ž์™€ ์›ํ™œํ•˜๊ฒŒ ํ†ตํ•ฉ๋˜์–ด ์‚ฌ์šฉ์ž๊ฐ€ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ์—์ด์ „ํŠธ์—๋งŒ ์ธ์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ†ตํ•ฉ๋œ ์—์ด์ „ํŠธ ํŠนํ™” ๊ธฐ๋Šฅ ์„ธํŠธ (Unified set of agent-specific capabilities): Memory, Tools, Gateway๋ฅผ ํฌํ•จํ•œ ์ „์ฒด Amazon Bedrock AgentCore ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ฐ„์†Œํ™”๋œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋‹จ์ผํ•œ ํฌ๊ด„์  SDK๋ฅผ ํ†ตํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

AgentCore Runtime ์š”๊ตฌ ์‚ฌํ•ญ

์—์ด์ „ํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Amazon Bedrock ์—์ด์ „ํŠธ ํ˜ธ์ŠคํŒ… ์ธํ”„๋ผ์™€ ํ†ตํ•ฉํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ํ‘œ์ค€ํ™”๋œ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์—์ด์ „ํŠธ ์ฝ”๋“œ์™€ AWS์˜ ๊ด€๋ฆฌํ˜• ํ˜ธ์ŠคํŒ… ํ™˜๊ฒฝ ๊ฐ„์˜ ์›ํ™œํ•œ ํ†ต์‹ ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

์ง€์›๋˜๋Š” ํ”„๋กœํ† ์ฝœ

AgentCore Runtime ์„œ๋น„์Šค ๊ณ„์•ฝ์€ ๋‘ ๊ฐ€์ง€ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค:

  • HTTP ํ”„๋กœํ† ์ฝœ: ์ „ํ†ต์ ์ธ ์š”์ฒญ/์‘๋‹ต ํŒจํ„ด์„ ์œ„ํ•œ ์ง์ ‘์ ์ธ REST API ์—”๋“œํฌ์ธํŠธ

  • MCP ํ”„๋กœํ† ์ฝœ: ๋„๊ตฌ ๋ฐ ์—์ด์ „ํŠธ ์„œ๋ฒ„๋ฅผ ์œ„ํ•œ Model Context Protocol

์ปจํ…Œ์ด๋„ˆ ์š”๊ตฌ์‚ฌํ•ญ

์—์ด์ „ํŠธ๋Š” ๋‹ค์Œ ์‚ฌ์–‘์„ ์ถฉ์กฑํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋ฐฐํฌ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

  • ํ˜ธ์ŠคํŠธ: 0.0.0.0

  • ํฌํŠธ: HTTP ํ”„๋กœํ† ์ฝœ์˜ ๊ฒฝ์šฐ 8080, MCP ํ”„๋กœํ† ์ฝœ์˜ ๊ฒฝ์šฐ 8000 โ†’ 0.0.0.0:8000/mcp

HTTP ํ”„๋กœํ† ์ฝœ: ๊ธฐ์กด ์š”์ฒญ/์‘๋‹ต REST API ์—”๋“œํฌ์ธํŠธ

HTTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ์—์ด์ „ํŠธ๋Š” ๋‹ค์Œ ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

  • /invocations (POST): ์ฃผ์š” ์—์ด์ „ํŠธ ์ƒํ˜ธ์ž‘์šฉ ์—”๋“œํฌ์ธํŠธ๋กœ JSON ์ž…๋ ฅ๊ณผ JSON/SSE ์ถœ๋ ฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์„ ๋ฐ›์•„ ์—์ด์ „ํŠธ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • /ping (GET): ์—์ด์ „ํŠธ๊ฐ€ ์ž‘๋™ ์ค‘์ด๊ณ  ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ AWS์˜ ๊ด€๋ฆฌํ˜• ์ธํ”„๋ผ๋ฅผ ํ†ตํ•œ ์ž๋™ ๋ณต๊ตฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

MCP ํ”„๋กœํ† ์ฝœ: ๋„๊ตฌ ๋ฐ ์—์ด์ „ํŠธ ์„œ๋ฒ„๋ฅผ ์œ„ํ•œ ๋ชจ๋ธ ์ปจํ…์ŠคํŠธ ํ”„๋กœํ† ์ฝœ

MCP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ์—์ด์ „ํŠธ๋Š” ๋‹ค์Œ ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

  • ํŠธ๋žœ์ŠคํฌํŠธ: ์ƒํƒœ ๋ฆฌ์Šค streamable-http๋งŒ ์ง€์› - AWS์˜ ์„ธ์…˜ ๊ด€๋ฆฌ ๋ฐ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ๊ณผ์˜ ํ˜ธํ™˜์„ฑ ๋ณด์žฅ

  • ์„ธ์…˜ ๊ด€๋ฆฌ: ํ”Œ๋žซํผ์€ ์„ธ์…˜ ๊ฒฉ๋ฆฌ๋ฅผ ์œ„ํ•ด ์ž๋™์œผ๋กœ Mcp-Session-Id ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉฐ, ์„œ๋ฒ„๋Š” ํ”Œ๋žซํผ์—์„œ ์ƒ์„ฑํ•œ Mcp-Session-Id ํ—ค๋”๋ฅผ ๊ฑฐ๋ถ€ํ•˜์ง€ ์•Š๋„๋ก ์ƒํƒœ ๋ฆฌ์Šค ์ž‘๋™์„ ์ง€์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • /mcp (POST): MCP RPC ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•„ ์—์ด์ „ํŠธ์˜ ๋„๊ตฌ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€ MCP RPC ๋ฉ”์‹œ์ง€๊ฐ€ ํฌํ•จ๋œ InvokeAgentRuntime API ํŽ˜์ด๋กœ๋“œ์˜ ์™„์ „ํ•œ ํ†ต๊ณผ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

2. ๊ฐœ๋ฐœ ๋‹จ๊ณ„


์•„ํ‚คํ…์ฒ˜

Step 1. Implement Your Own Agent

  • ์—์ด์ „ํŠธ๋ฅผ AgentCore Runtime์— ๋ฐฐํฌํ•˜๊ธฐ ์ „์—, ์‹คํ—˜ ๋ชฉ์ ์œผ๋กœ ๋กœ์ปฌ์—์„œ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹คํ–‰. ์ž์œ ๋กญ๊ฒŒ ์—์ด์ „ํŠธ ํ”„๋ ˆ์ž„์›Œํฌ ์„ ํƒ ๊ฐ€๋Šฅ (Strands, LangGraph ๋“ฑ)

Step 2. Define

  • from bedrock_agentcore.runtime import BedrockAgentCoreApp ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋Ÿฐํƒ€์ž„ ์•ฑ ๊ฐ€์ ธ์˜ค๊ธฐ

  • app = BedrockAgentCoreApp() ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ์—์„œ ์•ฑ์„ ์ดˆ๊ธฐํ™”

  • ์—์ด์ „ํŠธ์˜ ํ˜ธ์ถœ ํ•จ์ˆ˜์— @app.entrypoint ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋ฅผ ๋ถ™์—ฌ ๋Ÿฐํƒ€์ž„์˜ ์ง„์ž…์ ์œผ๋กœ ์„ค์ •

  • app.run() ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ AgentCoreRuntime์ด ์—์ด์ „ํŠธ ์‹คํ–‰์„ ์ œ์–ดํ•˜๊ฒŒ ํ•จ

Step 3. Configure and Launch

  • requirements.txt ์ƒ์„ฑ (agentcore, ์Šคํƒ€ํ„ฐํ‚ท ํŒจํ‚ค์ง€ ๋“ฑ)

  • AgentCore Runtime ์ดˆ๊ธฐํ™”

  • AgentCore Config: AgentCore Runtime์— ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ • ํŒŒ์ผ (Dockerfile, .bedrock_agentcore.yml ์ƒ์„ฑ). ECR๊ณผ Inbound identity(IAM role or JWT; JSON Web Tokens)์„ ๋ช…์‹œํ•˜๊ฑฐ๋‚˜ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • For AgentCore Identity: ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ์ธ์ฆ์— IAM์„ ์‚ฌ์šฉํ•˜๋‚˜, OAuth๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. OAuth๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ AgentCore ๋Ÿฐํƒ€์ž„ ๋ฆฌ์†Œ์Šค ๋˜๋Š” AgentCore ๊ฒŒ์ดํŠธ์›จ์ด ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ๋‹ค์Œ์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

      • OAuth ๊ฒ€์ƒ‰ ์„œ๋ฒ„ URL โ€” OpenID Connect ๊ฒ€์ƒ‰ URL์˜ ^.+/\.well-known/openid-configuration$ ํŒจํ„ด๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ž์—ด

        • ํ—ˆ์šฉ๋œ ๋Œ€์ƒ โ€” JWT ํ† ํฐ์— ํ—ˆ์šฉ๋˜๋Š” ๋Œ€์ƒ ๋ชฉ๋ก

        • ํ—ˆ์šฉ๋œ ํด๋ผ์ด์–ธํŠธ โ€” ํ—ˆ์šฉ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ ์‹๋ณ„์ž ๋ชฉ๋ก

  • AgentCore Launch: ์—์ด์ „ํŠธ๋ฅผ AgentCore Runtime์œผ๋กœ ํ˜ธ์ŠคํŒ…ํ•  ๋•Œ SDK๋Š” ์ž๋™์œผ๋กœ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • ํฌํŠธ 8080์—์„œ ์—์ด์ „ํŠธ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•ฉ๋‹ˆ๋‹ค.

    • ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

      • /invocations: ์ฃผ์š” ์—์ด์ „ํŠธ ์ƒํ˜ธ์ž‘์šฉ(JSON ์ž…๋ ฅ โ†’ JSON/SSE ์ถœ๋ ฅ)

      • /ping: ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ ์ƒํƒœ ํ™•์ธ

  • Versioning: Agent ๋Ÿฐํƒ€์ž„์„ ์ƒ์„ฑํ•˜๋ฉด ๋ฒ„์ „ 1(V1)์ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€, ํ”„๋กœํ† ์ฝœ ์„ค์ •, ๋„คํŠธ์›Œํฌ ์„ค์ • ๋“ฑ ๊ตฌ์„ฑ์ด ์—…๋ฐ์ดํŠธ๋  ๋•Œ๋งˆ๋‹ค ์ƒˆ ๋ฒ„์ „์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. โ†’ ๋ฐฐํฌ ๋‚ด์—ญ ๋ฐ ๋กค๋ฐฑ ๊ธฐ๋Šฅ ์ œ๊ณต

Step 4. Invoke

  • 2025.09 ๊ธฐ์ค€์œผ๋กœ ํŒŒ์ด์ฌ, ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ ์Šค๋‹ˆํŽซ ์ œ๊ณต

3. Getting Started (AWS CLI w/ Starter Toolkit)


circle-exclamation

Step 1. ์ค€๋น„

ํŒจํ‚ค์ง€ ์„ค์น˜

๋‹ค์Œ ๊ตฌ์กฐ๋กœ ํ”„๋กœ์ ํŠธ ํด๋” ์ƒ์„ฑ

hello.py

  • ๊ธฐ์กด ๊ตฌํ˜„์— @app.entrpoint ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋งŒ ์ถ”๊ฐ€

requirements.txt ์˜ˆ์‹œ

์—์ด์ „ํŠธ๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์„ฑ ๋ช…๋ น ์‹คํ–‰

Dockerfile (์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉฐ, .dockerignore๋„ ๊ฐ™์ด ์ƒ์„ฑ๋จ)

.bedrock_agentcore.yml (์ž๋™์œผ๋กœ ์ƒ์„ฑ๋จ)

Step 2: ์—์ด์ „ํŠธ ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌ

Note: -l ์˜ต์…˜์„ ๋ถ™์ด๋ฉด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์ถ”์ฒœ ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„: ๋กœ์ปฌ ๊ฐœ๋ฐœ โ†’ ๋กœ์ปฌ ๋ฐฐํฌ โ†’ AWS ๋ฐฐํฌ)

๋กœ์ปฌ ๋ชจ๋“œ ๋ฐฐํฌ

AWS ๋ฐฐํฌ

Step 3: ์—์ด์ „ํŠธ ํ…Œ์ŠคํŠธ

agentcore launch์˜ ์ถœ๋ ฅ์—์„œ ์—์ด์ „ํŠธ์˜ ARN์„ ๊ธฐ๋กํ•ด ๋‘์„ธ์š”. InvokeAgentRuntime ์ž‘์—…์œผ๋กœ ์—์ด์ „ํŠธ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Session Lifecycle

  • Fast start: 200ms

  • 5 mins: Session suspended (์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ, ํŒŒ์ผ์‹œ์Šคํ…œ, ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ์œ ์ง€๋จ)

  • 15 mins: Session timeout

  • 8 hour: Max session duration

์ถ”๊ฐ€ ํ•ธ์ฆˆ์˜จ:

https://github.com/awslabs/amazon-bedrock-agentcore-samples/blob/main/01-tutorials/01-AgentCore-runtime/README.mdarrow-up-right

4. Getting Started without Starter Toolkit


Starter Toolkit ์—†์ด๋„ AgentCore Runtime agent๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AWS์˜ ๊ณต์‹ ๊ฐ€์ด๋“œ๋Š” FastAPI ๊ธฐ๋ฐ˜์˜ /invocations POST ์—”๋“œํฌ์ธํŠธ์™€ /ping GET ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

FastAPI ์ฝ”๋“œ ์˜ˆ์‹œ

FastAPI ๋กœ์ปฌ ํ…Œ์ŠคํŠธ

/ping ์—”๋“œํฌ์ธํŠธ ๋ฐ /invocations ์—”๋“œํฌ์ธํŠธ ํ…Œ์ŠคํŠธ

Dockerfile ์ƒ์„ฑ

Docker build

Docker Test locally

์ดํ›„์—๋Š” ์œ„์™€ ๋™์ผํ•œ ๊ณผ์ •์œผ๋กœ ECR์— pushํ•˜๊ณ  AgentCore์— ๋ฐฐํฌํ•˜๋ฉด ๋จ.

5. AgentCore Runtime MCP ์„œ๋ฒ„


AgentCore Runtime์€ Model Context Protocol (MCP) ์„œ๋ฒ„๋ฅผ ์•ˆ์ „ํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ๋กœ์ปฌ ํ…Œ์ŠคํŠธ: ์ธ์ฆ ์—†์ด http://localhost:8000/mcp๋กœarrow-up-right ์ง์ ‘ ์ ‘๊ทผ ๊ฐ€๋Šฅ

  • AgentCore Runtime MCP ์„œ๋ฒ„ ๋ฐฐํฌ: ๋ฐ˜๋“œ์‹œ Bearer ํ† ํฐ๊ณผ ํ•จ๊ป˜ AWS ์—”๋“œํฌ์ธํŠธ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•ด์•ผ ํ•จ

ํŠน์žฅ์ 

  • ์„ธ์…˜ ๊ฒฉ๋ฆฌ (Session Isolation): Mcp-Session-Id ํ—ค๋”๋ฅผ ํ†ตํ•ด ๊ฐ ์„ธ์…˜์„ ์ž๋™์œผ๋กœ ๊ฒฉ๋ฆฌํ•˜์—ฌ ๋‹ค๋ฅธ ์„ธ์…˜ ๊ฐ„ ๋ฐ์ดํ„ฐ ๋ˆ„์ถœ์„ ๋ฐฉ์ง€

  • Stateless ์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜: ์„œ๋ฒ„๊ฐ€ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ๋ฌด์ƒํƒœ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜์—ฌ ์„ธ์…˜ ํ•˜์ด์žฌํ‚น์ด๋‚˜ ์ƒํƒœ ๊ธฐ๋ฐ˜ ๊ณต๊ฒฉ ์œ„ํ—˜์„ ์ตœ์†Œํ™”

  • ํ‘œ์ค€ํ™”๋œ HTTP ํ”„๋กœํ† ์ฝœ: AgentCore๊ฐ€ ํ‘œ์ค€ํ™”๋œ HTTP ํ”„๋กœํ† ์ฝœ ๊ณ„์•ฝ์„ ํ†ตํ•ด ํ†ต์‹ ํ•˜์—ฌ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ณ  ๊ฒ€์ฆ๋œ ๋ณด์•ˆ ํŒจํ„ด ์ ์šฉ

  • AWS ๊ด€๋ฆฌํ˜• ๋Ÿฐํƒ€์ž„: AWS์˜ ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค๋กœ ์ œ๊ณต๋˜์–ด ์ธํ”„๋ผ ์ˆ˜์ค€์˜ ๋ณด์•ˆ ํŒจ์น˜, ๋ชจ๋‹ˆํ„ฐ๋ง, ์ ‘๊ทผ ์ œ์–ด๊ฐ€ ์ž๋™์œผ๋กœ ์ ์šฉ

์ „์ฒด ํ”Œ๋กœ์šฐ

  1. Cognito ์„ค์ • (OAuth ์„œ๋ฒ„ ์—ญํ•  - OAuth๋Š” ์ธ์ฆ๋ฐ›๋Š” ํ”„๋กœํ† ์ฝœ์„ ์˜๋ฏธํ•จ)

    • User Pool ID: MCP ์„œ๋ฒ„ ์‚ฌ์šฉ์ž๋“ค์˜ ์ง‘ํ•ฉ

      • ์ด ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์˜ ๋ช…๋‹จ

      • ์ „์ฒด์ ์ธ ๋ณด์•ˆ ์ •์ฑ… ์ ์šฉ

    • Client ID: MCP ํด๋ผ์ด์–ธํŠธ ์•ฑ์˜ ์‹๋ณ„์ž

      • ๊ฐ๊ฐ์˜ MCP ํด๋ผ์ด์–ธํŠธ๋งˆ๋‹ค ๋‹ค๋ฅธ ID

      • ํด๋ผ์ด์–ธํŠธ๋ณ„๋กœ ๋‹ค๋ฅธ ์ ‘๊ทผ ๊ถŒํ•œ ์„ค์ • ๊ฐ€๋Šฅ

  2. ์‚ฌ์šฉ์ž ์ธ์ฆ โ†’ Bearer Token ๋ฐœ๊ธ‰ (Bearer Token์€ "์ด๋ฏธ ์ธ์ฆ๋ฐ›์•˜๋‹ค๋Š” ์ฆ๋ช…์„œ"์˜ ์˜๋ฏธ)

  3. MCP ํด๋ผ์ด์–ธํŠธ๊ฐ€ Bearer Token์œผ๋กœ ์„œ๋ฒ„ ์ ‘๊ทผ

  4. AgentCore๊ฐ€ ํ† ํฐ ๊ฒ€์ฆ ํ›„ ์š”์ฒญ ์ฒ˜๋ฆฌ

์ฝ”๋“œ ์˜ˆ์‹œ

Agent configure

6. ๊ฒฐ๋ก 


Amazon Bedrock AgentCore Runtime์€ ์–ด๋–ค ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ์•ˆ์ „ํ•˜๊ฒŒ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์œผ๋กœ ํšจ๊ณผ์ ์ธ ์—์ด์ „ํŠธ๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ์šด์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ ๊ฐœ๋ฐœ์ž๋Š” ์ธํ”„๋ผ ๊ด€๋ฆฌ์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๊ณ  ํ•ต์‹ฌ ์—์ด์ „ํŠธ ๊ธฐ๋Šฅ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ๋ณด์•ˆ, ํ™•์žฅ์„ฑ ๋ฐ ๊ด€์ฐฐ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AgentCore Runtime์€ ์—์ด์ „ํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ํ‘œ์ค€ํ™”๋œ ์„œ๋น„์Šค ๊ณ„์•ฝ์„ ์ œ๊ณตํ•˜์—ฌ ์—์ด์ „ํŠธ๊ฐ€ AWS ํ˜ธ์ŠคํŒ… ์ธํ”„๋ผ์™€ ์›ํ™œํ•˜๊ฒŒ ํ†ตํ•ฉ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์—์ด์ „ํŠธ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•˜๊ณ  ๋ฐฐํฌํ•˜๋ฉฐ, ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ์•ˆ์ „ํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์—์ด์ „ํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋น ๋ฅด๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด AgentCore Runtime์€ ์—์ด์ „ํŠธ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ˜์‹ ์— ์ง‘์ค‘ํ•˜๋ฉด์„œ ์ธํ”„๋ผ์™€ ๋ณด์•ˆ์„ AWS์— ๋งก๊ธธ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ์‹œ์žฅ ์ถœ์‹œ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•˜๊ณ  ์—์ด์ „ํŠธ ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐœ๋ฐœ์„ ๊ฐ€์†ํ™”ํ•ฉ๋‹ˆ๋‹ค.

Last updated