본문 바로가기
CODING STUDY/NETWORK

[MaaS] Kong API Gateway 핵심 요건 및 솔루션 상세 비교 분석

by 놀고 쉬고 싶은 개발자 2026. 3. 20.

Maas 개발을 위해 이것저것 알아봐 달라는 말씀을 하셔서 찾다가 발견한 Kong 🦍

 

Kong이란?

마이크로서비스 아키텍처(MSA)가 표준이 되면서 시스템이 여러 개의 서버로 나눠졌고, 모든 서버가 인증이나 로깅 같은 공통 로직을 중복해서 처리해야 하는 문제가 발생했습니다. Kong은 이러한 문제를 해결하기 위해 모든 트래픽의 대문 역할을 해주는 API Gateway 솔루션 중 하나입니다.

결과적으로 Kong은 클라이언트와 백엔드 서비스 사이에 위치하여, 비즈니스 로직과 공통 관심사(인증, 인가, 로깅 등)를 완벽하게 분리하고 백엔드 서버의 부담을 획기적으로 줄여줍니다.

 

Kong의 장점

  • 검증된 압도적 성능 (NGINX 기반): Kong은 고성능 웹 서버인 NGINX를 기반으로 동작합니다. 대규모 트래픽이 몰려도 아주 빠르고 안정적으로 요청을 라우팅합니다.
  • 가볍고 빠른 확장성 (Lua 스크립트): C++이나 Java처럼 무거운 언어가 아닌, 가볍고 빠른 Lua 스크립트를 사용하여 커스텀 로직을 실행합니다. 시스템 리소스 소모가 매우 적습니다.
  • 강력한 플러그인 생태계 (가장 큰 장점): 개발자가 인증(JWT, OAuth), 트래픽 제어(Rate Limiting), 보안(CORS), 모니터링 연동을 바닥부터 개발할 필요가 없습니다. 설정 파일 몇 줄만으로 수많은 공식 플러그인을 레고 블록처럼 조립해서 바로 사용할 수 있습니다.

MaaS 프로젝트에서의 Kong 실무 적용 예시 

API 인증 (Key-Auth)

가장 빠르고 단순한 Config 기반 하드코딩 방식의 설정 예시입니다.

[Kong Key-Auth 플러그인 설정]

# 1. 서비스 및 라우팅 설정
services:
  - name: ai-model-service
    url: http://fastapi-server:8000
    routes:
      - name: chat-route
        paths: ["/v1/chat"]

# 2. Key-Auth 플러그인 활성화
plugins:
  - name: key-auth
    config:
      key_names: ["x-api-key"]
      hide_credentials: true # 보안을 위해 백엔드 전달 시 키 숨김

# 3. 인증받은 사용자(Consumer) 등록
consumers:
  - username: yulim_dev
    keyauth_credentials:
      - key: "my-secret-api-key-777"

 

트래픽 제어 (Rate Limiting)

특정 모델 서버에 요청이 몰려 서버가 다운되는 것을 방지하기 위해 초당 호출 횟수를 제한합니다.

[KongPlugin 리소스 예시 (K8s)]

apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  name: rate-limit-5
plugin: rate-limiting
config:
  second: 5
  policy: local

 


솔루션 상세 비교: Kong vs Istio vs Envoy Gateway

비교 항목 Kong Gateway (Nginx 기반)  Istio & Envoy (Service Mesh)  Envoy Gateway (Standard)
핵심 구조 중앙 집중형 게이트웨이 배치 파드마다 Envoy 배치 (Sidecar) 컨트롤러 기반 Envoy 자동 생성
최대 장점 빠른 기능 개발, 쉬운 유지 보수 세밀한 보안 및 서비스 간 통제 K&s 표준(Gateway API) 준수 
설정 편의성 매우 높음 (어노테이션 방식) 낮음 (복잡한 전용 CRD 학습 필요) 중간 (신규 표준 학습 필요)
자원 소모 매우 적음 높음 (Sidecar 오버헤드 존재) 중간
추천 상황 외부 API 공개 및 관리 중심 복잡한 내부 MSA 보안 통제 표준 기반 차세대 구축