X

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비교

비교 항목 EAI ESB API Gateway
개념도
전송 방식 Adapter 기반 1:1, 허브 SOAP(XML/HTTP) REST(HTTP/JSON)
기술 요소 Adapter, EAI Platform, Message Queue SOAP, 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 게이트웨이 사용”
도리: