API Gateway

1. API Gateway의 개요

(1) API Gateway의 개념

개념도
개념MSA 구현 및 API 서버의 엔드포인트 단일화 위해 서비스 라우팅, 인증, SSL Offloading 기반 백엔드 시스템 및 서비스 액세스 제어 아키텍처
  • 클라이언트 요청에 대해 엔드포인트를 통합하고 프록시 서버와 같이 동작하며, 인증 및 권한 관리, 모니터링, 로깅 등 수행

(2) API Gateway의 필요성

구분필요성세부 설명
효율성 향상 측면개발 효율성– 다양한 고객 대상 공통 모듈, 경량화
관리 효율성– API 제공 기반 접점 일원화
확장 효율성– 클라우드 서비스 기반 Scale-out 
보안성 강화 측면인증 및 인가– 신분 확인 및 API 호출 권한 확인
모니터링 강화– 관리 대상에 대한 모니터링 및 로깅
암호화 적용– 엔드포인트 구간에 TLS 암호화 적용
  • 모놀리식 아키텍처와 달리 MSA는 도메인 별 데이터 저장 및 서비스를 수행하므로 클라이언트 입장에서는 다수의 엔드포인트가 생기게되므로 MSA 환경에서는 서비스를 통합할 수 있는 API Gateway가 필요

 

2. API Gateway의 역할 및 주요 기능

(1) API Gateway의 역할

구분역할동작 형태
서비스 연결 측면클라이언트 요청 변환– 모바일, 웹브라우저 등의 요청에 대해 내부 마이크로서비스 처리 가능하도록 서비스 변환
백엔드 처리결과 반환– 마이크로서비스 처리 결과를 클라이언트에 적합한 형태로 변환하여 전달
데이터 처리 측면내부 데이터 보호– 내부 인프라 및 통신 데이터 암호화 처리를 통해 내부 데이터 보호
접근 통제– 비인가자 접근 차단을 위한 계정 증명 및 보안 정책 기반 권한 확인

(2) API Gateway의 주요 기능

#주요 기능동작 형태 또는 효과
라우팅– 로드밸런싱, 엔드포인트 및 메시지/헤더 기반 라우팅
인증 및 인가– API Token 생성 및 발급하여 인증 및 권한 검증
SSL 오프로딩– 프록시 기반 서버 앞단에서 SSL Handshaking 대신 처리
응답 캐싱– API 호출 대기 시간 및 API 공급자 백엔드 부하 감소
로깅– 경로별 호출 로그 기록/관리, 로그 패턴 분석 장애 관리

 

3. API Gateway 적용 시 고려사항

구분고려사항세부 내용
시스템 운영 측면병목현상 발생 여부– 로드밸런싱 및 Scale-out 체계 적용 고려
지연 발생 여부– 추가 계층 생성으로 인한 네트워크 지연 발생 고려
서비스 개발 측면유경험자 참여– API Gateway 구현 경험 부족에 따른 문제 해소
적정 성능/용량 설계– 대용량 데이터 수용 가능한 시스템 성능/용량 설계

 

4. API Gateway와 EAI, ESB비교

비교 항목EAIESBAPI Gateway
개념도
전송 방식Adapter 기반 1:1, 허브SOAP(XML/HTTP)REST(HTTP/JSON)
기술 요소Adapter, EAI Platform, Message QueueSOAP, Interaction Link, ESB 패턴API Token/Routing, Mediation
장점이기종 연동, 유지관리 효율성통신 표준화, 분산구조, 재사용성메시지 경량화, 서비스 단순화, 관리 효율성
단점비표준화, APP 통합에 한계복잡한 스펙, XML 적용 한계API G/W 부하, SPoF 리스크
  • MSA(Micro Service Architecture) 등의 API Gateway의 SPoF 단점을 보완하기 위해 외부와 연동 시 API Gateway를 적용하고 내부 연동에는 Service Mesh 방식의 아키텍처를 사용하는 Service Mesh 아키텍처 고려

 
[참고]

  • 아마존웹서비스(AWS), “Amazon API Gateway 개발자 안내서”
  • Microsoft, “마이크로 서비스에서 API 게이트웨이 사용”

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^