API Gateway

Minsu Kang·2021년 10월 11일
0

Gateway 라는 말을 종종 들어본 적이 있을 것이다. Gateway란 관문, 출입구를 뜻하는 단어로 네트워크에서는 패킷이 특정 네트워크로 들어올 때 가장 먼저 통과하는 포인트를 말한다.

그렇다면 API Gateway 란 무엇일까?
API Gateway 는 여러 API 서버의 앞단에 위치하는 서버이다.
클라이언트는 API 서버를 직접 호출하지 않고 API Gateway 를 통하여 호출하고 사용한다.

그러면 왜 API Gateway를 사용하는 것일까?

최근 대부분의 서비스들이 모놀리틱 서비스가 아니라, MSA 구조로 서비스를 개편하고 있다.
그 이유는 자세하게 다루진 않겠지만 간단하게 생각해서 우리가 프로젝트를 여러 모듈로 나누는 원리와 비슷하다.

아무튼, 이렇게 하나의 큰 서비스가 여러개의 작은 서비스로 나누어져 있는 구조에서 필연적으로 발생하는 니즈가 있다. 바로 각 서비스에서 공통으로 처리해야 할 로직에 대한 고민이다.

예를들어, 각각의 작은 서비스들이 공통적으로 인증, 로깅 로직을 사용한다면 이들을 한번에 처리해 줄 수 있는 앞단에 위치할 서비스가 필요하다. 이것이 바로 API Gateway 이다.

API Gateway 가 사용될 수 있는 용도는 무수히 많겠지만 그 중에서도 많이 사용되는 용도들을 정리해 보았다.

인증, 인가

  • 사용자 인증이 필요하다면 포워딩 시에 사용자 정보를 추출하여 전달한다.
  • IP 블랙리스트 또는 화이트리스트로 관리한다.

CORS

  • 클라이언트가 API Gateway 를 통하기 때문에 CORS 설정을 API Gateway 에서만 해주면 된다.

로깅

  • 어떤 사용자가 어떤 API를 호출했는지 등에 대한 정보들을 로그로 남길 수 있다.
  • 그 외 다양한 로그 정보를 한 곳에서 관리할 수 있다.

엔드포인트 관리

  • API 호출 엔드포인트가 하나로 통일되기 때문에 클라이언트 입장에서는 여러개의 엔드포인트들을 관리하지 않아도 도된다.

트래픽 관리

  • 서비스 전체에 대한 트래픽을 관리할 수 있다.
profile
백엔드 개발자

0개의 댓글