콘텐츠로 이동

AI Gateway 정리

AI Gateway란

AI Gateway란 애플리케이션과 여러 LLM 프로바이더 사이에서 LLM 트래픽을 단일 API로 중계하고 통제하는 게이트웨이 계층

  • 위치: 앱과 OpenAI·Anthropic·Bedrock 등 모델 프로바이더 사이의 중간 계층
  • 인터페이스: 프로바이더별 SDK를 OpenAI 호환 단일 API로 통일
  • 역할: 라우팅·캐싱·폴백·과금·가드레일·관측을 한 곳에서 집행
  • 성격: 앱 코드 변경 없이 모델·프로바이더를 교체 가능한 제어 계층(Control Plane)
  • 별칭: LLM Gateway, LLM Proxy, LLM Router로도 불림

API Gateway와의 차이

API Gateway는 요청(Request) 단위의 마이크로서비스 트래픽을, AI Gateway는 토큰(Token) 단위의 LLM 트래픽을 다루는 것이 핵심 차이

비교 항목 API Gateway AI Gateway
과금·미터링 단위 요청 수 기준 토큰 사용량 기준
라우팅 기준 URL 경로·HTTP 메서드 모델·비용·지연(Latency) 기반 동적 라우팅
캐싱 정확 일치(Exact Match) 캐시 의미 기반(Semantic) 캐시
스트리밍 일반 응답 프록시 SSE(Server-Sent Events) 스트리밍 네이티브
가드레일 WAF 수준의 요청 필터링 프롬프트 인젝션·PII 등 콘텐츠 계층 필터링
폴백 일반적으로 미제공 프로바이더 간 자동 폴백(429 → 타 프로바이더 재시도)
관측성 요청 수·상태 코드·지연 토큰·비용·모델별 사용량 분석

필요한 이유

  • 프로바이더 종속 제거: 멀티 프로바이더를 단일 API로 추상화해 특정 벤더 종속(Lock-in) 회피
  • API 키 중앙 관리: 실제 키는 게이트웨이가 보관하고 앱에는 가상 키(Virtual Key)만 발급해 유출 방지
  • 비용 통제: 팀·사용자·모델별 토큰 사용량 추적과 예산(Budget) 한도 집행
  • 장애 폴백: 프로바이더 장애·429 발생 시 다른 모델로 자동 전환해 가용성 확보
  • 관측성 확보: 요청·응답 로그, 지연, 토큰 비용을 한 곳에서 추적

구조

graph LR
    App1["웹 앱(Web App)"] --> GW["AI Gateway"]
    App2["에이전트(Agent)"] --> GW
    App3["배치 작업(Batch Job)"] --> GW
    GW --> OpenAI["OpenAI"]
    GW --> Anthropic["Anthropic"]
    GW --> Bedrock["Amazon Bedrock"]
    GW --> Local["로컬 모델(Local Model)"]
  • 좌측: 여러 앱·에이전트가 프로바이더별 SDK 대신 게이트웨이 단일 엔드포인트로 요청
  • 중앙: AI Gateway가 라우팅·캐싱·폴백·가드레일·과금을 일괄 처리
  • 우측: 상용 프로바이더와 사내 로컬 모델을 동일한 인터페이스로 연결

동작 방식

요청 처리 파이프라인

sequenceDiagram
    participant App
    participant Gateway
    participant Cache
    participant Provider
    App->>Gateway: 요청 (virtual key 포함)
    Gateway->>Gateway: 인증 (virtual key 검증)
    Gateway->>Gateway: rate limit·예산 검사
    Gateway->>Cache: 캐시 조회
    Cache-->>Gateway: 미스(Miss)
    Gateway->>Gateway: 라우팅 결정 (배포 선택)
    Gateway->>Provider: 모델 호출
    Provider-->>Gateway: 응답 + usage
    Gateway->>Gateway: 미터링 기록 (토큰·비용 누적)
    Gateway-->>App: 최종 응답
  • 인증 → 예산·rate limit 검사 → 캐시 조회 → 라우팅 → 호출 → 미터링 순으로 통과하는 단방향 파이프라인
  • 캐시 히트(Hit) 시 라우팅·프로바이더 호출을 건너뛰고 즉시 응답 → 해당 요청의 토큰 비용 0

