2022년 8월 28일
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 게이트웨이 사용”