API Gateway란?
클라이언트와 백엔드 애플리케이션 또는 마이크로서비스 사이의 중개자 역할을 하는 서비스입니다. 클라이언트의 요청을 받아 적절한 백엔드 서비스로 라우팅하고, 인증, 권한 부여, 속도 제한 등의 기능을 수행합니다. 이를 통해 API 트래픽을 관리하고 보안을 강화할 수 있습니다. API Gateway는 API Management와는 다르게 API 배포와 운영에 초점을 맞추고 있습니다.
클라이언트에서 호출하는 서버로의 모든 서비스는 단일지점을 거쳐서 처리하도록 한다.
Gateway의 기능
- 인증 및 권한 부여
- API Gateway는 OAuth, SAML 등의 보유자 토큰 인증 전략을 사용하거나 사용자 지정 인증 체계를 통해 호출자의 자격 증명을 확인할 수 있습니다.
- 리소스 정책, IAM 정책, Lambda 권한 부여자 등을 통해 API 리소스에 대한 액세스 제어를 설정할 수 있습니다.
- 서비스 검색 통합
- API Gateway는 마이크로서비스 아키텍처에서 서비스 검색 기능을 제공합니다.
- 서비스 간 인증, 권한 부여 등의 기능을 통해 마이크로서비스 간 통신을 관리할 수 있습니다.
- 응답 캐싱
- API Gateway는 응답 캐싱 기능을 제공하여 API 성능을 향상시킬 수 있습니다.
- 캐시 용량, 캐시 TTL 등의 설정을 통해 캐싱 동작을 제어할 수 있습니다.
- 정책, 회로 차단기 및 Qos 다시 시도
- API Gateway는 정책 기능을 통해 API 호출에 대한 제한 사항을 설정할 수 있습니다.
- 회로 차단기 패턴을 적용하여 API 장애를 방지할 수 있습니다.
- QoS(Quality of Service) 설정을 통해 API 호출 실패 시 재시도 동작을 제어할 수 있습니다.
- 속도 제한
- API Gateway는 API 호출 속도를 제한하여 과부하를 방지할 수 있습니다.
- 속도 제한 정책을 통해 API 호출 빈도, 동시 호출 수 등을 제한할 수 있습니다.
- 부하 분산
- API Gateway는 여러 백엔드 서비스 간 부하를 분산할 수 있습니다.
- 라운드 로빈, 가중치 기반 등의 부하 분산 전략을 사용할 수 있습니다.
- 로깅, 추적, 상관관계
- API Gateway는 API 호출에 대한 로깅, 추적, 상관관계 기능을 제공합니다.
- CloudWatch, X-Ray 등의 AWS 서비스와 통합하여 API 모니터링 및 분석을 수행할 수 있습니다.
- 헤더, 쿼리 문자열 및 청구 변환
- API Gateway는 클라이언트 요청을 백엔드 서비스에 맞게 변환할 수 있습니다.
- 헤더, 쿼리 문자열, 청구 정보 등을 변환하여 전달할 수 있습니다.
- IP 허용 목록에 추가
- API Gateway는 API 호출 IP 주소를 제한하여 보안을 강화할 수 있습니다.
- IP 허용 목록을 통해 특정 IP 주소에서의 API 호출만 허용할 수 있습니다.
Reference
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)