500회 시뮬레이션으로 검증한 의료급 정확도와 비용 효율

Natera는 암 환자의 방문 채혈 예약을 자동화하기 위해 Amazon Bedrock AgentCore 기반의 음성 에이전트를 도입했다. Natera는 500회의 엔드투엔드(End-to-End) 통화 시뮬레이션을 수행하여 도구 호출(Tool-calling) 정확도 100%를 기록했다. 시스템은 환자 정보를 확인하고 예약 API를 호출하는 전 과정에서 오류 없이 작동하며 데이터 입력 리스크를 제거했다.

운영 비용 측면에서 Natera는 완료된 통화 한 건당 비용을 0.01달러 미만으로 낮췄다. 이는 수동 전화 예약 방식에서 발생하는 인건비와 운영 부담을 획기적으로 줄인 결과다. 정형화된 워크플로우를 통해 통화량이 급증하는 상황에서도 비용 증가 폭을 최소화하는 경제적 지속 가능성을 확보했다.

사용자 경험을 결정하는 지연 시간(Perceived latency)은 7초 미만으로 유지했다. Natera는 Amazon Bedrock의 파운데이션 모델을 활용해 대화 맥락에 맞는 중간 응답을 생성함으로써 처리 시간 동안의 공백을 메웠다. 이를 통해 환자가 실제 상담원과 대화하는 것과 유사한 리듬을 제공하며 의료 현장에 즉시 적용 가능한 수준의 응답 속도를 구현했다.

실시간 음성 스트리밍을 위한 Dual-WebSocket 브리지 패턴

Natera는 전화망의 음성 신호를 AI 모델이 처리할 수 있는 데이터로 변환하기 위해 Dual-WebSocket 브리지 패턴을 설계했다. 에이전트는 전화 연결 서비스인 Twilio와 첫 번째 WebSocket 연결을 맺고, 동시에 실시간 음성 처리 API와 두 번째 WebSocket 연결을 생성한다. 이 구조는 오디오 데이터를 중계하는 통로 역할을 하며 실시간성을 보장한다.

데이터 흐름은 인바운드와 아웃바운드 경로로 정교하게 분리된다. 인바운드 경로에서는 Twilio가 수집한 환자의 음성 데이터를 음성 처리 서비스로 직접 스트리밍하여 사용자의 의도를 인식한다. 아웃바운드 경로에서는 음성 처리 서비스가 생성한 오디오 응답을 에이전트가 수신해 Twilio로 전달함으로써 환자에게 합성 음성을 송출한다.

에이전트는 두 WebSocket 사이의 트래픽을 조율하는 중계소 역할을 수행하며 대화의 연속성을 관리한다. 내장된 메모리 관리 시스템은 환자의 이전 활동 내역을 저장하고 호출 시 즉시 불러와 개인화된 지원을 제공한다. 이러한 설계는 오케스트레이션 복잡도를 증가시키지만, 실시간 음성 인터랙션의 자연스러움을 극대화하기 위한 필수적인 선택이었다.

Amazon ECS 컨테이너에서 서버리스 AgentCore로의 인프라 전환

Natera는 운영 오버헤드를 제거하기 위해 기존 Amazon ECS 기반의 셀프 매니지드 컨테이너 환경을 Bedrock AgentCore 런타임으로 교체했다. 기존 ECS 환경에서는 헬스 체크 엔드포인트, 자동 확장 정책, 배포 매니페스트 등 인프라 관리 코드를 팀이 직접 유지보수해야 했다. 반면 AgentCore는 전용 CPU, 메모리, 파일시스템을 갖춘 격리된 microVM 환경을 제공하는 완전 관리형 서버리스 구조다.

마이그레이션 과정에서 Natera는 음성 오케스트레이션 로직을 컨테이너 전용 인프라 코드와 완전히 분리했다. HTTP 서버를 초기화하던 기존 진입점 코드를 특정 이벤트 발생 시에만 실행되는 AgentCore 핸들러 패턴으로 리팩토링했다. 이를 통해 서버 설정이나 포트 관리와 같은 하위 수준의 제어 로직을 제거하고 비즈니스 로직에 집중할 수 있는 환경을 구축했다.

