API Gateway
API Gateway


서비스 규모가 커질수록 모놀리틱 아키텍처에서 마이크로 서비스 아키텍처로 전환됩니다. 하지만 MSA 구조는 간단한 라우팅 로직을 변경하려면 전체 마이크로 서버를 다시 재배포 해야 한다는 문제와 클라이언트에서 모든 MSA url을 알고 각각을 언제 호출해야 하는지 알아야 하는 문제가 있습니다. 이러한 문제를 해결하기 위해 등장한 것이 API Gateway 입니다.

이전과 다르게 Client는 API Gateway 엔드 포인트로 알면 문제 없이 MSA의 API를 잘 사용할 수 있습니다. 그 이유는 API Gateway가 들어온 요청이 어떤 마이크로 서비스로 라우팅을 해주어야 하는지 판단하고 적절한 마이크로 서비스로 라우팅 하기 때문입니다.
라우팅 문제는 해결했지만 여전히 마이크로 서비스들은 동일한 로직을 중복되게 사용한다는 문제점이 존재합니다. 예를 들면, 인증과 속도 제한, 로깅과 관련된 로직입니다.

앞서 나온 문제점을 보완하기 위해 공유되는 미들웨어 로직을 API Gateway에서 통합하게 됩니다. 미들웨어로 사용될 수 있는 것은 TLS 종료, 토큰 확인, 악용자 차단, 매트릭 기록과 일반적인 응답 캐싱들이 있습니다. 이러한 구조로 인해 MicroService에서는 순수 비즈니스 로직을 제공하는 데만 집중할 수 있게 되었습니다.
API Gateway에서 발생하는 일

API Gateway는 요청 유효성 검사, 미들 웨어 실행, 서비스 라우팅, 응답을 변환하는 작업을 진행합니다.