현수의 제 2의 뇌
article thumbnail
반응형

API Gateway

최근 많은 기업들이 독립적인 기능을 수행하는 Mircro Service가 여러개로 구성된 MSA가 많이 사용되고 있습니다.

하지만 여기서 MIcro Service가 50, 100 그 이상이 된다면 어떨것 같나요?

이 많은 서비스의 엔드포인트를 관리하기 힘들것이고 서비스마다 인증과 인가 과정이 있다면, 이것또한 중복이 된다는 문제점이 있습니다.

 

이러한 문제점을 해결하기 위해 API Gateway가 등장하게 되었습니다.

API Gateway 는 클라이언트와 서비스 사이에서 클라이언트의 요청을 받고 설정에 따라 각 엔드포인트로 대신 요청을 보냅니다. 응답을 받으면 다시 클라이언트에게 응답을 보내는 프록시 역할을 합니다. 

 

API Gateway 는 클라이언트의 요청을 라우팅해주는것 뿐만 아니라 유용한 기능들이 몇가지 더 있습니다.

 

API Gateway의 주요 기능

인증/인가 & 토큰 발급

인증과 인가에 경우에는 각 서비스마다 공통적으로 필요한 중요한 기능입니다.

하지만 이것을 각각의 서비스마다 구현한다는 것은 매우 비효율적인 일입니다.

API Gateway에서 이 처리를 하게 되는것 입니다.

 

토큰 또한 인증 서버를 두어 인증 서버를 거치며 토큰을 발급하게 됩니다.

 

로드 밸런싱

대용량 트래픽을 처리하기 위해서는 로드 밸런싱이 필수라고 할 수 있습니다.

기본적으로 API 여러개로 부하를 분산시키는 방법이 주 기능이 되겠지만, 만약 API 서버가 장애가 발생했을 때 이를 감지하여 로드밸런싱 리스트에서 제외하고 복구되었을때 다시 로드밸런싱 리스트에 넣는 기능이 있습니다. [ health check ]

 

메디에이션 기능 ( Mediation )

메디에이션 기능은 메시지 호출 변화가 있습니다.

메시지 호출 패턴은 동기, 비동기와 같은 API를 호출하는데 메시지 패턴을 정의하는 것인데, API Gateway를 사용하면 동기 호출을 비동기 호출로 바꿀 수 있습니다. 

상용화된 API Gateway들..

API Gateway를 구현하여 사용할 수도 있지만, MSA가 상용화되어 잘 구현된 서비스들이 많아졌습니다!

Amazon API Gateway, Kong Gateway, Tyk, KrakenD, Spring Cloud Gateway 등이 상용 서비스로 개발되어 사용되고 있습니다.

 

profile

현수의 제 2의 뇌

@부현수

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!