인프라 전환의 결과로 Natera는 컨테이너 오케스트레이션에 소요되던 운영 공수를 제거했다. 서버리스 환경의 특성을 활용해 호출량에 따라 자원이 자동으로 할당되도록 하여, 인프라 확장 설정 없이도 대규모 환자 요청을 처리할 수 있는 확장성을 확보했다.

세션 상태 관리와 라이프사이클의 구조적 차이점

Natera는 마이그레이션 과정에서 컨테이너 기반(ECS)과 서버리스 기반(AgentCore)의 세션 상태 관리 방식 차이를 해결했다. Amazon ECS에서는 대화 상태가 컨테이너 로컬 메모리에 저장되었으나, 이 방식은 컨테이너가 재시작되거나 스케일 아웃될 때 상태가 유실되는 한계가 있었다. Natera는 이를 해결하기 위해 액터 ID 기반의 Bedrock AgentCore 메모리를 도입하여 세션 간 지속성을 보장하는 외부화 저장 구조를 구현했다.

컴퓨팅 라이프사이클의 차이 또한 주요 해결 과제였다. Amazon ECS 태스크는 무기한으로 실행되는 반면, AgentCore microVM은 개별 호출(Invocation) 단위로 생성되고 종료되는 스코프를 가진다. 이러한 특성은 장기 유지되어야 하는 WebSocket 연결의 안정성을 저해할 수 있는 요인이 된다.

Natera는 런타임 컨텍스트 내에 연결 풀링(Connection pooling)을 구현하여 이 문제를 해결했다. 미리 연결된 통신 통로를 재사용함으로써 microVM의 짧은 생명주기 속에서도 WebSocket 세션이 단일 통화 기간 동안 유지되도록 만들었다. 결과적으로 서버리스의 효율성과 실시간 통신의 연결성을 동시에 확보하는 아키텍처를 완성했다.

Amazon Connect Health 대비 AgentCore의 선택 기준과 효용

Natera는 표준 의료 기록 시스템(Epic, Cerner 등)을 지원하는 Amazon Connect Health 대신 AgentCore를 선택했다. Connect Health는 기성 에이전트를 제공하지만, Natera는 외부 벤더 시스템의 예약 가능 시간대를 실시간으로 조정하고 전화 시스템의 제어권을 세밀하게 가져가야 하는 요구사항이 있었다. 특히 환자 식별자와 SMS 인증 코드를 활용한 복잡한 인증 절차를 구현하기 위해 AgentCore의 유연한 제어 능력이 필요했다.

AgentCore의 결정적인 효용은 모든 실행 단계의 상세 트레이스(Trace)를 캡처하는 관찰 가능성에 있다. 개발자는 AI 모델의 도구 호출 여부와 단계별 소요 시간을 밀리초 단위로 확인하며, 모델이 특정 답변을 내놓기까지 참조한 근거를 실행 경로상에서 직접 추적한다. 이는 모델 추론, 외부 도구 실행, 메모리 검색 중 어느 단계에서 병목이 발생하는지 핀포인트(Pinpoint)하여 최적화할 수 있게 한다.

결론적으로 기성 솔루션인 Connect Health와 커스텀 서버리스 에이전트인 AgentCore 사이의 선택 기준은 연동 대상 시스템의 API 표준화 여부와 세션 상태 관리의 복잡도에 따라 결정해야 한다. 표준 API가 없는 레거시 벤더 시스템과의 연동이 필수적이거나, 모델의 결정 경로를 전수 조사해야 하는 의료 수준의 신뢰도가 필요한 경우 AgentCore와 같은 커스텀 프레임워크가 적합하다. Natera의 사례는 서버리스 구조를 통해 초기 도입 비용을 낮추면서도 운영 효율과 정밀함을 동시에 확보할 수 있음을 증명한다.