ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • API Gateway
    카테고리 없음 2022. 4. 16. 01:09
    반응형

    📌API Gateway란?

    MSA에서 API Gateway는 서버 최앞단에 위치하여 모든 API의 호출을 받는다. 받은 API 호출을 인증한 후에, 적절한 서비스들에 메시지가 전달될 수 있도록 한다.

    마치 프록시 서버(Proxy Server)처럼 동작하며 인증, 권한, 모니터링, 로깅 등의 추가적인 기능을 한다.

    Monolithic Archituecture과 다르게 MSA는 한 서비스에 한 개 이상의 서버가 존재하기 때문에 client 입장에서 다수의 엔드포인트가 생기게 되며 엔드 포인트 변경이 일어났을 때 관리가 힘들다. 따라서 MSA 환경에서는 서비스를 하나로 통합할 수 있는 API Gateway가 필요하다.

    📌API Gateway의 주요 기능

    1. 인증 및 인가 (Authentication and Authorization)
    • MSA 구조에서 각 서비스마다 API 호출에 대한 인증 및 인가를 하는 경우 같은 소스코드를 서비스 인스턴스들마다 심어주어야 한다는 것을 의미한다. 이렇게 되면 소스코드의 중복도 심하고 로깅 및 모니터링도 어려워진다.
    • 이런 이유로 인증서 관리, 인증 , SSL, 프로토콜 변환과 같은 기능들은 API Gateway에서 오프로드 함으로서 각각의 서비스의 부담을 줄이고, 서비스의 관리 및 업그레이드를 보다 쉽게 할 수 있도록 한다.
    1. 요청 절차의 단순화
    • API Gateway를 통해 여러 클라이언트의 요청을 단일 클라이언트의 요청으로 대체 가능하게 함으로서 클라이언트와 백엔드 간의 API 통신량을 줄여주어 대기 시간을 줄이고 효율성을 높여줄 수 있다.
    1. 라우팅 및 로드밸런싱
    • API Gateway는 클라이언트로 부터 접수된 메시지에 따라 API 호출을 적절한 서비스에 라우팅 할 수 있는 기능이 있다. 또한, 서비스 인스턴스들에 대한 부하 분산을 할 수 있다.
    1. 서비스 오케스트레이션
    • 오케스트레이션 : 여러 MSA 서비스를 묶어서 하나의 새로운 서비스로 만드는 개념
    • 오케스트레이션 로직을 과하게 넣으면 API Gateway의 부담을 늘릴 수 있어 성능 저하를 일으킬 수 있다.
    1. 서비스 디스커버리
    • API Gateway는 각 서비스 호출을 위해 서비스마다 IP주소와 포트 번호를 알고 있어야 한다. 클라우드 환경에서는 동적인 환경에서 배포되기 때문에 서비스의 위치를 찾는 것이 어렵다. 이런 서비스의 위치(IP 주소, 포트 번호)를 찾는 것을 Service Discovery라고 하며 API Gateway에서는 서버 사이드, 클라이언트 사이드를 기준으로 서비스 디스커버리를 구현할 수 있다.

    📌API Gateway 단점

    1. API Gateway를 내부 MSA와 결합한다. → 라우팅 과정에서 오버헤드가 발생할 수 있고, 오케스트레이션 로직에서 성능이 저하될 수 있다.
    1. API Gateway의 Scale-out이 유연하게 일어나지 않으면 , API Gateway가 병목 지점이 되어 어플리케이션의 성능 저하가 일어날 수 있다.
    1. API Gateway라는 추가적인 계층이 만들어지는 것이기 때문에 네트워크 latency가 증가하게 된다.

    📌 References

    https://velog.io/@tedigom/MSA-제대로-이해하기-2-MSA-Outer-Architecure

    https://m.blog.naver.com/dktmrorl/222129517689

     

    반응형

    댓글

Designed by Tistory.