MSA 정리 - (4) External Gateway

alexhwang_·2022년 1월 26일
0

MSA 정리

목록 보기
4/9
post-custom-banner

External Gateway

1. External Gateway의 역할

External Gateway

  • 권한 정책 관리(Policy Management)
  • 사용자 인증(Consumer Identity Provider)
  • API Gateway

(1) 전체 서비스 외부로부터 들어오는 접근을 내부 구조를 드러내지 않고 처리하기 위한 요소

(2) 사용자 인증과 권한 정책관리를 수행하며 API Gateway가 여기서 가장 핵심적인 역할을 담당

(3) API Gateway는 서버 가장 앞단에 위치하여 모든 API 호출을 받고 받은 API 호출을 인증한 후, 적절한 서비스들에 메시지를 전달될 수 있도록 함(Routing)

2. API Gateway의 필요성

  • MSA는 큰 서비스를 잘게 나누어 개발/운영하는 아키텍처
  • 하나의 큰 서비스는 수십~ 수백 개의 작은 서비스로 나누어지며 이를 클라이언트에서 서비스를 직접 호출하는 형태면 문제가 발생
    -> 각각의 서비스마다 인증/인가 등 공통된 로직을 구현해야하는 번거로움
    -> 수많은 API 호출을 기록하고 관리하기 어려움
    -> 클라이언트에서 여러 마이크로 서비스에 대한 번거로운 호출을 해야함
    -> 내부의 비지니스 로직이 드러나게 되어 보안에 취약해짐

3. API Gateway의 주요 기능

(1) 인증 및 인가(Authentication and Authorization)

  • MSA의 각각의 서비스의 API 호출에 대한 인증 및 인가를 하려면 같은 코드를 서비스 인스턴스마다 심어야함
  • 이러한 이유로 인증서 관리,SSL,프로토콜 변환과 같은 기능들은 API Gateway에서 오프로드하여 서비스의 부담을 줄이고 서비스의 관리 및 업그레이드를 보다 쉽게 할 수 있음

(2) 요청 절차의 단순화

  • API Gateway가 없다면 클라이언트에서 여러 서비스들에 대한 요청을 해야함
  • API Gateway는 여러 클라이언트의 요청을 단일 클라이언트의 요청으로 대체 가능하도록 해줌

(3) 라우팅 및 로드 밸런싱

  • API Gateway는 클라이언트로부터 접수된 메시지에 따라 API 호출을 적절한 서비스에 라우팅할 수 있음
  • 서비스 인스턴스들에 대한 로드밸런싱 가능

(4) 서비스 오케스트레이션

  • 여러 마이크로 서비스들을 묶어 새로운 서비스를 만드는 개념
  • 오케스트레이션 로직을 과도하게 넣는 것은 API Gateway의 부담이 늘어나 성능 저하가 발생할 수 있으므로 적절히 해야함

(5) 서비스 디스커버리

  • API Gateway는 각 서비스를 호출하기 위해 서비스마다 IP주소와 포트번호를 알고 있어야함
  • 서비스의 위치(IP주소와 포트번호)를 찾는 역할을 담당

4. API Gateway 적용시 고려할 사항

(1) Scale out 적용이 유연하지 않으면 API Gateway에 병목현상이 발생해 애플리케이션의 성능저하가 발생할 수 있음

(2) API Gateway라는 추가적인 Layer가 만들어지는 것이기 때문에 네트워크 지연시간 증가

post-custom-banner

0개의 댓글