Kubernetes에서 Kong AI 게이트웨이로 OpenAI 프록시
Source: Dev.to
LLM에 직접 연결할 때의 문제점
대부분의 팀은 애플리케이션을 바로 OpenAI API에 연결하는 것부터 시작합니다. 처음엔 잘 동작합니다—하지만 인증, 속도 제한, 가시성 추가가 필요하거나 모델 제공자를 교체하고 싶어질 때 문제가 생깁니다. 이제 애플리케이션 코드를 다시 작성해야 하고, 설정만 바꾸면 되는 상황이 아닙니다.
AI 게이트웨이는 이 문제를 해결합니다. 하나의 진입점, 트래픽을 관리하는 한 곳, 제공자를 자유롭게 교체할 수 있습니다. Kong Gateway는 이 분야에서 오래된 검증된 선택이며, AI Proxy 플러그인을 통해 LLM에도 동일하게 적용할 수 있습니다.
이 글에서는 핵심 아이디어를 살펴봅니다. 전체 단계별 가이드는 Hashnode 튜토리얼을 참고하세요.
Kong Gateway 3.14 데이터 플레인이 Kubernetes(로컬 kind) 위에서 실행되고, Kong Konnect 컨트롤 플레인에 연결됩니다. AI Proxy 플러그인은 라우트에 배치되어 OpenAI로 요청을 전달합니다—애플리케이션은 Kong에만 요청하면 됩니다.
Your app
→ POST /ai/chat (Kong proxy)
→ AI Proxy plugin attaches API key
→ OpenAI API
→ response back to your app
애플리케이션이 OpenAI 키를 직접 보관하지 않습니다. Kong이 키를 관리합니다. 속도 제한, 로깅, 모델 교체가 게이트웨이 레이어에서 자동으로 제공됩니다.
이 설정에서 가장 흥미로운 부분은 decK를 사용해 서비스, 라우트, 플러그인을 YAML 상태 파일로 정의하고—이를 Konnect에 동기화하면 자동으로 데이터 플레인에 적용된다는 점입니다.
# kong-ai.yaml
_format_version: "3.0"
services:
- name: openai-service
url: https://api.openai.com
routes:
- name: openai-chat-route
paths:
- /ai/chat
plugins:
- name: ai-proxy
config:
route_type: llm/v1/chat
auth:
header_name: Authorization
header_value: "Bearer $OPENAI_API_KEY"
model:
provider: openai
name: gpt-4o
options:
max_tokens: 512
한 번의 sync 명령으로 Konnect가 모든 연결된 데이터 플레인에 설정을 푸시합니다:
deck gateway sync kong-ai.yaml \
--konnect-token "$KONNECT_TOKEN" \
--konnect-control-plane-name "kong-ai-tutorial"
설정이 적용되면, 아래와 같은 단일 HTTPie 호출로 전체 흐름이 정상 동작함을 확인할 수 있습니다:
http POST localhost:8080/ai/chat \
Content-Type:application/json \
messages:='[{"role": "user", "content": "What is Kong Gateway in one sentence?"}]'
응답은 표준 OpenAI 챗 포맷으로 돌아옵니다—Kong이 이를 정규화해 주기 때문에, 나중에 기본 모델을 교체해도 동일한 형식으로 받을 수 있습니다.
전체 튜토리얼에서 다루는 내용
- 올바른 포트 매핑을 포함한 kind 클러스터 생성
- Konnect 컨트롤 플레인 설정 및 클러스터 인증서 다운로드
- 시스템 계정 + 관리자 역할 + PAT 생성 (자동화된 접근을 위한 올바른 방법)
- 완전한 values 파일을 사용한 Helm을 통한 Kong 3.14 설치
- AI Proxy 플러그인을 위한 전체 decK 상태 파일
- 흔히 발생하는 오류에 대한 트러블슈팅 가이드
👉 Kong AI Gateway on Kubernetes: Proxy OpenAI via Konnect
기본 구성을 마친 뒤에 확장할 수 있는 흥미로운 아이디어
- 소비자별 속도 제한을 추가해 OpenAI 비용 초과 방지
- 단일 엔드포인트 뒤에서 여러 제공자(OpenAI + Anthropic) 라우팅
- JWT 인증을 적용해 오직 허가된 서비스만 AI 라우트에 접근하도록 제한
이 모든 설정은 단순히 더 많은 decK 구성 파일을 추가하는 것뿐입니다. 바로 그게 핵심입니다.
✏️ Drafted with KewBot (AI), edited and approved by Drew.