API Gateway (Spring Cloud Gateway) 알아보기

KUKJIN LEE's profile picture

KUKJIN LEE4일 전 작성

API Gateway란?

마이크로서비스 아키텍처에서 API 게이트웨이는 클라이언트 요청을 각 마이크로서비스로 라우팅하고, 인증/인가, 로드 밸런싱, 요청 변환, 로깅 등의 공통 기능을 중앙 집중적으로 처리하는 중요한 역할을 맡습니다. Spring Boot 기반 마이크로서비스 환경에서는 Spring Cloud Gateway를 주로 활용하며, 이는 비동기 논리에 특화되어 있어 대규모 트래픽 처리에 유리합니다.

 

API Gateway의 필요성

  • 단일 진입점 제공: 여러 마이크로서비스에 직접 요청을 보내는 대신 Gateway를 통해 통합된 엔드포인트로 접근합니다.

  • 보안 및 인증/인가: Gateway 레벨에서 JWT나 OAuth2.0, SSO 등의 인증/인가 로직을 처리할 수 있어 보안 모델을 단순화합니다.

  • 로드 밸런싱 및 라우팅: 동적으로 백엔드 서비스로 트래픽을 라우팅하고 로드 밸런싱을 수행하여 시스템 안정성을 향상시킵니다.

  • 모니터링 및 로깅: 요청 단위로 로깅, 트레이싱, 모니터링을 수행하여 장애 대응과 성능 분석을 용이하게 합니다.

  • 요청/응답 변화: 요청 헤더, 바디 변환, 응답 캐싱 등 공통적인 API 처리 로직을 집중화함으로써 서비스 단의 중복 코드를 최소화한다.

 

Spring Cloud Gateway 특징 및 아키텍처

  • 비동기 논리를 지원하고, 대규모 트래픽 환경에 유연하게 대응한다.

  • 특정 경로 기반, 호스트 기반, 헤더 기반 등 다양한 조건으로 라우트 매핑 가능

  • Filter 체인: 요청/응답 처리 과정에서 인증, 로깅, 변환 등의 정책 적용

 

Gateway 보안 및 인증/인가 활동

  • JWT 토큰 검증: Gateway Filter에서 JWT 토큰 검증을 수행해 유효하지 않은 요청을 서비스로 전달하기 전 차단.

  • OAuth2 연계: OAuth2 인증 서버와 연계해 Access Token 검증, Refresh 토큰 발급 등을 Gateway 레벨에서 처리 가능

 

로깅, 모니터링 및 트레이싱

  • Gateway 비롯해 모든 마이크로서비스 트랜잭션 트레이싱 가능

  • 클라이언트 요청부터 응답까지 Gateway단에서 로깅을 수행하면 문제 발생 시 원인 파악이 용이

New Tech Posts