Learning
토픽 184 / 192·시스템 설계 및 아키텍처 패턴

Ambassador Pattern (앰배서더 패턴)

Ambassador Pattern (앰배서더 패턴)

애플리케이션 컨테이너를 대신하여 외부 서비스와의 통신을 처리하는 프록시 컨테이너를 배포하는 패턴으로, 재시도, 로깅, 모니터링, 인증 등 네트워크 통신 관련 횡단 관심사를 처리하고 레거시 애플리케이션의 기능 확장에 활용

목적: 외부 통신 추상화, 횡단 관심사 분리, 레거시 확장, 연결 관리

특징: 외부 서비스 프록시, 애플리케이션 대신 통신, 코드 수정 불필요, 레거시 친화

Ambassador 역할

  • 프록시: 애플리케이션→외부 서비스 요청 대리
  • 재시도/서킷 브레이커: 외부 호출 안정성 향상
  • 로깅/메트릭: 외부 통신 모니터링
  • 인증/암호화: TLS 종료, 토큰 관리
  • 프로토콜 변환: HTTP↔gRPC, 레거시 프로토콜

사용 사례

  • 레거시 애플리케이션에 모니터링 추가
  • 클라우드 서비스 연결 (인증·재시도)
  • 외부 API 호출 로깅·메트릭
  • 프로토콜 변환 (HTTP/1.1→HTTP/2)

Sidecar vs Ambassador

  • Sidecar: 범용, 내부/외부 모든 트래픽
  • Ambassador: 외부 서비스 통신 전용, 대사(외교관) 역할

구성: App Container → Ambassador Container → External Service

장점: 레거시 확장, 코드 수정 불필요, 재사용성, 관심사 분리

단점: 지연 추가, 리소스 오버헤드, 복잡한 디버깅

적용사례: 레거시 시스템 클라우드 연결, 외부 API 호출 관리, 프로토콜 변환

기술요소: Proxy, 외부 통신, 재시도, TLS, 프로토콜 변환

비교: Ambassador(외부 전용) vs Sidecar(범용) vs API Gateway(중앙 집중)

연관: Sidecar Pattern, 프록시, 레거시 전환, 외부 API, 컨테이너 패턴