728x90
API 게이트웨이 패턴은 마이크로서비스 아키텍처(MSA)에서 클라이언트와 백엔드 서비스 간의 단일 진입점(Single Entry Point) 역할을 수행하는 중요한 구성 요소이다. 클라이언트는 각각의 마이크로서비스와 직접 통신하지 않고 API 게이트웨이를 통해 모든 요청을 주고 받는다.
주요 역할 및 기능
- 클라이언트와 서비스 간의 추상화
- 클라이언트는 API 게이트웨이를 통해서만 마이크로서비스에 접근하므로, 개별 서비스의 구현 세부 사항이 숨겨진다.
- 서비스 URL 구조 변경이나 내부 로직 변경이 클라이언트에 직접적으로 영향을 미치지 않는다.
- 요청 라우팅
- API 게이트웨이는 요청을 적절한 마이크로서비스로 라우팅한다.
- 예를 들어, /user 요청은 사용자 서비스로 /order 요청은 주문 서비스로 전달된다.
- 인증 및 인가
- 클라이언트 요청에 대해 인증(Authentication) 및 인가(Authorization)를 수행하여 보안을 강화한다.
- OAuth, JWT 등을 활용해 보안 계층을 제공한다.
- 로드 밸런싱
- 여러 인스턴스에 걸쳐 트래픽을 분산 처리하여 높은 가용성과 성능을 보장한다.
- 요청 집계(Aggregation)
- 클라이언트가 여러 마이크로서비스에서 데이터를 받아야 할 때 API 게이트웨이가 이를 대신 호출하고 응답을 합쳐서 클라이언트에 반환한다.
- 예를 들어, 하나의 화면에서 사용자 정보와 주문 내역이 동시에 필요하다면 게이트웨이가 이를 처리한다.
- 모니터링 및 로깅
- API 요청 및 응답에 대한 로깅과 모니터링을 통해 애플리케이션 성능을 분석하고 장애를 탐지할 수 있다.
- 정책 관리 및 트래픽 제어
- 요청 속도 제한(Throttle), 캐싱(Cache), 요청/응답 변환 등을 통해 효율적인 트래픽 관리가 가능한다.
728x90
장점
- 간소화된 클라이언트 코드
- 클라이언트는 여러 마이크로서비스의 엔드포인트를 알 필요 없이 API 게이트웨이만 사용하면 된다.
- 보안 강화
- 보안 로직을 게이트웨이에서 중앙화하여 관리한다.
- 유연성
- 클라이언트별 맞춤 API를 제공할 수 있어 모바일, 웹 등 다양한 클라이언트 요구를 충족시킨다.
단점
- 단일 장애 지점(Single Point of Failure)
- API 게이트웨이가 다운되면 모든 서비스에 대한 접근이 중단된다. 이를 방지하려면 고가용성 아키텍처 설계가 필요하다.
- 추가적인 레이턴시(Latency)
- 요청이 게이트웨이를 거쳐야 하므로 약간의 지연이 발생할 수 있다.
- 복잡성 증가
- API 게이트웨이 자체의 관리와 운영이 추가적인 부담이 될 수 있다.
예시 도구
- Nginx, Kong : 고성능 API 관리 도구
- Spring Cloud Gateway : 자바 기반 게이트웨이 솔루션
- AWS API Gateway : 클라우드 네이티브 API 게이트웨이
- Istio, Envoy : 서비스 메시와 함께 사용 가능한 고급 트래픽 관리 도구
활용 예시
1. 전자상거래 애플리케이션
- 클라이언트가 상품 정보, 사용자 프로필, 장바구니 상태를 동시에 요청한다.
- API 게이트웨이는 이를 각각의 마이크로서비스로 라우팅하고 데이터를 통합해 반환한다.
2. 모바일 및 웹 클라이언트 분리
- 모바일 클라이언트에는 경량화된 API를 웹 클라이언트에는 상세 데이터를 제공하도록 API 게이트웨이를 통해 커스터마이징된 응답을 제공한다.
결론적으로 API 게이트웨이 패턴은 MSA환경에서 효율성과 확장성을 높이는 핵심 요소로 클라이언트와 서비스 간의 연결을 단순화한다.
반응형
'Architecture' 카테고리의 다른 글
MSA에서 인증/인가 패턴 (0) | 2024.12.21 |
---|---|
BFF 패턴의 개념 (1) | 2024.12.20 |
Service Discovery (1) | 2024.12.06 |
캐시 스탬피드(Cache Stampede) 개념과 해결 방법 (1) | 2024.11.28 |
트랜잭셔널 메시징 (0) | 2024.11.26 |