Amazon Quick: 엔지니어를 위한 AWS의 에이전틱 워크스페이스(Agentic Workspace) 설명
요약
Amazon Quick은 AWS가 팀 단위 사용을 위해 출시한 즉시 사용 가능한 에이전틱 워크스페이스입니다. Amazon Bedrock AgentCore를 기반으로 하며, MCP(Model Context Protocol)를 통해 다양한 도구와 연결되어 비즈니스 데이터에 근거한 자동화 및 협업 기능을 제공합니다.
핵심 포인트
- Amazon Quick은 커스텀 오케스트레이션 코드 없이 팀 전체가 사용할 수 있는 완성형 에이전트 제품 계층임
- Spaces, Agents, Research, Quick Sight 통합, Quick Flows의 5가지 핵심 구성 요소로 이루어짐
- MCP(Model Context Protocol)를 사용하여 Slack, CRM, 데이터베이스 등 외부 도구와 통합 가능
- AWS IAM 및 VPC를 통해 기존 AWS 워크로드와 동일한 보안 및 컴플라이언스 수준을 유지함
- 개인용 어시스턴트를 넘어 팀 단위의 데이터 근거(grounding) 및 워크플로우 자동화에 최적화됨
AWS는 Bedrock, AgentCore, Strands 등 자체 에이전트 시스템을 처음부터 구축하고자 하는 엔지니어를 주요 대상으로 하는 에이전틱 인프라스트럭처(agentic infrastructure)를 한동안 구축해 왔습니다. Amazon Quick은 동일한 전략의 다른 계층으로, 커스텀 오케스트레이션(orchestration) 코드 없이 팀을 직접 겨냥하는 즉시 사용 가능한 에이전틱 워크스페이스(agentic workspace)입니다. 이 글에서는 Quick이 무엇인지, 구성 요소들이 기술적으로 어떻게 결합되는지, MCP 통합 모델이 실제 코드로 어떻게 작동하는지, 그리고 AWS의 나머지 에이전트 스택과 비교했을 때 어디에 위치하는지를 살펴봅니다.
Amazon Quick이란 무엇인가
Amazon Quick은 Slack, Microsoft Teams, Outlook, CRM, 데이터베이스 및 로컬 파일과 같은 기존 도구에 연결되어, 이들을 가로질러 질의(querying), 자동화(automating) 및 실행(acting)할 수 있는 통합 계층을 제공하는 업무용 AI 어시스턴트입니다. 이 제품은 2026년 4월 28일 AWS의 "What's Next with AWS" 이벤트에서 프리뷰(preview)로 출시되었습니다. 이 제품은 단순한 개인 사용자가 아닌 팀을 대상으로 합니다. 한 사람이 특정 데이터 세트나 워크플로우(workflow)로 범위를 제한한 커스텀 에이전트를 구축하면 팀 전체가 그 혜택을 누릴 수 있습니다. Quick 에이전트의 응답은 기반 모델의 학습 분포(training distribution)가 아니라, 귀하의 실제 비즈니스 데이터에 근거(grounded)합니다. 내부적으로 Quick은 Amazon Bedrock AgentCore를 기반으로 구축되었으며, 외부 도구와 연결하기 위한 표준으로 모델 컨텍스트 프로토콜(Model Context Protocol, MCP)을 사용합니다. 또한 AWS IAM 및 VPC에서 실행되므로, 귀하의 다른 AWS 워크로드와 동일한 보안 및 컴플라이언스(compliance) 태세를 상속받습니다.
제품 구성 요소
Quick은 다섯 가지의 뚜렷한 기능을 묶어 제공합니다. 이 기능들이 어떻게 구성되는지 생각하기 전에 각각을 개별적으로 이해하는 것이 도움이 됩니다.
| 구성 요소 | 역할 |
|---|---|
| Spaces | 팀이 파일, 대시보드 및 데이터 소스를 모으는 협업 워크스페이스(collaborative workspaces). Space 내의 에이전트는 해당 Space의 데이터에 근거(grounded)합니다. |
| Agents | 팀의 특정 데이터로 구축된 커스텀 도메인 범위 에이전트(domain-scoped agents). 한 사람이 구축하고 모두가 사용합니다. |
| Research | 내부 데이터, 공개 웹 및 제3자 데이터 세트에 걸친 다중 소스 합성(Multi-source synthesis). 구조화된 보고서를 생성합니다. |
시각화 (Quick Sight) 통합 BI (Business Intelligence) 계층. 대시보드, 차트 및 예측에 대한 대화형 접근을 제공하며, 별도의 BI 도구가 필요하지 않습니다. 자동화 (Quick Flows) 단순한 일상 업무부터 앱 간 액션 실행을 포함하는 복잡한 다단계 프로세스까지 워크플로 자동화를 지원합니다. 각 구성 요소는 웹 앱, 모바일, 그리고 브라우저 접근 없이도 로컬 파일과 캘린더 컨텍스트를 읽을 수 있는 네이티브 데스크톱 앱(현재 macOS 및 Windows용 프리뷰 제공 중)을 통해 사용할 수 있습니다.
AWS 에이전트 스택에서 Quick의 위치
AWS는 두 가지 방향으로 동시에 구축을 진행하고 있습니다. AgentCore는 어떤 모델이나 프레임워크와도 결합하여 자신만의 에이전트 시스템(런타임, 메모리, 게이트웨이, 관측성)을 구성하고자 하는 엔지니어를 위한 인프라 계층입니다. Quick은 그 위의 제품 계층으로, 정해진 방식(opinionated)을 따르며 팀 단위로 사용 가능하고 오케스트레이션(Orchestration) 코드를 작성하지 않고도 배포할 수 있습니다. 실질적인 의미는 다음과 같습니다. 만약 여러분이 내부 도구나 자동화 파이프라인을 구축하는 엔지니어라면, 두 계층 모두와 상호작용하게 될 가능성이 높습니다. 인프라 배선을 위해서는 AgentCore를 사용하고, 기술적이지 않은 팀원들이 여러분이 구축한 에이전트와 상호작용하는 접점으로는 Quick을 사용하게 됩니다.
통합 아키텍처 (The Integration Architecture)
Quick을 평가하는 모든 엔지니어의 핵심 질문은 다음과 같습니다:
인증은 OAuth 2.0을 통해 흐르며, 동적 클라이언트 등록 (Dynamic Client Registration, DCR)을 지원하여 Quick이 수동적인 자격 증명 설정 없이 스스로를 자동으로 등록할 수 있습니다.
Quick을 위한 MCP 서버 구축하기
다음은 mcp SDK를 사용하여 Quick이 호출할 수 있는 두 가지 도구인 get_ticket과 list_open_tickets를 노출하는 최소한의 Python MCP 서버 예시입니다. 이 패턴은 서버를 직접 호스팅하든 AgentCore Runtime에서 실행하든 동일하게 작동합니다.
의존성 설치
pip install mcp[server] httpx uvicorn
서버 구현
# server.py
from mcp.server import Server
from mcp.server.sse import SseServerTransport
from mcp.types import Tool, TextContent
import httpx
import json
from starlette.applications import Starlette
from starlette.routing import Route
app = Server("jira-quick-integration")
JIRA_BASE_URL = "https://yourorg.atlassian.net"
JIRA_TOKEN = "Bearer <your-token>" # 프로덕션 환경에서는 AWS Secrets Manager에서 로드하세요.
@app.list_tools()
async def list_tools() -> list[Tool]:
return [
Tool(
name="get_ticket",
description="이슈 키를 통해 단일 Jira 티켓의 상세 정보를 가져옵니다.",
inputSchema={
"type": "object",
"properties": {
"issue_key": {"type": "string", "description": "Jira 이슈 키 (예: ENG-1234)"}
},
"required": ["issue_key"]
}
),
Tool(
name="list_open_tickets",
description="특정 사용자에게 할당된 열려 있는 Jira 티켓 목록을 나열합니다.",
inputSchema={
"type": "object",
"properties": {
"assignee": {"type": "string", "description": "할당된 사용자의 Jira 사용자 이름 또는 이메일"}
},
"required": ["assignee"]
}
)
]
@app.call_tool()
async def call_tool(name: str, arguments: dict) -> list[TextContent]:
headers = {
"Authorization": JIRA_TOKEN,
"Content-Type": "application/json"
}
async with httpx.AsyncClient() as client:
if name == "get_ticket":
key = arguments["issue_key"]
resp = await client.
get(f" { JIRA_BASE_URL } /rest/api/3/issue/ { key } " , headers = headers ) resp . raise_for_status() data = resp . json() summary = data[ "fields"][ "summary" ] status = data[ "fields"][ "status"][ "name" ] return [ TextContent ( type = "text" , text = f" { key } : { summary } [ { status } ] " )] elif name == "list_open_tickets" : assignee = arguments[ "assignee" ] jql = f" assignee= { assignee } AND status != Done ORDER BY updated DESC " resp = await client.get(f" { JIRA_BASE_URL } /rest/api/3/search " , headers = headers , params = { "jql" : jql , "maxResults" : 20 } ) resp . raise_for_status() issues = resp.json().get( "issues", []) results = [ f" { i['key'] } : { i['fields']['summary'] } " for i in issues ] return [ TextContent ( type = "text" , text = "\n" . join(results) or "No open tickets found." )] raise ValueError(f" Unknown tool: { name } " ) # Quick 호환성을 위한 SSE 전송 설정 sse = SseServerTransport( "/messages/" ) async def handle_sse ( request ): async with sse.connect_sse( request.scope , request.receive , request._send ) as streams : await app.run( streams[ 0 ], streams[ 1 ], app.create_initialization_options ()) starlette_app = Starlette( routes = [ Route( "/sse" , endpoint = handle_sse )] ) if __name__ == "__main__" : import uvicorn uvicorn.run( starlette_app , host = "0.0.0.0" , port = 8080 ) Quick용으로 구축할 때 알아야 할 몇 가지 설계 제약 사항: 각 MCP 도구 호출에는 300초의 하드 타임아웃이 있습니다. 이 시간을 초과하는 작업은 HTTP 424로 실패합니다. 개별 도구 호출은 간결하고 빨라야 합니다. 도구 목록은 등록 후 정적(static)으로 취급됩니다. 서버에서 도구를 추가하거나 제거하면 Quick 관리자가 변경 사항을 가져오기 위해 연결을 재설정해야 합니다. Quick은 Server-Sent Events (SSE)와 스트리밍 가능한 HTTP를 전송 방식으로 지원합니다. 새로운 구현에는 스트리밍 가능한 HTTP가 권장됩니다.
Quick에 MCP 서버 등록하기
서버가 실행 중이고 HTTPS를 통해 공개적으로 접근 가능한 상태가 되면, Quick에서의 등록 과정은 다음과 같은 경로를 따릅니다: Quick Console → Integrations → Add Integration → MCP Fields:
- Server URL: https://your-mcp-server.example.com/sse
- Auth type: OAuth 2.0 (또는 Service, 또는 None)
- Client ID: <사용자의 ID 제공자(identity provider)로부터 받은 값>
- Authorization URL: https://auth.example.com/oauth/authorize
- Token URL: https://auth.example.com/oauth/token
사용자의 ID 제공자(identity provider)가 OAuth 동적 클라이언트 등록 (OAuth Dynamic Client Registration, DCR)을 지원하는 경우, Quick이 자동으로 등록을 수행하므로 수동 클라이언트 ID 단계를 완전히 건너뛸 수 있습니다. Quick은 MCP 서버로 인증되지 않은 초기 요청을 보냅니다. 만약 `resource_metadata` URL이 포함된 `WWW-Authenticate` 헤더와 함께 401 응답을 받으면, Quick은 메타데이터 문서를 가져와 자동으로 DCR을 진행합니다. 등록이 완료되면 Quick은 시작 시 `listTools`를 호출하며, 발견된 모든 도구를 워크스페이스 내의 에이전트(agents) 및 자동화(automations)에 노출합니다.
AgentCore Gateway 옵션
MCP 서버를 처음부터 직접 작성하고 운영하고 싶지 않은 팀을 위해, Amazon Bedrock AgentCore Gateway가 관리형 대안을 제공합니다. Gateway를 Lambda 함수나 OpenAPI 명세(spec)로 지정하면, Gateway가 MCP 래핑(wrapping), 인증(auth), 로깅(logging), 그리고 시맨틱 도구 검색(semantic tool discovery)을 자동으로 처리합니다. Gateway를 사용하는 경우, Quick은 사용자의 내부 API를 직접 호출하지 않습니다. 위 시퀀스 다이어그램(sequence diagram)에서 보여준 것처럼 모든 흐름은 Gateway의 인증 및 라우팅 레이어를 통해 전달됩니다.
특히 시맨틱 검색(semantic search) 기능은 주목할 만한 가치가 있습니다. 에이전트가 수십 개 또는 수백 개의 도구에 접근할 수 있는 경우, 매 턴(turn)마다 전체 도구 목록을 전달하는 것은 컨텍스트(context)를 낭비하고 모델이 잘못된 도구를 선택하게 만듭니다. Gateway의 내장된 `x_amz_bedrock_agentcore_search` 도구를 사용하면, Quick은 매 턴마다 전체 레지스트리(registry)를 스캔하는 대신 시맨틱 유사성(semantic similarity)을 통해 적절한 도구를 찾을 수 있습니다.
실무적 고려 사항
통합하기 전에 염두에 두어야 할 몇 가지 사항이 있습니다: 도구 범위(Tool scope)가 중요합니다.
에이전트에게 너무 많은 도구(tools)를 동시에 부여하면 선택 정확도가 저하됩니다. 모델이 턴(turn)마다 너무 많은 옵션을 고려하게 되어 잘못된 선택을 할 확률이 높아지기 때문입니다. 모든 기능을 하나의 엔드포인트로 노출하는 것보다, 각 에이전트나 MCP 서버가 3~5개의 집중된 도구 세트를 유지하도록 하는 것이 더 나은 결과를 만들어냅니다. 이는 멀티 에이전트 아키텍처(multi-agent architectures)에서 알려진 패턴이며, Quick 에이전트에도 동일하게 적용됩니다. 300초의 타임아웃(timeout)은 실제 제약 사항입니다. 각 도구 호출(tool call)이 단일하고 경계가 명확한 작업(bounded operation)을 완료하도록 설계하십시오. 단일 도구 호출 내에서 여러 개의 다운스트림 API 호출을 체이닝(chaining)하는 것은 피해야 합니다. 만약 다단계 워크플로(multi-step workflow)가 필요하다면, 이를 별개의 도구로 모델링하고 에이전트가 그 순서를 오케스트레이션(orchestrate)하도록 하십시오. 데스크톱 앱의 로컬 컨텍스트(Local context). 데스크톱 앱은 업로드 과정 없이 로컬 파일과 캘린더 이벤트를 직접 읽습니다. 주로 터미널과 로컬 에디터에서 작업하는 엔지니어들에게 이는 의미 있는 통합 지점입니다. 미팅 컨텍스트(meeting context), 로컬 문서, 그리고 최근 파일 변경 사항이 별도의 설정 없이도 어시스턴트(assistant)에 제공됩니다. MCP 상호 운용성(interoperability). Quick은 MCP를 표준으로 사용하기 때문에, Quick을 위해 구축한 동일한 MCP 서버를 Claude Code, Amazon Q Developer 및 기타 MCP 호환 클라이언트에서도 사용할 수 있습니다. 통합 계약(integration contract)이 이식 가능합니다.
참고 문헌: Amazon Quick — 제품 개요 및 기능
MCP를 사용하여 Amazon Quick 에이전트에 외부 도구 통합하기 (AWS ML Blog, 2026년 2월)
MCP 통합 — Amazon Quick 사용자 가이드
Amazon Bedrock AgentCore — 개요 및 문서
Amazon Bedrock AgentCore Gateway 소개 (AWS ML Blog)
What's Next with AWS, 2026의 주요 발표 사항 (AWS News Blog, 2026년 4월)
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기