토픽 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, 컨테이너 패턴