- Kong API Gateway는 대규모 분산 시스템에서 API 관리와 보안을 제공하는 오픈 소스 솔루션 → Kong gateway는 OSS gateway로 가장 많이 사용되고 있는 솔루션
- Kong API Gateway는 플러그인을 통해 고성능과 확장성이 뛰어나며, 클라우드 네이티브 및 플랫폼에 구애받지 않고 확장 가능
- 프록시(Proxy), 라우팅(Routing), 로드 밸린싱(Load Balancing), 인증(Auth) 등을 위한 기능을 제공
- Kong API Gateway는 마이크로서비스(Microservice) 또는 기존 API 트래픽을 쉽게 오케스트레이션(Orchestration)하기 위한 중앙 레이저 역할을 함
- Kong API Gateway 공식 Kubernetes Ingress Controller에 의해 Kubernetes에서 기본적으로 실행 가능Kong API Gateway는 대규모 분산 시스템에서 API 관리와 보안을 제공하는 오픈 소스 솔루션 → Kong gateway는 OSS gateway로 가장 많이 사용되고 있는 솔루션
- Kong API Gateway는 플러그인을 통해 고성능과 확장성이 뛰어나며, 클라우드 네이티브 및 플랫폼에 구애받지 않고 확장 가능
- 프록시(Proxy), 라우팅(Routing), 로드 밸린싱(Load Balancing), 인증(Auth) 등을 위한 기능을 제공
- Kong API Gateway는 마이크로서비스(Microservice) 또는 기존 API 트래픽을 쉽게 오케스트레이션(Orchestration)하기 위한 중앙 레이저 역할을 함
- Kong API Gateway 공식 Kubernetes Ingress Controller에 의해 Kubernetes에서 기본적으로 실행 가능
- 다양한 plugin을 제공하고 있고, plugin을 개발할 수 있는 여러 언어(python, go, javascript)의 PDK(plugin development kit)가 있어 원하는 plugin을 개발하여 적용 가능
- Admin API를 통해 Service, Route, Plugin을 설정할 수 있는데, Konga를 이용하면 UI를 통해 쉽게 설정 가능
[목차]
1. Kong API Gateway 구성 컨셉
2. Kong API Gateway 특징
3. Kong API Gateway 구성 요소
4. Kong API Gateway 기능 소개 → 서비스 라우팅 적용
4.1. Service 기능 소개
4.2. Route 기능 소개
5. DB-less 설정 소개
공식 문서 : https://developer.konghq.com/gateway/
Kong Gateway | Kong Docs
This page is an introduction to Kong Gateway.
developer.konghq.com
1. Kong API Gateway 구성 컨셉
- Kong API Gateway는 새로운 서비스를 구축하면서, 클라이언트를 기존 업스트림 서비스로 라우팅하는 추상화 계층으로 활용하여 접근 방식을 단순화
- 대상 서비스가 어디에 있든 각 요청 및 응답에 대해 공통 정책을 적용해 클라이언트에 영향을 미치지 않도록 할 수 있음

2. Kong API Gateway 특징
- 고급 라우팅, 로드 밸런싱, 상태 확인 등을 관리 API 또는 선언적 구성을 통해 설정
- JWT, 기본 인증, ACL 등과 같은 방법을 사용하여 API에 대한 인증 및 권한 부여
- L4 또는 L7 트래픽에 대한 프록시, SSL/TLS 종료 및 연결 지원
- 트래픽 제어, Request/Response 변환, 로깅, 모니터링을 시행하고 플러그인 개발자 허브를 포함하는 플러그인 제공
- 데이터베이스가 없는 선언적 방식 배포 및 하이브리드 배포(제어 플레인/데이터 플레인 분리)와 같은 정교한 배포 모델 제공
- Kubernetes 제공을 위한 기본 Kong Ingress Controller 지원
- 벤더 종속이 없음
3. Kong API Gateway 구성 요소
- API 클라이언트에서 Gateway로 요청 흐름은 Gateway 구성을 기반으로 Proxy에 의해 수정 및 관리되며, Upstream 서비스로 전달

- Kong API Gateway 구성 요소 특징
| 특징 | 상세 내용 |
| Admin API | • 서비스, 경로, 플러그인 및 소비자의 관리 및 구성을 위한 RESTful 인터페이스를 제공 • Kong Gateway에 대해 수행할 수 있는 모든 작업은 Kong Admin API를 사용하여 자동화 |
| Manager | • Kong Gateway용 그래픽 사용자 인터페이스(GUI) 제공 • 내부에서 Kong Admin API를 사용하여 Kong Gateway를 관리하고 제어 |
| Dev Portal | • API 문서를 생성하고, 사용자 정의 페이지를 만들고, API 버전을 관리하고, 개발자 액세스를 보호하는 데 사용 |
| Vitals | • Kong Gateway 노드의 상태 및 성능에 대한 유용한 메트릭 및 프록시된 API 사용에 대한 메트릭을 제공 • 시각적으로 모니터링하고 실시간으로 이상 징후를 정확히 찾아낼 수 있음 • 시각적 API 분석을 사용하여 API 및 게이트웨이가 어떻게 수행되고 있는지 정확히 확인하고 주요 통계에 액세스 |
| Gateway Plugin | • 사용 사례를 충족하는 턴키 기능을 통해 Kong Gateway 플러그인에 최대한의 제어를 보장하고 불필요한 오버 헤드를 최소화 • Kong Manager 또는 Admin API를 통해 Kong Gateway 플러그인을 활성화하여 인증, 속도 제한 및 변환과 같은 기능을 활성화 |
4. Kong API Gateway 기능 소개 → 서비스 라우팅 적용
- Service 및 Route 기능을 사용하면 Kong API Gateway를 사용하여 클라이언트에 서비스를 노출
- Service 및 Route를 구성한 후 Kong API Gateway를 통해 요청을 시작
- Service를 통해 백엔드 API로 라우팅 되는 요청 및 응답 흐름을 구현

4.1. Service 기능 소개
- API에 대한 액세스를 구성할 때 먼저 Service를 지정
- Kong API Gateway에서 Service는 외부 업스트림 API 또는 마이크로 서비스를 나타내는 Entity로 사용
- Service의 주요 속성으로 Service가 요청을 수신하는 URL를 적용
- 단일 문자열을 사용하거나 해당 프로토콜, 호스트, 포트 및 경로를 개별적으로 지정

4.2. Route 기능 소개
- Service에 대한 요청을 시작하기 전에 Route를 추가해야함
- Route는 요청이 Kong API Gateway에 도달한 후 Service로 전송되는 방법(및 여부)을 결정
- 단일 Service에는 여러 경로가 있을 수 있음

5. DB-less 설정 소개
- Kong Gateway는 데이터베이스 없이 Entity용 인메모리(In-Memory) 스토리지만 사용하여 실행할 수 있으며, 이것을 DB-less 모드라고 함
- Kong Gateway DB-less를 실행할 때 Entity 구성은 선언적 구성을 사용
- 사용 사례에 대한 전체 설정이 메모리에서의 처리가 알맞는 경우, 데이터베이스 설치 및 관리가 불필요하여 종속성을 감소시킴
- Entity에 대한 구성은 Git 저장소를 통해 관리되는 단일 정보 소스에 보관할 수 있기 때문에 CI/CD 시나리오의 자동화에 적합함