AgentCore Gateway

1. Overview


Amazon Bedrock AgentCore Gateway๋Š” AI ์—์ด์ „ํŠธ์™€ ์™ธ๋ถ€ ์‹œ์Šคํ…œ ๋ฐ ์„œ๋น„์Šค ๊ฐ„์˜ ์•ˆ์ „ํ•œ ํ†ต์‹ ์„ ๊ด€๋ฆฌํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. AI ์—์ด์ „ํŠธ์™€ ์‹ค์ œ ์™ธ๋ถ€ ์„œ๋น„์Šค ์‚ฌ์ด์˜ ๋ฒˆ์—ญ๊ธฐ(Translator) ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ์ •์˜ํ•œ API ์ŠคํŽ™(OpenAPI ๋“ฑ)์ด๋‚˜ Lambda ํ•จ์ˆ˜๋ฅผ AgentCore Gateway์— ๋“ฑ๋กํ•˜๋ฉด, Gateway๊ฐ€ ์ด๋ฅผ ์—์ด์ „ํŠธ๊ฐ€ ์ดํ•ดํ•˜๊ณ  ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” MCP ๊ธฐ๋ฐ˜์˜ '๋„๊ตฌ(tool)'๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

  • REST API: OpenAPI/Smithy ์ŠคํŽ™์œผ๋กœ ์ •์˜๋œ REST API

  • AWS Lambda ํ•จ์ˆ˜: ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” AWS Lambda ํ•จ์ˆ˜

๋˜ํ•œ, Gateway๋Š” ์ˆ˜์‹  ์š”์ฒญ๊ณผ ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•„์›ƒ๋ฐ”์šด๋“œ ์—ฐ๊ฒฐ ๋ชจ๋‘์— ๋Œ€ํ•ด ์•ˆ์ „ํ•œ ์ ‘๊ทผ ์ œ์–ด๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ด์ค‘ ์ธ์ฆ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ์ธ๋ฐ”์šด๋“œ ์ธ์ฆ(Inbound Auth): ๊ฒŒ์ดํŠธ์›จ์ด ๋Œ€์ƒ์— ์ ‘๊ทผํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๊ฒ€์ฆํ•˜๊ณ  ๊ถŒํ•œ์„ ๋ถ€์—ฌ

  • ์•„์›ƒ๋ฐ”์šด๋“œ ์ธ์ฆ(Outbound Auth): ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ๋ฐฑ์—”๋“œ ๋ฆฌ์†Œ์Šค์— ์•ˆ์ „ํ•˜๊ฒŒ ์—ฐ๊ฒฐ

AgentCore Gateway๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ณ„ API ์—ฐ๋™์˜ ๋ณต์žก์„ฑ์— ์ง‘์ค‘ํ•˜๋Š” ๋Œ€์‹ , ์—์ด์ „ํŠธ์˜ ํ•ต์‹ฌ ๋กœ์ง๊ณผ ๊ธฐ๋Šฅ ๊ตฌํ˜„์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ์ถ”์ƒํ™” ๋ฐ ์ž๋™ํ™” ๊ณ„์ธต์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. AgentCore Gateway์™€ ๊ฐ™์€ ์„œ๋น„์Šค๊ฐ€ ์—†๋‹ค๋ฉด, AI ์—์ด์ „ํŠธ ๊ฐœ๋ฐœ์ž๋“ค์€ ์™ธ๋ถ€ ๋„๊ตฌ์™€ ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•ด ํ›จ์”ฌ ๋ณต์žกํ•˜๊ณ  ์ˆ˜๋™์ ์ธ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

