본문으로 건너뛰기

Amazon Bedrock으로 WhatsApp 주문 에이전트 배포

AgentCore와 Nova 2로 WhatsApp의 문자·음성 주문을 하나의 백엔드에 연결합니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

이 글은 하나의 WhatsApp Business 번호에서 텍스트, 음성 메모, 음성 통화를 모두 처리하는 주문용 멀티모달 에이전트를 AWS에 배포하는 방법을 설명합니다. Meta WhatsApp Business Platform의 단일 webhook은 서명을 검증한 뒤 Amazon SQS에 메시지를 넣고 즉시 200을 반환하며, 이후 Webhook Worker가 채널에 맞는 Amazon Bedrock AgentCore 런타임을 호출합니다. 텍스트는 Amazon Nova 2 Lite, 음성 메모와 통화는 Amazon Nova 2 Sonic이 처리하고, AgentCore Gateway는 MCP 도구를 통해 메뉴·장바구니·주문 백엔드와 연결됩니다. 세 런타임은 해시된 customer_id를 키로 하나의 AgentCore memory를 공유하므로 고객이 다른 채널로 이동해도 주문 이력과 선호도를 이어갑니다. AWS CDK와 CodeBuild로 ARM64 컨테이너를 빌드할 수 있지만 Meta 설정, Bedrock 모델 접근 권한, 음성 채널 비용과 운영 보안은 별도로 준비해야 합니다.

섹션별 상세

01
이 솔루션은 앱, 웹사이트, 전화, 매장 카운터로 나뉜 주문 경험을 하나의 WhatsApp Business 번호로 통합합니다. 고객이 문자, 음성 메모, 음성 통화 중 어떤 채널을 사용해도 동일한 주문 백엔드와 교차 채널 memory를 이용합니다. Meta WhatsApp Business Platform이 고객 접점이 되고 Amazon Bedrock AgentCore가 채널별 에이전트 실행을 맡으므로 채널을 추가하거나 제거해도 주문 로직을 바꿀 필요가 없습니다.
02
요청 처리는 공개 endpoint를 오래 붙잡지 않도록 비동기 구조로 나뉩니다. API Gateway와 Webhook Ingest Lambda가 Meta 서명을 검증하고 Amazon SQS에 메시지를 넣은 뒤 200을 반환하며, Webhook Worker가 대기열에서 메시지를 꺼내 미디어를 가져오고 적절한 AgentCore runtime을 호출합니다. 실패한 메시지는 재시도 후 dead-letter queue로 이동하므로 burst traffic과 처리 실패를 webhook 응답 경로에서 분리할 수 있습니다.
WhatsApp 입력부터 AgentCore 런타임, MCP Gateway, 주문 백엔드와 저장소까지 이어지는 멀티모달 주문 시스템의 AWS 구성도입니다.
Diagram구성도는 A부터 G까지 WhatsApp ingress, 세 AgentCore runtime, Amazon Bedrock 모델과 공유 memory, 관리형 MCP Gateway, API·Lambda, DynamoDB, 네트워크·위치 계층을 나눠 보여줍니다. 하단에는 배포 시점의 CDK·CodeBuild·ECR·S3 파이프라인과 런타임 보안·모니터링 서비스가 요청 경로와 분리되어 있어, 실제 요청은 webhook과 SQS를 거쳐 에이전트와 주문 도구로 흐른다는 점이 드러납니다.
03
세 채널은 별도 AgentCore runtime을 사용하지만 메뉴, 장바구니, 주문, 위치 데이터에는 같은 백엔드 도구를 호출합니다. 채팅 런타임은 Amazon Nova 2 Lite를 Converse API로 사용하고 음성 메모와 통화 런타임은 Amazon Nova 2 Sonic을 사용하며, AgentCore Gateway가 REST API 엔드포인트를 GetMenu, AddToCart, PlaceOrder 같은 MCP 도구로 변환합니다. 가격과 합계는 에이전트가 계산하지 않고 주문 도구와 DynamoDB에 맡기므로 채널마다 주문 처리 규칙이 달라지는 문제를 줄입니다.
텍스트 메시지가 webhook, SQS, Chat Runtime, Amazon Nova 2 Lite와 주문 백엔드를 거쳐 WhatsApp 응답으로 돌아가는 흐름입니다.
Diagram흐름도는 webhook 수신, 서명 검증, SQS enqueue, Worker 소비, Chat Runtime 호출 순서를 1부터 10까지 연결합니다. AgentCore memory를 읽고 MCP Gateway가 REST 호출로 변환한 뒤 Lambda와 DynamoDB의 메뉴·주문 데이터를 읽고 쓰며 Sender Lambda가 텍스트 응답을 전달하는 구조가 나타납니다.
음성 메모가 OGG Opus 입력에서 Amazon Nova 2 Sonic의 speech-to-speech 세션을 거쳐 음성 응답으로 변환되는 흐름입니다.
Diagram도식은 음성 메모를 webhook과 SQS로 받은 뒤 Worker가 오디오를 내려받아 Voice-note Runtime에 전달하는 과정을 보여줍니다. 런타임은 공유 memory를 읽고 MCP 도구로 주문 백엔드에 접근한 다음 transcription 단계 없이 음성 응답을 Worker를 통해 WhatsApp으로 돌려보냅니다.
WhatsApp 음성 통화의 SDP 협상과 Amazon KVS TURN relay를 통한 WebRTC 미디어 중계 흐름입니다.
Diagram도식은 Calling API의 call event가 webhook과 SQS를 거쳐 Worker로 전달되고, Worker가 SDP offer를 Call Runtime으로 중계한 뒤 SDP answer를 WhatsApp으로 반환하는 경로를 나타냅니다. 실제 오디오는 Amazon KVS TURN relay를 통해 전달되며, Call Runtime은 Amazon Nova 2 Sonic과 MCP Gateway를 사용해 대화와 주문 도구 호출을 처리합니다.
04
음성 메모는 OGG Opus 오디오를 내려받아 16 kHz PCM으로 디코딩한 뒤 Amazon Nova 2 Sonic의 제한된 speech-to-speech 세션에 입력합니다. 별도 transcription 서비스 없이 음성 입력에서 음성 응답으로 이어지고, 도구 호출은 문자 채널과 같은 AgentCore Gateway를 통과합니다. 따라서 고객은 주문 내용을 텍스트로 바꾸는 중간 서비스를 거치지 않고 음성으로 전달하고 응답받을 수 있습니다.
bash
git clone https://github.com/aws-samples/sample-multimodal-whatsapp-restaurant-agent.git
cd sample-multimodal-whatsapp-restaurant-agent
./scripts/preflight-check.sh
./scripts/deploy-all.sh --deploymentPrefix qsr-wa

