
1. 클라우드 기반 (Cloud API Gateway)
- 정의: AWS, Azure, Google Cloud 같은 클라우드 플랫폼에서 제공하는 완전관리형 API Gateway 서비스.
- 대표 예: Amazon API Gateway, Google의 Apigee, Azure API Management 등
- 특징:
- 인프라 운영이 필요 없음 (관리형 서비스)
- IAM, Lambda, Cognito, WAF, CloudWatch 등 클라우드 서비스와 통합됨
- Vendor lock‑in 가능성 존재
- 확장성과 보안성은 뛰어나지만, 커스터마이즈 제한적
2. 오픈소스 기반 API Gateway
- 정의: 누구나 소스코드를 수정하거나 확장할 수 있는 형태의 API Gateway 솔루션.
- 대표 예: Kong Gateway, Apache APISIX, Tyk, KrakenD, Envoy, Gravitee.io 등
- 특징:
- 플러그인 구조로 높은 유연성과 확장성
- 온프레미스, 멀티클라우드, 하이브리드 환경에 유연하게 배치 가능
- 라이선스 비용 없음(OSS), 운영 비용과 유지보수 책임은 사용자에게 있음
🌐 NGINX 기반 API Gateway
개요
NGINX는 2004년에 출시된 이후 전 세계 웹 트래픽의 절반 이상을 처리하고 있는 고성능 리버스 프록시로, 안정성과 성능으로 유명하다. Apache APISIX, Kong 등의 게이트웨이는 NGINX 위에서 동작하며, 그 기반을 확장하고 있다.
장점
- ✅ 검증된 안정성: 수십 년 간 프로덕션 환경에서 검증됨.
- ✅ 고성능 이벤트 루프 구조: 비동기, 논블로킹 방식으로 동시 연결 처리에 최적화.
- ✅ 기존 NGINX 사용자에게 자연스러운 전환 가능.
- ✅ WASM 및 외부 플러그인 지원: Java, Python 등 다양한 언어로 확장 가능.
단점
- ❌ Lua 기반 플러그인 개발 필요: 익숙하지 않은 개발자에겐 진입장벽.
- ❌ 고급 설정 시 복잡도 상승: NGINX directives에 대한 깊은 이해 필요.
어떤 환경에서 써야 하는가?
- 성능이 중요한 대규모 기업 환경
- 기존 NGINX 인프라와 통합 필요 시
- 고속 구성 변경이 필요한 상황 (e.g., APISIX의 핫 리로드 기능)
🚀 Envoy 기반 API Gateway
개요
Envoy는 2016년 Lyft에서 개발되었으며, Kubernetes-native 환경 및 Service Mesh 연동에 최적화되어 있다. Istio, Gateway API 등 다양한 표준 기술과도 긴밀하게 연결된다.
장점
- ✅ 클라우드 네이티브 설계: 동적 서비스 디스커버리, gRPC, HTTP/2 완전 지원.
- ✅ 동서(East-West) & 남북(North-South) 트래픽 통합: Gateway API 지원.
- ✅ WASM 확장성 우수: 고급 플러그인 개발 가능.
단점
- ❌ 확장 난이도 높음: 플러그인은 대부분 C++ 기반.
- ❌ 리소스 사용량 많음: NGINX보다 무거운 구조.
어떤 환경에서 써야 하는가?
- Kubernetes 환경에서 마이크로서비스 운영
- Istio 기반 Service Mesh 구현
- 고급 모니터링, 트레이싱, Observability가 필요한 상황
☕ Java 기반 API Gateway (Spring Cloud Gateway)
개요
Spring Cloud Gateway는 Java/Spring 진영에서 가장 널리 쓰이는 API 게이트웨이로, Spring Boot 생태계와의 통합성이 뛰어나다.
장점
- ✅ 개발자 친화적: Spring Boot 프로젝트에 손쉽게 통합 가능.
- ✅ 간단한 커스터마이징: Java 기반으로 커스텀 필터 구현이 쉬움.
- ✅ Spring Cloud Config, Eureka, Security 연동 자연스러움
단점
- ❌ JVM 기반의 오버헤드: GC 지연 및 메모리 사용량 높음.
- ❌ 성능 문제: 고트래픽 환경에서는 리소스 비용이 증가함.
어떤 환경에서 써야 하는가?
- Spring 기반의 마이크로서비스 아키텍처
- 높은 생산성이 필요한 팀
- 트래픽이 중간 정도인 환경
🐹 Go 기반 API Gateway
개요
Go 기반 게이트웨이는 성능과 개발 편의성 사이에서 균형을 추구하며, 대표적으로 KrakenD가 있다. 고성능은 물론 Java/C++보다 쉬운 확장이 가능하다.
장점
- ✅ Java보다 좋은 성능: 컴파일 언어이며 메모리 효율이 뛰어남.
- ✅ 확장성 용이: Lua나 C++ 없이 Go로 확장 가능.
- ✅ 단순한 구조와 빠른 실행
단점
- ❌ NGINX/Envoy보다는 최적화 미흡: 네트워크 레벨 튜닝 한계.
- ❌ 플러그인 생태계 작음: 기능 확장 시 직접 구현 필요.
어떤 환경에서 써야 하는가?
- Go 마이크로서비스 환경
- 유연성을 희생하지 않고 Java보다 가벼운 대안을 원할 때
🔍 기술 기반별 요약 비교표
기준 NGINX 기반 (Kong, APISIX) Envoy 기반 Java 기반 (Spring GW) Go 기반 (KrakenD)
| 기반 언어 | C + Lua | C++ | Java | Go |
| 성능 | ✅ 최고 (이벤트 기반) | ✅ 매우 높음 | ❌ JVM 오버헤드 | ✅ 우수 |
| 확장성 | Lua 플러그인 / WASM | C++ 필터 / WASM | Java 필터 | Go 기반 구성 |
| Kubernetes 연동 | 일부 (Ingress 지원) | ✅ Gateway API 완전 지원 | 최근 지원 시작 | 제한적 |
| 학습 곡선 | 중간 (Lua 필요) | 높음 (C++ 필요) | 낮음 (Spring 기반) | 낮음 |
| 추천 사용처 | 고성능 API 게이트웨이 | Service Mesh + K8s | Java MSA | BFF 또는 중간규모 |
✅ 결론
환경 조건 추천 솔루션
| 최대 성능, 검증된 안정성 | Apache APISIX 또는 Kong (NGINX 기반) |
| Kubernetes 및 Service Mesh | Envoy (Istio, Gateway API 표준) |
| Spring MSA 개발 환경 | Spring Cloud Gateway |
| 경량, 빠른 Aggregation | KrakenD (Go 기반) |
참고자료 : https://api7.ai/learning-center/api-gateway-guide/nginx-vs-envoy-vs-java-vs-go
'Infra&Cloud > Infra' 카테고리의 다른 글
| 3계층 구조 ( 3-tier Architecture ) 란? (0) | 2026.01.26 |
|---|---|
| API Gateway 정리 (0) | 2025.10.21 |