As-Is (Without AgentCore Gateway)

  1. ์ˆ˜๋™์ ์ธ API ์—ฐ๋™ ๋กœ์ง ๊ตฌํ˜„:

    • ์—์ด์ „ํŠธ๊ฐ€ ์™ธ๋ถ€ ์„œ๋น„์Šค(API)๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด, ๊ฐœ๋ฐœ์ž๊ฐ€ ์—์ด์ „ํŠธ์˜ ์ฝ”๋“œ ๋‚ด๋ถ€์— ์ง์ ‘ API ํ˜ธ์ถœ ๋กœ์ง์„ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

    • API์˜ ์—”๋“œํฌ์ธํŠธ, ์ž…๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜, ์ธ์ฆ ๋ฐฉ์‹(API ํ‚ค, OAuth ๋“ฑ), ์‘๋‹ต ํ˜•์‹ ๋“ฑ์„ ๋ชจ๋‘ ์ˆ˜๋™์œผ๋กœ ์ฝ”๋”ฉํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

    • ์ƒˆ๋กœ์šด API๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด API๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด, ์—์ด์ „ํŠธ ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•˜๊ณ  ์žฌ๋ฐฐํฌํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  2. ํ”„๋กœํ† ์ฝœ/ํ˜•์‹ ๋ณ€ํ™˜์˜ ๋ถ€๋‹ด:

    • ์—์ด์ „ํŠธ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ ํ˜•์‹๊ณผ ์™ธ๋ถ€ API์˜ JSON/XML ํ˜•์‹ ๊ฐ„์˜ ๋ณ€ํ™˜ ๋กœ์ง์„ ๋ชจ๋‘ ์ง์ ‘ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

    • ์—์ด์ „ํŠธ์˜ ์š”์ฒญ์„ HTTP ์š”์ฒญ์œผ๋กœ ๋ฐ”๊พธ๊ณ , HTTP ์‘๋‹ต์„ ๋‹ค์‹œ ์—์ด์ „ํŠธ๊ฐ€ ์ดํ•ดํ•˜๋Š” ํ˜•ํƒœ๋กœ ํŒŒ์‹ฑํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—…์ด ํ•„์ˆ˜์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

  3. ์ผ๊ด€์„ฑ ์—†๋Š” ๋„๊ตฌ ๊ด€๋ฆฌ:

    • ๊ฐ๊ฐ์˜ ๋„๊ตฌ(API, ํ•จ์ˆ˜)๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ ๋„๊ตฌ๋“ค์„ ์ •์˜ํ•˜๊ฑฐ๋‚˜ ๋ชฉ๋กํ™”ํ•˜๊ธฐ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค.

    • ๋Œ€๊ทœ๋ชจ์˜ ๋„๊ตฌ๋ฅผ ๊ด€๋ฆฌํ•  ๊ฒฝ์šฐ, ๋ณต์žก๋„๊ฐ€ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

  4. ๋ณด์•ˆ ๋ฐ ์ธ์ฆ ๊ด€๋ฆฌ์˜ ์–ด๋ ค์›€:

    • ์—์ด์ „ํŠธ๊ฐ€ ์—ฌ๋Ÿฌ API์— ์ ‘๊ทผํ•ด์•ผ ํ•  ๊ฒฝ์šฐ, ๊ฐ API์— ๋Œ€ํ•œ ์ธ์ฆ ์ž๊ฒฉ ์ฆ๋ช…(credentials)์„ ์—์ด์ „ํŠธ ์ฝ”๋“œ ๋‚ด๋ถ€์— ์ง์ ‘ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ ๋ณ„๋„์˜ ๋ณด์•ˆ ๊ณ„์ธต์„ ๊ตฌ์ถ•ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

