본문으로 건너뛰기

GCE 상에서 운영되는 결제 플랫폼용 상주 에이전트 pcp-agent의 아키텍처·보안·계측

Merpay는 GCE의 Docker 컨테이너와 copy-on-write 세션, auth-proxy 기반 다층 방어로 결제 도메인용 자율 에이전트 pcp-agent를 운영하고 있다.

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

TL;DR

Merpay는 결제 운영의 반복 작업을 트리거 기반으로 자율 실행하는 상주형 에이전트 pcp-agent를 GCE의 Docker 컨테이너와 copy-on-write 세션으로 운영하며 Claude Code를 런타임으로 사용했다; remote-claude가 Slack과 스케줄러의 트리거를 받아 세션별 컨테이너를 띄우고 표준출력을 브리지하면서 동일 스레드 재사용으로 워밍업을 2~3초 수준으로 줄이고 콜드스타트는 약 30초로 관리한다. 에이전트는 도구 호출 전 PreToolUse 훅으로 위험을 차단하고 실행 후 PostToolUse 훅으로 DX 계측 이벤트를 전송하며, 네트워크 레이어의 auth-proxy가 iptables DNAT 수준에서 서비스별 인증 헤더를 주입하여 자격증명을 에이전트 코드에서 분리한다. 설계는 LLM의 비결정성을 인정하고 결정적 제어와 시크릿 분리를 외부화하는 데 중점을 두어 다층 방어(deny rules, 훅, 행동 규칙, auth-proxy, 컨테이너 격리)를 통해 권한 남용 위험을 낮추는 것을 목표로 한다.

섹션별 상세

결제 플랫폼 팀은 수십 개 마이크로서비스와 반복적인 운영 업무를 보유했고, 장애 조사나 알림 트리아지 같은 절차적 작업을 AI로 자율화하려는 목표를 세웠다. 따라서 팀 내에 상주하면서 트리거 기반으로 자율 실행하는 'Ambient Agent' 개념을 채택했고, 채팅 UI에 사람이 직접 요청을 보내는 방식은 의도적으로 배제했다. 이 배치는 사람이 매번 개입하지 않아도 정해진 워크플로가 자동으로 실행되도록 설계하여 운영 효율을 높이는 데 목적이 있다.
시스템 아키텍처는 Slack 멘션과 스케줄러가 트리거를 보내면 remote-claude 서버가 세션 단위로 Docker 컨테이너를 GCE에서 복제(copy-on-write)하여 Claude Code를 해당 컨테이너에서 실행하는 형태이다. remote-claude는 컨테이너를 기동하고 표준출력을 Slack으로 브리지하며 동일 스레드의 추가 요청은 실행 중인 프로세스를 재사용하여 워밍업 시간을 단축한다. 이 구성은 세션 격리와 재현성을 유지하면서도 트리거-응답 지연을 낮추는 효과를 노린 설계이다.
전체 아키텍처 다이어그램으로 Slack/스케줄러 → remote-claude → 세션별 Docker 컨테이너 흐름과 Post/Pre 훅, 외부 API 연동을 보여준다.
Diagram이 이미지는 시스템의 전반적 컴포넌트 연결과 데이터 흐름을 시각적으로 정리하여 아키텍처 문장만으로 파악하기 어려운 인터랙션을 보완한다. 트리거가 remote-claude를 통해 컨테이너를 기동하고 auth-proxy 및 DX 연동이 어디에 위치하는지를 명확히 표시하므로 본문에서 설명한 권한 주입과 격리 설계의 맥락을 확인할 수 있다.
세션 실행 흐름은 트리거 입력 → 컨테이너 기동(copy-on-write) → Claude Code의 도구 호출 순으로 진행되고, 각 도구 호출 전에는 PreToolUse 훅이 보안 검사를 수행하여 위험하면 중단하며 실행 후에는 PostToolUse 훅이 DX 측정 플랫폼으로 이용 이벤트를 전송한다. 동일 세션에 대한 콜은 워밍업 약 2~3초로 재사용 가능하고 콜드스타트는 약 30초이며, 유휴 약 30분 후 연결을 끊고 세션은 약 1주일 후 파기(session_ttl)된다. 이러한 세부 수치는 응답성·격리·자원 회수 트레이드오프를 조정하는 근거로 사용된다.
시퀀스 다이어그램으로 트리거부터 컨테이너 기동, 훅 실행, 재사용(워밍업)과 세션 종료까지의 시간적 흐름을 나타낸다.
Diagram이 이미지는 콜드스타트와 워밍업 재사용 경로, 훅의 위치(PreToolUse/PostToolUse)와 이벤트 전송 지점을 시간 순으로 보여주어 본문에 제시된 성능 수치와 세션 정책의 동작 원리를 직관적으로 확인하게 한다. 특히 동일 스레드 재사용과 유휴 종료 타이밍을 시퀀스로 표현해 지연·자원 관리 트레이드오프를 이해하기 쉽다.
근거
  • 워밍업은 약 2~3초이며 콜드스타트는 약 30초이다. 세션 흐름 설명 문단에서 워밍업·콜드스타트 수치가 언급된 부분
  • 세션은 유휴 약 30분 뒤 클라이언트를 끊고 약 1주일 후 파기(session_ttl)된다. 세션 수명과 회수 정책을 설명한 문단
