API Gateway란?
클라이언트와 백엔드 API 사이에서 요청 관리, 라우팅 등의 특정 기능을 수행하는 서비스
즉 API 서버는 실제 비즈니스 로직을 수행하는 서버이고, API Gateway는 클라이언트와 API 서버 사이에서 트래픽을 관리하는 서버라고 생각하면 됨
주요 기능
- 요청 라우팅 (Routing & Load Balancing)
- 클라이언트 요청을 적절한 백엔드 서비스로 라우팅
- 로드밸런싱 기능을 제공하여 여러 서버에 요청을 분산
- 인증 및 권한 관리 (Authentication & Authorization)
- OAuth, JWT 등의 인증 방식을 사용하여 API 접근 제어
- 특정 사용자 또는 애플리케이션이 접근할 수 있도록 권한 설정
- 보안 강화 (Security)
- DDos 공격 방지, 요청 속도 제한, IP 필터링 등의 기능 제공
- 데이터 변환 및 요청/응답 처리
- API 요청과 응답을 변환하여 클라이언트와 백엔드 간 형식을 맞출 수 있음
- Ex) XML 요청을 JSON으로 변환하거나 여러 API 응답을 하나로 합칠 수 있음
- 로깅 및 모니터링
- API 요청 및 응답을 로깅하여 분석
- 성능 모니터링 기능 제공
- 캐싱 (Caching)
- 자주 사용되는 응답을 캐싱하여 API의 응답 속도를 높이고 백엔드 서버의 부하를 줄임
사용 목적
- MSA 서비스를 효과적으로 운영
- 보안과 인증 강화
- 백엔드 서버의 부담을 줄이고 성능을 최적화
- API 사용량을 모니터링하고 트래픽을 효율적으로 관리
구성 방식
- 단일 서버로 구성
- 작은 규모의 서비스에서 가능
- 이 경우 API 요청이 한 곳으로 집중되므로 트래픽이 많아지면 성능이 저하될 수 있음
- 수평확장 (Scaling) 구조
- 대규모 서비스에서는 API Gateway를 여러 대의 서버로 분산하여 운영
- 로드 밸런서를 활용하여 여러 API Gateway 인스턴스로 요청을 분산하면 성능을 높일 수 있음
- 클라우드 기반 API Gateway
- 클라우드 기반 서비스는 서버리스 형태로 동작할 수 있음
- 물리적인 서버를 직접 운영하지 않고도 자동 확장(Scaling) 가능