미터링(Metering)

  • 비스트리밍: 프로바이더 응답의 usage 필드에서 입력·출력 토큰 수 확보
  • 스트리밍: 종료 청크의 usage로 집계하거나, 미제공 시 tokenizer(tiktoken 등)로 추정
  • 비용 산출: 토큰 수 × 모델별 단가표(입력·출력 1K 토큰당 요금)로 요청별 비용 계산
  • 누적: 키(Key)·팀(Team)·모델 차원으로 DB에 spend 적재
  • 환류: 누적값이 예산 한도·rate limit 초과 판정의 근거로 재사용됨

로드밸런싱

  • 동일 모델의 여러 배포(키·리전·프로바이더)를 하나의 모델 그룹(Model Group)으로 묶음
  • rate limit(RPM/TPM) 여유가 남은 배포를 우선 선택해 throttling 회피
전략 설명
가중치 라운드로빈 배포별 weight·RPM/TPM 비율에 따른 확률적 분산
최소 지연(Latency-based) 최근 응답 지연이 가장 낮은 배포 선택
사용량 기반(Usage-based) 실시간 TPM/RPM 소비량이 가장 적은 배포 선택

폴백 판정

  • 일시적 오류(429·5xx·타임아웃): 동일 배포에서 지정 횟수만큼 재시도 → 소진 시 폴백 체인의 다음 모델로 전환
  • 비일시적 오류(컨텍스트 윈도우 초과 등): 재시도 무의미 → 즉시 폴백
  • 폴백 체인의 다음 모델도 실패하면 순서대로 후속 후보로 계속 이동

캐시 조회

  • exact: 요청을 정규화·해시해 완전 일치 항목이 있으면 히트
  • semantic: 프롬프트 임베딩의 코사인 유사도가 임계값(similarity threshold) 이상이면 히트
  • exact 우선 조회 → 미스 시 semantic 조회 순으로 판정

핵심 기능 정리

기능 설명
통합 API 프로바이더별 API를 OpenAI 호환 단일 스키마로 정규화
모델 라우팅 비용·지연·품질 기준으로 요청을 적절한 모델로 분배
폴백·재시도 프로바이더 오류·throttling 시 다른 모델로 자동 전환
로드 밸런싱 여러 키·리전에 요청을 분산해 rate limit 회피
시맨틱 캐싱 의미가 같은 프롬프트의 응답을 재사용해 토큰 비용 절감
가상 키 실제 키를 숨기고 앱별 발급·회수 가능한 대체 키 제공
비용·예산 관리 팀·모델별 토큰 비용 추적과 예산 한도 초과 차단
가드레일 프롬프트 인젝션·PII·유해 콘텐츠 입출력 필터링
관측성 요청·응답 로그, 지연, 토큰·비용 메트릭 수집

솔루션 비교

셀프호스팅 운영 부담을 기준으로 대표 5개 AI Gateway 솔루션을 배포 형태·핵심 기능·라이선스 관점에서 비교

솔루션 배포 형태 / 라이선스 라우팅·폴백 캐싱 가드레일 관측성 비고
LiteLLM 셀프호스팅(Docker·Helm). MIT 오픈소스, Enterprise 유료 티어(SSO·RBAC·감사 로그). 지원. 폴백 체인·num_retries·다중 키 로드밸런싱. Exact·Semantic 모두 지원. 지원. hook 플러그인·외부 가드레일 연동. 지원. 토큰·비용 추적, 로그, Admin UI. OpenAI 호환 단일 API, 100+ 프로바이더. k8s는 Helm 차트로 배포.
Kong AI Gateway 셀프호스팅(Kong Gateway 플러그인)·Konnect SaaS. Gateway는 Apache 2.0, 고급 AI 기능은 Enterprise 유료. 지원. AI Proxy Advanced의 다중 LB 알고리즘·재시도·폴백(고급은 Enterprise). Semantic 캐시(Enterprise). 지원. AI Prompt Guard(OSS), PII 마스킹·시맨틱 가드레일(Enterprise). 지원. 토큰·지연·비용, OpenTelemetry. 기존 Kong 운영 조직에 적합. 기능별 플러그인 조합. KIC로 k8s 연동.
Portkey 셀프호스팅·관리형 SaaS. MIT 오픈소스(2026년 거버넌스·관측 기능까지 오픈소스화). 지원. 가중치 로드밸런싱·조건부 라우팅·폴백·자동 재시도. Simple은 전 플랜. Semantic은 벡터DB 필요, 일부 Enterprise. 지원. 50+ 가드레일 플러그인. 지원. 요청·비용·지연 대시보드. 1,600+ LLM. 가드레일 통합이 강점. Docker·k8s 셀프호스팅.
Cloudflare AI Gateway 완전 관리형(셀프호스팅 없음). 상용, 무료 티어 + 유료. 지원. Dynamic Routing·자동 폴백. Exact 캐시. 지원. 콘텐츠 모더레이션·DLP. 지원. Analytics·로깅. 프로바이더 앞단 프록시. 인프라 운영 부담 없음. k8s 무관.
Envoy AI Gateway 셀프호스팅(Kubernetes). Apache 2.0 오픈소스. 지원. 통합 모델 카탈로그·자동 failover. 응답 캐시(Exact·Semantic) 미지원. 프로바이더 네이티브 Prompt Caching 전달만 지원. 코어 미제공(상용 애드온으로 보강). 지원. OpenTelemetry·OpenInference 트레이싱. Gateway API·Inference Extension 기반 k8s 네이티브. Envoy Gateway 확장.