To-be (With AgentCore Gateway)

  1. ํ‘œ์ค€ํ™”๋œ ๋„๊ตฌ ์ •์˜ ๋ฐ ๋“ฑ๋ก:

    • ๊ฐœ๋ฐœ์ž๋Š” ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋Œ€์‹ , OpenAPI/Smithy ์ŠคํŽ™์„ ์‚ฌ์šฉํ•ด API์˜ ๋ช…์„ธ(์„ค๊ณ„๋„)๋งŒ Gateway์— ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

    • Gateway๋Š” ์ด ๋ช…์„ธ๋ฅผ ์ฝ์–ด MCP ๋„๊ตฌ ์ŠคํŽ™์œผ๋กœ ์ž๋™์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  2. ์ž๋™ํ™”๋œ ํ”„๋กœํ† ์ฝœ ๋ณ€ํ™˜:

    • ์—์ด์ „ํŠธ๋Š” MCP๋ผ๋Š” ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ๋กœ Gateway์— ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

    • Gateway๊ฐ€ ์—์ด์ „ํŠธ์˜ MCP ์š”์ฒญ์„ ์‹ค์ œ API/Lambda ํ˜ธ์ถœ๋กœ ๋ฒˆ์—ญํ•˜๊ณ , API์˜ ์‘๋‹ต์„ ๋‹ค์‹œ MCP ํ˜•์‹์œผ๋กœ ์žฌ๋ณ€ํ™˜ํ•ด์„œ ์—์ด์ „ํŠธ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ๋ชจ๋“  ๊ณผ์ •์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์ด ๋ณ€ํ™˜ ๋กœ์ง์„ ์ฝ”๋”ฉํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

    Step 1: ๋„๊ตฌ ๋“ฑ๋ก ์‹œ ๋ฒˆ์—ญ

    Step 2: ๋Ÿฐํƒ€์ž„ ํ˜ธ์ถœ ์‹œ ๋ฒˆ์—ญ

  3. ํ†ตํ•ฉ๋œ ๋„๊ตฌ ์ ‘๊ทผ ๋ฐ ๊ด€๋ฆฌ:

    • ๋ชจ๋“  ๋„๊ตฌ(API, Lambda ๋“ฑ)๊ฐ€ Gateway๋ผ๋Š” ๋‹จ์ผ ์ฐฝ๊ตฌ๋กœ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๋Š” ํ•˜๋‚˜์˜ Gateway ์—”๋“œํฌ์ธํŠธ๋งŒ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ๋ชจ๋“  ๋„๊ตฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ๋„๊ตฌ ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•ด๋„ Gateway ์„ค์ •๋งŒ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๋˜๋ฏ€๋กœ, ์—์ด์ „ํŠธ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ํ•„์š”๊ฐ€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.

ํŠน์žฅ์ 

  • ์ผ๊ด„ ์ธ์ฆ: ์ธ๋ฐ”์šด๋“œ ์ธ์ฆ(์—์ด์ „ํŠธ ์‹ ์› ํ™•์ธ)๊ณผ ์•„์›ƒ๋ฐ”์šด๋“œ ์ธ์ฆ(๋„๊ตฌ ์—ฐ๊ฒฐ)์„ ์ผ์› ๊ด€๋ฆฌ

  • ๋„๊ตฌ ์ž๋™ ๋ณ€ํ™˜

    • AI ์—์ด์ „ํŠธ๋Š” MCP๋กœ ์†Œํ†ต, ์™ธ๋ถ€ ์„œ๋น„์Šค๋Š” REST API, Lambda ๋“ฑ ๊ฐ์ž์˜ ์–ธ์–ด๋กœ ์†Œํ†ต โ†’ Gateway๊ฐ€ โ†’ Gateway๊ฐ€ Open API/Smithy, Lambda ํ•จ์ˆ˜๋ฅผ ๋ช‡ ์ค„์˜ ์ฝ”๋“œ๋กœ MCP ๋„๊ตฌ ์ŠคํŽ™์œผ๋กœ ์ž๋™ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  • ํ†ตํ•ฉ ์ ‘๊ทผ(Gateway Endpoint): ๋“ฑ๋ก๋œ ๋„๊ตฌ๋“ค์„ ํ†ตํ•ฉํ•˜์—ฌ ์—์ด์ „ํŠธ๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ์ผํ•œ MCP ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์—”๋“œํฌ์ธํŠธ๋Š” MCP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—์ด์ „ํŠธ์˜ ์š”์ฒญ์„ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • Semantic Search: x_amz_bedrock_agentcore_search๋ผ๋Š” ๊ธฐ๋ณธ ์ œ๊ณต MCP ํˆด์„ ํ†ตํ•ด ์ž์—ฐ์–ด๋กœ ๋„๊ตฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. MCP ์„œ๋ฒ„์—์„œ ์ˆ˜๋ฐฑ ๊ฐœ์˜ ๋„๊ตฌ ์ „์ฒด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ตœ๋Œ€ 3๋ฐฐ๊นŒ์ง€ ๋‹จ์ถ•ํ•ฉ๋‹ˆ๋‹ค.

Overview
Lambda๋ฅผ MCP tool๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์˜ˆ์‹œ

์‚ฌ์ „ ์ง€์‹