보안 설계는 LLM의 비결정성을 전제로 하고 결정적 제어를 외부에 둠으로써 위험을 제한하는 방향을 취했다. 구체적으로 deny rules, PreToolUse 훅, 행동 규칙(behavioral rules), 네트워크 레벨의 auth-proxy, 컨테이너 격리의 다섯 층으로 방어선을 구성했고 auth-proxy는 iptables DNAT 수준에서 대상별로 적절한 인증 헤더를 주입하도록 구현되었다. 자격증명은 IaC로 관리되어 진짜 토큰은 프록시 쪽 환경변수로만 주입되며 에이전트 실행 환경에는 무효의 더미 값만 포함되어 토큰 노출 위험을 낮추는 구조이다.
auth-proxy가 에이전트 요청을 받아 외부 API로 인증 헤더를 주입하는 네트워크 레이어 구성을 도식화한 이미지이다.
Diagram이 이미지는 에이전트 컨테이너가 실제 토큰을 알지 못하는 상태에서 auth-proxy가 환경변수로 관리되는 시크릿을 주입해 외부 API와 통신하는 구조를 시각적으로 보여준다. 네트워크 레벨에서 DNAT 방식으로 인증을 삽입하는 설계 의도를 확인할 수 있어 시크릿 분리와 중앙관리의 보안적 이점을 설명하는 근거로 유용하다.

용어 해설

카피-온-라이트(Copy-on-Write)
컨테이너나 파일시스템에서 생성 시점에 원본을 그대로 두고 변경이 있을 때만 별도 복사본을 만드는 방식으로, 세션별로 독립된 워크스페이스를 빠르게 생성하면서 저장 용량과 초기화 비용을 줄이는 데 쓰인다.
인증 프록시(Auth Proxy)
에이전트가 외부 API에 접근할 때 실제 자격증명을 노출하지 않고 네트워크 레이어에서 요청을 가로채 필요한 인증 헤더를 주입하는 역활을 하는 구성요소로, 자격증명 분리와 중앙 집중적 관리에 기여한다.
세션 TTL(Session TTL)
에이전트 실행 환경(컨테이너 또는 프로세스)이 생성된 뒤 자동으로 폐기되기까지의 유효 기간을 의미하며, 워크스페이스 격리와 자원 회수를 보장하기 위해 설정된 시간 제약을 가리킨다.
Infrastructure as Code(IaC)
인프라 자원과 시크릿을 코드화된 선언형 구성으로 관리하는 방식으로, 실제 토큰과 자격증명은 코드(예: Terraform)로 관리하고 런타임에서는 프록시를 통해 주입함으로써 노출 위험을 줄인다.

기술

  • Claude Code
  • Docker
  • Google Compute Engine
  • auth-proxy
  • IaC (microservices-terraform)

활용 사례

  • 장애 조사 자동화
  • 알림 트리아지
  • 시스템 간 금액 검증
  • 고객 문의 1차 대응
AI 분석 전체 내용 보기

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

출처 · 인용 안내

원문 발행 2026. 06. 30.수집 2026. 06. 30.출처 타입 RSS

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