샘플 저장소를 복제하고 사전 점검을 실행한 뒤 qsr-wa 접두사로 전체 AWS 스택을 배포합니다.

bash
cd scripts/whatsapp-setup
npm start # choose "Pre-deploy", then "Post-deploy" after deploy
node whatsapp-setup.mjs --doctor # read-only end-to-end check

Meta WhatsApp 설정값을 배포 전후 단계로 연결하고 읽기 전용 doctor 명령으로 전체 연결 상태를 확인합니다.

05
음성 통화는 Meta Calling API의 WebRTC SDP offer를 Worker가 통화 런타임으로 전달하는 방식으로 연결됩니다. VPC 안에서 실행되는 런타임은 Amazon KVS TURN relay를 통해 DTLS/SRTP 미디어를 중계하고, aiortc answerer는 ICE gathering을 기다린 뒤 단일 SDP answer를 반환합니다. 이 구조는 공개 IP가 없는 음성 통화 런타임에서도 Amazon Nova 2 Sonic 기반의 실시간 대화를 가능하게 하지만, 음성 트래픽이 텍스트보다 많은 리소스를 사용한다는 비용 차이를 고려해야 합니다.
06
AgentCore memory는 해시된 customer_id를 기준으로 세 채널의 장기 정보를 하나로 묶습니다. 시스템은 E.164 전화번호와 비밀 pepper를 SHA-256으로 처리해 `wa-` + 해시 앞 16자 형태의 ID를 만들고, 원본 전화번호를 memory나 세션 상태에 저장하지 않습니다. 과거 주문, 선호 메뉴, 고객이 밝힌 선호도가 다음 세션 시작 때 다시 읽히므로 로그인 없이도 같은 WhatsApp 번호의 고객을 인식할 수 있지만, 글은 이를 신원 확인이 아닌 recognition으로 구분합니다.
07
배포는 AWS CDK 스택을 의존성 순서대로 생성하는 방식으로 진행됩니다. VPC와 주문 백엔드를 먼저 만들고 AgentCore Gateway와 memory를 배포한 뒤, CodeBuild에서 ARM64 에이전트 이미지를 빌드해 ECR에 저장하고 세 runtime과 WhatsApp webhook을 올립니다. 첫 컨테이너 빌드에는 약 8–12분이 걸리며, 로컬에는 Python·Docker·오디오 도구 체인이 필요하지 않지만 Node.js 24.x 이상, AWS CLI 2.x, Git, CDK bootstrap과 Nova 2 모델 접근 권한이 필요합니다.