์ธ๋ฐ”์šด๋“œ ์ธ์ฆ(Inbound Auth)

  • MCP ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ(์˜ˆ: Claude Desktop, IDE ๋“ฑ)๋กœ๋ถ€ํ„ฐ ๋ฐ›๋Š” ์š”์ฒญ์„ ๊ฒ€์ฆํ•˜๋Š” ๋ฐฉ์‹

  • "๋ˆ„๊ฐ€ ์šฐ๋ฆฌ์˜ ์—์ด์ „ํŠธ๋‚˜ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?"์— ๊ด€ํ•œ ๊ฒƒ์ž„. - ๋น„์œ : ๋ˆ„๊ฐ€ ๋‚ด ์ง‘์— ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋Š”๊ฐ€?"๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ํ˜„๊ด€๋ฌธ์˜ ์ž ๊ธˆ์žฅ์น˜

  • ์„œ๋ฒ„ ์ž…์žฅ์—์„œ "์ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ •๋ง ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์ด์–ธํŠธ์ธ๊ฐ€?"๋ฅผ ํ™•์ธ

  • ์ฃผ๋กœ API ํ‚ค, ํ† ํฐ, ๋˜๋Š” ์ธ์ฆ์„œ๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ ์‹ ์› ํ™•์ธ

  • ์ธ๋ฐ”์šด๋“œ ์ธ์ฆ์˜ ์ฃผ์š” ๋ฐฉ์‹:

    1. AWS IAM(SigV4) - AWS ์ž๊ฒฉ ์ฆ๋ช…์„ ์‚ฌ์šฉํ•œ ์ธ์ฆ

    2. OAuth 2.0 - Amazon Cognito, Okta, Microsoft Entra ID์™€ ๊ฐ™์€ ์™ธ๋ถ€ ID ์ œ๊ณต์—…์ฒด์™€ ์—ฐ๋™

    3. ์‚ฌ์šฉ์ž๊ฐ€ ID ์ œ๊ณต์—…์ฒด๋กœ ๋กœ๊ทธ์ธ โ†’ ์ธ์ฆ ํ† ํฐ ๋ฐœ๊ธ‰ โ†’ ์ด ํ† ํฐ์œผ๋กœ ์—์ด์ „ํŠธ ํ˜ธ์ถœ

์•„์›ƒ๋ฐ”์šด๋“œ ์ธ์ฆ(Outbound Auth)

  • MCP ์„œ๋ฒ„๊ฐ€ ์™ธ๋ถ€ API๋‚˜ ์„œ๋น„์Šค(GitHub, Slack, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ)์— ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ธ์ฆ

  • "์—์ด์ „ํŠธ๊ฐ€ ๋‹ค๋ฅธ ์„œ๋น„์Šค์— ์ ‘๊ทผํ•  ๋•Œ ์–ด๋–ป๊ฒŒ ์ธ์ฆํ•˜๋Š”๊ฐ€?"์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. - ๋น„์œ : "๋‚ด ์ง‘์— ์žˆ๋Š” ๋กœ๋ด‡์ด ์™ธ๋ถ€ ์„œ๋น„์Šค(์€ํ–‰, ์‡ผํ•‘๋ชฐ ๋“ฑ)์— ์ ‘๊ทผํ•  ๋•Œ ์–ด๋–ป๊ฒŒ ์ธ์ฆํ•  ๊ฒƒ์ธ๊ฐ€?"

  • OAuth ํ† ํฐ, API ํ‚ค, ์‚ฌ์šฉ์ž ์ž๊ฒฉ์ฆ๋ช… ๋“ฑ์„ ์‚ฌ์šฉ

  • ์•„์›ƒ๋ฐ”์šด๋“œ ์ธ์ฆ์˜ ํŠน์ง•:

    1. ์—์ด์ „ํŠธ๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ๋‹ค๋ฅธ ์„œ๋น„์Šค์— ์ ‘๊ทผ

    2. ์•ˆ์ „ํ•œ ํ† ํฐ ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด ์ž๊ฒฉ ์ฆ๋ช… ๋ณดํ˜ธ

    3. ์‚ฌ์šฉ์ž ๋™์˜ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ - ์‚ฌ์šฉ์ž๊ฐ€ ์ฒ˜์Œ ์—์ด์ „ํŠธ์—๊ฒŒ ์ž์‹ ์„ ๋Œ€์‹ ํ•˜์—ฌ ํ–‰๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ฉด, ์—์ด์ „ํŠธ๋Š” ํ•ด๋‹น ๋„๊ตฌ์—์„œ ๋ฐœ๊ธ‰ํ•œ ์‚ฌ์šฉ์ž์˜ ํ† ํฐ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅ

์˜ˆ์‹œ

์‚ฌ์šฉ์ž๊ฐ€ MCP๋ฅผ ํ†ตํ•ด GitHub์ด๋‚˜ Jira ๊ฐ™์€ ์™ธ๋ถ€ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์–ดํ•จ

1๋‹จ๊ณ„: ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ

  • ์‚ฌ์šฉ์ž๊ฐ€ MCP Client์— ๋กœ๊ทธ์ธ

2-4๋‹จ๊ณ„: ์‚ฌ์šฉ์ž ์ธ์ฆ (Inbound)

  • 2๋‹จ๊ณ„: MCP Client๊ฐ€ Auth Server์— JWT ํ† ํฐ ์š”์ฒญ

    • JWT (JSON Web Token): JSON ํ˜•ํƒœ์˜ ์ •๋ณด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ํ† ํฐ ํ‘œ์ค€

    • ๊ตฌ์กฐ: ํ—ค๋”.ํŽ˜์ด๋กœ๋“œ.์„œ๋ช… (์ ์œผ๋กœ ๊ตฌ๋ถ„๋œ 3๋ถ€๋ถ„) โ†’ ์„œ๋ช…์œผ๋กœ ์œ„๋ณ€์กฐ ๋ฐฉ์ง€

    • ์„œ๋ฒ„์—์„œ ๋ณ„๋„ ์ €์žฅ ์—†์ด๋„ ํ† ํฐ๋งŒ์œผ๋กœ ์‚ฌ์šฉ์ž ํ™•์ธ ๊ฐ€๋Šฅ

  • 3๋‹จ๊ณ„: Auth Server๊ฐ€ MCP Server์— Bearer Token ์ „๋‹ฌ

  • 4๋‹จ๊ณ„: Auth Server๊ฐ€ ํ† ํฐ ๊ฒ€์ฆ

5-6๋‹จ๊ณ„: ์™ธ๋ถ€ ์„œ๋น„์Šค ์ธ์ฆ (Outbound)

  • 5๋‹จ๊ณ„: MCP Server๊ฐ€ ์™ธ๋ถ€ ์„œ๋น„์Šค ์ธ์ฆ ๋ฐฉ๋ฒ• ์„ ํƒ:

    • Credential Vault: PAT(Personal Access Token) ์ €์žฅ์†Œ

    • Service Account: ์„œ๋น„์Šค ์ „์šฉ ๊ณ„์ •์˜ API Key

    • OAuth: ์‚ฌ์šฉ์ž ๋Œ€์‹  ์ ‘๊ทผํ•˜๋Š” JWT Token (์œ„์ž„์žฅ ์—ญํ• )

  • 6๋‹จ๊ณ„: ์„ ํƒ๋œ ์ธ์ฆ ๋ฐฉ๋ฒ•์œผ๋กœ ์™ธ๋ถ€ API ํ˜ธ์ถœ

OAuth Authorization Flow on MCP

  • Amazon Cognito๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณต์žกํ•œ ์ธ์ฆ ์‹œ์Šคํ…œ์„ ์ง์ ‘ ๊ตฌ์ถ•ํ•  ํ•„์š” ์—†์ด, ์•ˆ์ „ํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ MCP ์ธ์ฆ ์‹œ์Šคํ…œ์„ ๋น ๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ํ™•์žฅ์„ฑ: ์‚ฌ์šฉ์ž ์ˆ˜ ์ฆ๊ฐ€์— ๋”ฐ๋ฅธ ์ž๋™ ์Šค์ผ€์ผ๋ง / ํ†ตํ•ฉ: ๋‹ค๋ฅธ AWS ์„œ๋น„์Šค๋“ค๊ณผ ์‰ฌ์šด ์—ฐ๋™ / ๊ทœ์ • ์ค€์ˆ˜: SOC, PCI DSS ๋“ฑ ๋ณด์•ˆ ์ธ์ฆ ํš๋“

  • User โ†’ MCP Client โ†’ Cognito(Auth Server) โ†’ MCP Server

    • ์œ„ ๋‹ค์ด์–ด๊ทธ๋žจ์˜ Auth Server ๋ถ€๋ถ„์„ Cognito๊ฐ€ ๋‹ด๋‹น

    • ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ, JWT ํ† ํฐ ๋ฐœ๊ธ‰/๊ฒ€์ฆ ์ฒ˜๋ฆฌ

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


