API Gateway

2025. 1. 5. 15:36·개발

1. API Gateway란?

  • Netflinx Zuul / AWS API Gateway / Kong / Spring Cloud Gateway /... 여러 상품들이 존재
  • 클라이언트의 요청을 적절한 서비스로 전달
  • 인증, 보안, 모니터링 등 여러 서비스에서 공통적으로 처리되어야하는 문제를 한 곳에서 해결
  • 클라이언트와 API를 제공하는 서버 사이에서 클라이언트 요청을 적절한 서비스로 라우팅하고 인증 보안 모니터링, 탄력성과 같은 횡단 관심사를 중앙에서 일관되게 처리
  • 비즈니스와 무관하게 서버간의 횡단 관심사를 처리 (api gateway pattern과의 차이)

2. API Gateway가 왜 필요한가?

  • 모놀리틱 -> MSA로 전환하면서 클라이언트가 여러 시스템과 직접 상호 작용을하게됨
    • 클라이언트 의존성 증가로 인한 확장성이 저하됨
    • 불필요한 정보가 클라이언트에 노출이 될 수 있음(특정 비즈니스에 의존하는 api를 제공하지 않으려함)
    • 클라이언트에 비즈니스 정책이 노출 될 수 있음

2-1. API gateway pattern (!= API gateway) --> 프론트 서버

  • 도메인 시스템과 클라이언트 간 의존 제거가능
  • 필요한 정보만 전달가능
  • 비즈니스 정책이 반영된 결과만 전달
  • 클라이언트의 요구사항을 전담하는 서버 = 프론트 서버

3. 구조

  • Host 기반으로 라우팅 서비스 결정
  • Best matching pattern(어떤 필터를 적용할지 결정)

4. 기능

  • 인증 (단일 실패 지점) 해결
    • JWT의 도입 - 각 서비스에서도 인증에대한 키도 관리해야함. 키가 유출 및 변경 시, 타 서비스에도 영향
    • API Gateway에서 인증을 일차 처리하고 passport를 통해 백엔드 서비스에 전달
    • 인증 서비스에 문제가 있어도, 시그니쳐를 통해 최소한의 인증을 통해 해결할 수 있음
  • 라우팅
    • ip 대역을 활용하여 라우팅하여 Test 환경으로 연결가능
    • 운영 테스트, 타켓팅 등 다양하게 사용가능
  • 보안
  • 흐름제어(탄력성)
    • 장애 및 부하에서 서비스를 안정적으로 유지
    • 요청을 제한
    • circuit breaker 
    • retry , fallback, ...

 

저작자표시 비영리 동일조건 (새창열림)

'개발' 카테고리의 다른 글

Spring Fallback  (2) 2024.12.23
Spring Retry  (0) 2024.12.23
견고한 MSA  (2) 2024.12.23
MongoDB Bucket Pattern  (1) 2024.12.23
고민 4일차  (1) 2024.12.20
'개발' 카테고리의 다른 글
  • Spring Fallback
  • Spring Retry
  • 견고한 MSA
  • MongoDB Bucket Pattern
senyalog
senyalog
개발 블로그 https://github.com/iamyunjuda
  • senyalog
    Senya의 개발 블로그
    senyalog
  • 전체
    오늘
    어제
    • 분류 전체보기 (77)
      • 일상 (6)
      • 알고리즘 이론 (14)
        • 백준 (8)
      • 개발 (47)
        • Server (7)
        • 인턴 (11)
        • Javascript (0)
      • 경제 (4)
  • 블로그 메뉴

    • Github
    • 홈
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    대학생
    알고리즘공부
    GIT
    이마고웍스
    개발
    서버
    컴공
    C++
    카페
    공대생
    일상
    인턴
    nestjs
    백준문제
    코딩
    TypeScript
    백엔드
    코딩테스트
    경제
    인턴생활
    백준
    MSA
    깃
    생각
    개발공부
    알고리즘
    개발자
    공부
    백준풀이
    대학생인턴
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
senyalog
API Gateway
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.