용어 해설

AgentCore Runtime
Amazon Bedrock AgentCore에서 에이전트 컨테이너를 실행하는 런타임입니다. 이 솔루션은 채팅, 음성 메모, 음성 통화마다 별도 런타임을 두고 각 대화를 독립적인 microVM 세션으로 처리해 채널별 실행 환경과 세션을 분리합니다.
Model Context Protocol
AI 에이전트가 외부 기능을 이름 기반 도구로 호출하도록 연결하는 프로토콜입니다. AgentCore Gateway가 주문 백엔드 REST API의 엔드포인트를 MCP 도구로 노출하므로 에이전트는 Lambda 함수 구현을 직접 알지 않고 메뉴 조회나 주문 등록을 수행합니다.
WebRTC
브라우저나 실시간 통신 시스템에서 음성·영상 미디어를 전송하는 기술입니다. 이 구조에서는 WhatsApp Calling API가 전달한 SDP를 음성 통화 런타임이 처리하고, Amazon KVS TURN relay를 통해 DTLS/SRTP 통화 미디어를 중계합니다.
TURN 릴레이(TURN relay)
직접 연결이 어려운 네트워크 환경에서 실시간 미디어를 중계하는 서버입니다. 음성 통화 런타임은 공개 IP 없이 VPC 안에서 실행되므로 Amazon KVS가 제공하는 TURN 자격 증명과 릴레이를 사용해 WhatsApp과 통화 미디어를 주고받습니다.
Dead-letter queue
여러 차례 처리에 실패한 메시지를 별도 보관하는 Amazon SQS 대기열입니다. Webhook Worker가 메시지를 처리하지 못하면 재시도 후 dead-letter queue로 이동시키므로 실패한 주문 요청을 나중에 조사할 수 있습니다.
가명 고객 ID(Pseudonymous customer ID)
원본 식별자를 직접 저장하지 않고 변환해 사용하는 고객 식별자입니다. 시스템은 E.164 전화번호와 Parameter Store의 비밀 pepper를 SHA-256으로 해시해 `wa-` 접두사가 붙은 customer_id를 만들고, 이 값을 AgentCore memory와 세션 키에 사용합니다.

기술

  • Meta WhatsApp Business Platform
  • Amazon Bedrock AgentCore
  • Amazon Nova 2 Lite
  • Amazon Nova 2 Sonic
  • Amazon Bedrock Converse API
  • Model Context Protocol (MCP)
  • AWS Cloud Development Kit (AWS CDK)
  • Amazon API Gateway
  • AWS Lambda
  • Amazon Simple Queue Service (Amazon SQS)
  • Amazon DynamoDB
  • Amazon Location Service
  • Amazon Kinesis Video Streams (Amazon KVS)
  • WebRTC
  • Amazon VPC
  • AWS Secrets Manager
  • AWS Systems Manager Parameter Store
  • Amazon Elastic Container Registry (Amazon ECR)
  • AWS CodeBuild
  • Amazon Simple Storage Service (Amazon S3)
  • Amazon CloudWatch
  • AWS Key Management Service (AWS KMS)

활용 사례

  • WhatsApp 기반 음식점 주문 접수
  • 문자와 음성 채널을 함께 사용하는 고객 지원
  • 소매 고객 지원
  • 의료 intake
  • 현장 서비스 일정 예약
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 09. 05.수집 2026. 09. 05.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.