Step 1. Create Gateway

  • ๊ฒŒ์ดํŠธ์›จ์ด ์ƒ์„ฑ ์ „์— ์ธ๋ฐ”์šด๋“œ ์ธ์ฆ์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (customJWTAuthorizer)

Step 2. Create Gateway Target

circle-exclamation

Target ์„ค์ •์„ ํ†ตํ•ด ์—ฌ๊ธฐ์„œ Gateway์™€ Tool์˜ ์—ฐ๋™์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. 3๊ฐ€์ง€ ์œ ํ˜•์˜ Target type ์ง€์›์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค

  • Lambda ํƒ€๊ฒŸ: AWS Lambda ํ•จ์ˆ˜๋ฅผ ๋„๊ตฌ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๋งž์ถคํ˜• ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์—์ด์ „ํŠธ๊ฐ€ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

  • OpenAPI/Smithy ํƒ€๊ฒŸ: ๊ธฐ์กด์˜ REST API๋ฅผ OpenAPI๋‚˜ Smithy ์ŠคํŽ™์„ ํ†ตํ•ด MCP ํ˜ธํ™˜ ๋„๊ตฌ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  • ํ†ตํ•ฉ ํƒ€๊ฒŸ(Integration Target): Amazon, Tavily, Salesforce, Jira ๋“ฑ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋„๊ตฌ๋“ค์— ๋Œ€ํ•œ ์‚ฌ์ „ ๊ตฌ์„ฑ๋œ ์ปค๋„ฅํ„ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Lambda ARN target ๋ฐฐํฌ ์ฝ”๋“œ ์Šค๋‹ˆํŽซ

  • ์Šคํ‚ค๋งˆ ์„ค์ •์€ ์ธ๋ผ์ธ์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ S3 ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Lambda ํ•จ์ˆ˜ ์˜ˆ์‹œ

Strands Agents์™€ ์—ฐ๋™

Gateway๋Š” MCP ํ˜ธํ™˜ ์‚ฌ์–‘์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์—, MCP์˜ ๋„๊ตฌ์™€ ๋™์ผํ•˜๊ฒŒ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ Gateway ์ƒ์„ฑ ์‹œ ์„ค์ •ํ•œ ๋Œ€๋กœ, Cognito๋ฅผ ์ด์šฉํ•œ Bearer ํ† ํฐ ์ธ์ฆ์„ ์ ‘๊ทผ ์‹œ์— ์ˆ˜ํ–‰ํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

GatewayURL ์„ค์ • (์ฝ˜์†”์—์„œ๋„ ํ™•์ธ ๊ฐ€๋Šฅ)

  • ์ฒ˜๋ฆฌ ํ๋ฆ„์œผ๋กœ๋Š” ๋จผ์ € ํ™˜๊ฒฝ ๋ณ€์ˆ˜์—์„œ ์•ž์„œ ๊ธฐ๋กํ•œ Cognito์˜ ๊ฐ์ข… ์ธ์ฆ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ , ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์•ก์„ธ์Šค ํ† ํฐ์„ ํš๋“ํ•œ ํ›„, ๊ทธ ์•ก์„ธ์Šค ํ† ํฐ์„ ์ด์šฉํ•ด Gateway์— Bearer ์ธ์ฆ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

Invoke (AgentCore Runtime์„ ๋ฐ˜๋“œ์‹œ ์‹คํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.)


