SpringCloudGateway는 스프링으로 만들어진 API-Gateway이다.
그럼 API-Gateway가 무엇인지 먼저 알아보자.
API-Gateway 란
마이크로 서비스 아키텍처 형태로 구축되면서 다양한 서비스들의 엔드포인트를 관리하는 데 있어 어려움이 생기고,
또한 각 서비스마다 공통적으로 들어가는 기능(인증/인가, 로깅, 모니터링 등)들을 중복으로 개발해야 한다는 문제점이 발생한다.
이러한 문제점을 해결하기 위해 API-Gateway를 도입할 수 있다.
즉, 모든 서비스로의 요청을 처리하는 단일 진입점이라고 할 수 있다.
출처: https://wildeveloperetrain.tistory.com/205
Gateway 패턴
Gateway는 서버들에서 필요한 공통 로직을 통합하여 처리
모든 서비스에서 필요한 유저 정보, 보안 정책 등을 Gateway에서 처리하고 이를 업스트림 서버로 넘겨준다.
주요 기능
- API 라우팅
- API 요청을 식별하여 적합한 upstream으로 호출 내역을 전달
- 인증 / 인가
- API 호출한 유저 정보를 조회 / 검증하는 작업 수행
- 로깅
- 서비스의 단일 진입점으로 요청 사항에 대한 모든 내역을 기록할 수 있다
- 암호화
- client로부터 받은 암호화 데이터를 복호화하여 upstream으로 전달 가능
- 모니터링
- 서비스의 단일 진입점으로 호출 내역에 대한 지표 생성이 가능
- circuit breaker 등을 도입하여 상태 체크 가능