2023년 2월 20일
출처:
https://themapisto.tistory.com/180
https://blog.naver.com/advanc2d/222647453029
MSA 아키텍처에서 API Gateway를 사용하는 이유가 무엇일까?
간단하게 정의하자면, API GATEWAY는 클라이언트와 백엔드 서비스 사이에 위치하는 리버스 프록시 역할을 하는 서비스 입니다. 더불어 인증, 속도제어, 서킷브레이커, 모니터링등 여러 공동 모듈 및 관리포인트들을 추가하여 모든 API들의 관문(GATEWAY)의 역할을 하는 서비스 입니다.
관문 역할 뿐만 아니라, 관심사의 분리를 위해서도 API Gateway는 필요합니다. 비즈니스 로직과 분리하기 위하여 AOP라는 개념을 떠올리면 이해를 도울수 있을것 같다. 왜냐하면 AOP와 마찬가지로 API Gateway 역시 비즈니스 로직과 분리 하여 기타 관심사들을 API Gateway를 통해 처리하겠다는 의미로 나는 이해한다.
API Gateway에는 대표적으로 다음과 같은 역할이 존재한다.
위의 동작 과정에서 모든 데이터가 하나의 서버로 전송되므로 해당 서버에서는 인증을 수행하기도 하고 로깅을 수행하기도 한다. 또한 해당 구조는 리버스 프록시와 매우 닮아있으며 실제로도 그 역할을 수행한다. 그래서 로드밸런싱과 라우팅을 가능하게 한다.