Amazon Bedrock AgentCore์˜ Semantic Search๋Š” AI ์—์ด์ „ํŠธ๊ฐ€ ์ˆ˜์ฒœ ๊ฐœ์˜ ๋„๊ตฌ ์ค‘์—์„œ ํŠน์ • ์ปจํ…์ŠคํŠธ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋„๊ตฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ”„๋กฌํ”„ํŠธ ํฌ๊ธฐ๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ  ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ค„์ด๋ฉด์„œ ์—์ด์ „ํŠธ๊ฐ€ ํšจ๊ณผ์ ์œผ๋กœ ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๊ธฐ๋Šฅ ๋ฐ ํŠน์ง•

1. Semantic Tool Selection

  • AI ์—์ด์ „ํŠธ๊ฐ€ ํŠน์ • ์ปจํ…์ŠคํŠธ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋„๊ตฌ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ๋“ค ์ „์ฒด๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ

  • ์ž‘์—… ์ปจํ…์ŠคํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์  ๋„๊ตฌ ๋งค์นญ ์ˆ˜ํ–‰

  • ์ˆ˜์ฒœ ๊ฐœ์˜ ๋„๊ตฌ ์ค‘์—์„œ๋„ ํšจ์œจ์ ์ธ ์„ ํƒ ๊ฐ€๋Šฅ

2. ์ปจํ…์ŠคํŠธ ์ธ์‹ ๊ฒ€์ƒ‰

  • ๋‚ด์žฅ๋œ ์‹œ๋งจํ‹ฑ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์ด ์ž‘์—… ์ปจํ…์ŠคํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์—์ด์ „ํŠธ๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›

  • ์—์ด์ „ํŠธ ์„ฑ๋Šฅ ํ–ฅ์ƒ ๋ฐ ๋Œ€๊ทœ๋ชจ ๊ฐœ๋ฐœ ๋ณต์žก์„ฑ ๊ฐ์†Œ

3. ํ”„๋กฌํ”„ํŠธ ์ตœ์ ํ™”

  • ํ”„๋กฌํ”„ํŠธ ํฌ๊ธฐ ์ตœ์†Œํ™”๋ฅผ ํ†ตํ•œ ํšจ์œจ์„ฑ ํ–ฅ์ƒ

  • ์ง€์—ฐ ์‹œ๊ฐ„(latency) ๊ฐ์†Œ

  • ๋” ์ •ํ™•ํ•œ ๋„๊ตฌ ์„ ํƒ์„ ํ†ตํ•œ ์ „๋ฐ˜์ ์ธ ์„ฑ๋Šฅ ๊ฐœ์„ 

Code snippet

4. ๊ฒฐ๋ก 


Amazon Bedrock AgentCore Gateway๋Š” AI ์—์ด์ „ํŠธ์™€ ์™ธ๋ถ€ ์„œ๋น„์Šค ๋ฐ ์‹œ์Šคํ…œ ๊ฐ„์˜ ์•ˆ์ „ํ•œ ํ†ต์‹ ์„ ๊ด€๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ์—์ด์ „ํŠธ๋Š” ๋‹ค์–‘ํ•œ ์™ธ๋ถ€ API, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์›น ์„œ๋น„์Šค ๋“ฑ๊ณผ ์•ˆ์ „ํ•˜๊ฒŒ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Gateway๋Š” ์ธ์ฆ, ๊ถŒํ•œ ๊ด€๋ฆฌ, ์š”์ฒญ ์ œํ•œ, ๋กœ๊น… ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ์—์ด์ „ํŠธ์˜ ์™ธ๋ถ€ ํ†ต์‹ ์„ ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์ปค๋„ฅํ„ฐ์™€ ์ธ์ฆ ๋ฐฉ์‹์„ ์ง€์›ํ•˜์—ฌ ์—ฌ๋Ÿฌ ์œ ํ˜•์˜ ์™ธ๋ถ€ ์„œ๋น„์Šค์™€ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ AgentCore ์„œ๋น„์Šค(Runtime, Memory, Code Interpreter, Observability ๋“ฑ)์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ์—์ด์ „ํŠธ์˜ ๊ธฐ๋Šฅ์„ ํฌ๊ฒŒ ํ™•์žฅํ•˜์—ฌ ๋” ์ง€๋Šฅ์ ์ด๊ณ  ์œ ์šฉํ•œ ์—์ด์ „ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Last updated