선택 가이드

상황 추천 사유
빠른 셀프호스팅 시작 LiteLLM Docker 한 방 기동, OpenAI 호환, MIT. 폴백·키 관리 즉시 사용.
기존 Kong 운영 조직 Kong AI Gateway 이미 쓰는 API 플랫폼에 AI 플러그인만 추가. 학습 곡선 최소.
가드레일·거버넌스 중심 Portkey 다수 가드레일 내장, 완전 오픈소스, 1,600+ LLM 커버.
운영 부담 최소 완전 관리형 Cloudflare AI Gateway 프로바이더 앞단에 얹기만 하면 됨. 서버·업그레이드 관리 불필요.
Kubernetes 네이티브 Envoy AI Gateway Gateway API 표준 기반, Apache 2.0, 기존 Envoy 운영과 통합.

가드레일

가드레일(Guardrail)이란 게이트웨이 계층에서 LLM 입출력을 검사하고 정책 위반 시 차단·마스킹하는 콘텐츠 통제 계층

위협 모델 정리

게이트웨이가 막아야 할 대상은 앱이 아니라 프롬프트·응답에 실린 콘텐츠

위협 설명 게이트웨이 대응
프롬프트 인젝션(Prompt Injection) 사용자 입력에 지시문을 섞어 시스템 프롬프트를 무력화 pre-call 입력 검사, 패턴·인젝션 분류기
탈옥(Jailbreak) 역할극·인코딩으로 안전 정책을 우회 입력 검사 + 전용 탈옥 분류기(Prompt Shields류)
PII 유출 (입력) 사용자가 개인정보를 프롬프트에 그대로 포함 pre-call 입력 마스킹·차단
PII 유출 (출력) 모델 응답에 개인정보·학습 데이터가 노출 post-call 출력 마스킹·차단
유해 콘텐츠 혐오·폭력·성적 응답 생성 콘텐츠 모더레이션 분류로 차단
시스템 프롬프트 유출 추출 공격으로 내부 지침·규칙이 노출 출력 검사로 지침 문자열 차단
과금 남용 가상 키 유출로 토큰을 과소비 가상 키·rate limit·예산 한도로 별도 통제
  • 입력·출력은 서로 다른 위협 → 한쪽 훅만으로는 절반만 방어
  • 인젝션·탈옥·유출은 경계가 겹침 → 단일 분류기보다 다층 배치가 현실적

가드레일 동작 위치

LiteLLM은 요청 파이프라인의 위치별로 훅을 걸 수 있음

  • pre-call: LLM 호출 전 입력을 검사해 프로바이더 도달 전에 차단·마스킹으로 개입
  • post-call: 응답 수신 후 입력과 출력을 함께 검사해 유출·유해 응답을 최종 차단
  • during-call: LLM 호출과 병렬로 입력만 검사해 지연을 줄이는 용도로, 위반 감지 시 예외를 던져 요청 거부 가능
  • logging-only: 요청 흐름은 그대로 두고 로그에만 마스킹 적용

탐지 후 처리 방식은 세 가지로 갈림

모드 동작 적합
차단(Block) 정책 위반 시 요청·응답 자체를 4xx로 거부 인젝션·금칙 주제
마스킹(Mask) 탐지 구간만 placeholder로 치환하고 통과 PII 처리
로깅(Logging) 흐름 변경 없이 탐지 사실만 기록 정책 튜닝·관측

구현 방식 비교

정확도와 비용은 대체로 같은 방향으로 올라감

