피드로 돌아가기
Dev.toInfrastructure
원문 읽기
GET-POST 분리를 통한 LLM 추론 비용 제로화 및 가용성 확보
GET Serves Cache, POST Runs Inference: Cost Safety for a Public LLM Endpoint
AI 요약
Context
인증 없는 공개 LLM 엔드포인트 운영 시 발생하는 무분별한 추론 요청과 그로 인한 예산 소진 위험 해결이 필요함. 단순한 봇 트래픽과 바이럴 확산으로 인한 비용 급증을 방지하기 위해 추론 트리거를 엄격히 제한하는 구조적 설계가 요구됨.
Technical Solution
- GET 요청은 Cloudflare KV 캐시만 반환하여 바이럴 트래픽 발생 시에도 추가 추론 비용 0원 유지
- POST 요청에만 Turnstile 토큰 검증 및 AI 추론 로직을 배치하여 의도적인 요청만 처리하는 비용 격리 설계
- Prompt Extraction 시도를 탐지하는 Regex 기반 Tripwire 적용 및 탐지 시 60초간 세션 Lockout 처리
- CGNAT 환경의 무고한 사용자 피해를 방지하기 위해 IP 기반 차단을 제거하고 Session 기반 차단만 채택
- 탐지 로직의 즉각적인 응답으로 인한 Timing Side Channel 공격을 막기 위해 모델 추론 시간과 유사한 Random Latency 주입
- KV의 Eventual Consistency를 수용하여 텔레메트리 카운터로 활용하되, 오차 범위 확대 시 Durable Objects로의 마이그레이션 전략 수립
실천 포인트
- 읽기 전용 트래픽(GET)과 상태 변경/비용 발생 트래픽(POST)을 엄격히 분리했는가? - 보안 필터링 응답 속도가 너무 빨라 내부 로직 노출(Timing Attack) 위험은 없는가? - IP 기반 차단 도입 시 CGNAT 및 공용 IP 환경의 Blast Radius를 고려했는가? - 비용 제어를 위한 Daily Spend Cap 및 서비스 저하 모드(Degraded Mode)의 UX가 정의되었는가?