External Gateway
- 권한 정책 관리(Policy Management)
- 사용자 인증(Consumer Identity Provider)
- API Gateway
(1) 전체 서비스 외부로부터 들어오는 접근을 내부 구조를 드러내지 않고 처리하기 위한 요소
(2) 사용자 인증과 권한 정책관리를 수행하며 API Gateway가 여기서 가장 핵심적인 역할을 담당
(3) API Gateway는 서버 가장 앞단에 위치하여 모든 API 호출을 받고 받은 API 호출을 인증한 후, 적절한 서비스들에 메시지를 전달될 수 있도록 함(Routing)
- MSA는 큰 서비스를 잘게 나누어 개발/운영하는 아키텍처
- 하나의 큰 서비스는 수십~ 수백 개의 작은 서비스로 나누어지며 이를 클라이언트에서 서비스를 직접 호출하는 형태면 문제가 발생
-> 각각의 서비스마다 인증/인가 등 공통된 로직을 구현해야하는 번거로움
-> 수많은 API 호출을 기록하고 관리하기 어려움
-> 클라이언트에서 여러 마이크로 서비스에 대한 번거로운 호출을 해야함
-> 내부의 비지니스 로직이 드러나게 되어 보안에 취약해짐
(1) 인증 및 인가(Authentication and Authorization)
(2) 요청 절차의 단순화
(3) 라우팅 및 로드 밸런싱
(4) 서비스 오케스트레이션
(5) 서비스 디스커버리
(1) Scale out 적용이 유연하지 않으면 API Gateway에 병목현상이 발생해 애플리케이션의 성능저하가 발생할 수 있음
(2) API Gateway라는 추가적인 Layer가 만들어지는 것이기 때문에 네트워크 지연시간 증가