방식 동작 장점 단점·비용
정규식·휴리스틱 고정 패턴·키워드 매칭 빠름, 무료, 외부 의존성 없음 문맥을 못 봐 오탐·미탐이 큼
PII 탐지 엔진 (Presidio) NER·정규식·체크섬 조합, 신뢰도 점수 산출 MIT 오픈소스, 셀프호스팅, 다국어 지원 별도 서비스 운영 부담, 완전 탐지 보장 없음
LLM 판정 (LLM Judge) 별도 LLM이 입출력을 정책 기준으로 평가 문맥 이해, 자연어로 유연한 정책 표현 검사 호출마다 토큰 비용·지연 가산
벤더 관리형 Bedrock Guardrails·Azure AI Content Safety·Lakera 등 관리형 API 운영 부담 없음, 정책 세트·분류기 완비 텍스트 단위 종량 과금, 외부 전송 발생
  • Presidio는 무료 OSS로, Analyzer가 엔티티 위치·유형·신뢰도를 반환하고 Anonymizer가 치환
  • Bedrock Guardrails는 정책별 종량 과금 → 콘텐츠 필터·민감정보 필터는 유료, 단어·정규식 기반 필터는 무료
  • Azure AI Content Safety는 혐오·성적·폭력·자해 4개 범주 + 인젝션 탐지(Prompt Shields), 텍스트 레코드 단위 과금
  • 벤더 가드레일 대부분은 유료 관리형 → 오픈소스 코어와 경계 확인 필요

LiteLLM 설정 예시

게이트웨이의 litellm_config.yaml에 guardrails 블록을 추가하는 형태. 설정 형태는 다음과 같음(공식 문서 기준)

litellm_config.yaml
guardrails:
  - guardrail_name: "pii-input-mask"       # 입력 PII 처리
    litellm_params:
      guardrail: presidio                  # Presidio 엔진 연동(별도 컨테이너 기동)
      mode: "pre_call"                      # LLM 호출 전 입력 검사
      presidio_score_thresholds:
        ALL: 0.7                            # 신뢰도 0.7 미만 탐지는 무시
      pii_entities_config:
        EMAIL_ADDRESS: "MASK"               # 이메일은 마스킹 후 통과
        CREDIT_CARD: "BLOCK"                # 카드번호는 요청 자체를 차단

  - guardrail_name: "pii-output-check"      # 출력 검사
    litellm_params:
      guardrail: presidio
      mode: "post_call"                     # 응답 수신 후 입력+출력 검사
      default_on: true                      # 모든 요청에 자동 적용
  • mode는 배열도 허용 → mode: [pre_call, post_call]로 입출력 동시 검사
  • guardrail 값을 aporia·bedrock·lakera 등으로 바꾸면 벤더 가드레일로 교체됨
  • MASK는 <CREDIT_CARD> 형태 placeholder로 치환, BLOCK은 요청을 거부

운영 주의

  • 오탐↔미탐 트레이드오프: 신뢰도 임계값을 낮추면 오탐↑, 높이면 미탐↑ → 도메인별 튜닝 필요
  • 지연 추가: pre-call·post-call은 요청 경로에 직렬로 붙어 응답 지연↑, during-call 병렬화로 완화
  • 가드레일 자체 비용: LLM 판정·벤더 가드레일은 검사 호출이 곧 과금이라 원 호출 비용에 가산됨
  • 감사 로그: 차단·마스킹 이벤트를 별도 로그로 남겨 정책 튜닝과 규정 준수 근거로 활용
  • 단일 가드레일로는 완전 차단이 불가능해 입출력 양방향에 서로 다른 방식을 겹쳐 배치하는 편이 현실적

결론

  • AI Gateway는 앱과 여러 LLM 프로바이더 사이의 단일 제어 계층으로 요청이 아닌 토큰 기준으로 트래픽을 통제
  • 라우팅·캐싱·폴백·미터링·가드레일·관측을 한 곳에 모아 벤더 종속 제거·비용 통제·가용성·안전을 동시 확보
  • 솔루션은 셀프호스팅 유연성(LiteLLM·Portkey), 관리형 편의(Cloudflare), k8s 표준(Envoy), 기존 API 플랫폼 재활용(Kong)으로 갈림
  • 가드레일은 pre-call·post-call 양방향에 서로 다른 방식을 겹쳐야 완전에 근접
  • API Gateway는 "요청을 나르는 문", AI Gateway는 "토큰을 지키는 문"이라고 이해하면 됌