EKS에 ML 모델을 배포하려면 GPU 또는 Neuron 인스턴스에 대한 액세스가 필요합니다. 배포가 작동하지 않는 경우 이러한 리소스에 대한 액세스가 누락되어 있기 때문인 경우가 많습니다. 또한 일부 배포 패턴은 Karpenter 오토스케일링 및 정적 노드 그룹에 의존합니다. 노드가 초기화되지 않으면 Karpenter 또는 노드 그룹의 로그를 확인하여 문제를 해결하십시오.
NVIDIA Dynamo는 대규모로 AI 추론(Inference) 그래프를 배포하고 관리하기 위한 클라우드 네이티브 플랫폼입니다. 이 구현은 Amazon EKS에서 엔터프라이즈급 모니터링과 확장성을 갖춘 완전한 인프라 설정을 제공합니다.
Amazon EKS의 NVIDIA Dynamo
이 NVIDIA Dynamo 블루프린트는 현재 활발한 개발 중입니다. 사용자 경험과 기능을 지속적으로 개선하고 있습니다. 사용자 피드백과 모범 사례를 기반으로 구현을 반복하고 향상시킴에 따라 기능, 구성 및 배포 프로세스가 릴리스 간에 변경될 수 있습니다.
향후 릴리스에서 반복적인 개선이 있을 것으로 예상됩니다. 문제가 발생하거나 개선 제안이 있으면 이슈를 열거나 프로젝트에 기여해 주십시오.
빠른 시작
즉시 시작하고 싶으신가요? 최소한의 명령 시퀀 스입니다:
# 1. 클론 및 이동
git clone https://github.com/awslabs/ai-on-eks.git && cd ai-on-eks/infra/nvidia-dynamo
# 2. 인프라 및 플랫폼 배포 (15-30분)
./install.sh
# 3. 사전 빌드된 NGC 컨테이너를 사용하여 추론 예제 배포
cd ../../blueprints/inference/nvidia-dynamo
./deploy.sh # 예제를 선택하는 대화형 메뉴
# ./deploy.sh vllm # 대화형 설정으로 vLLM 배포
# 4. 배포 테스트 (모델 다운로드 대기)
kubectl port-forward svc/vllm-frontend 8000:8000 -n dynamo-cloud
curl http://localhost:8000/health
사전 요구 사항: AWS CLI, kubectl, helm, terraform, git, NGC API 토큰, HuggingFace 토큰 (아래 자세한 설정)
NVIDIA Dynamo란?
NVIDIA Dynamo는 대규모 언어 모델(LLM) 및 생성형 AI 애플리케이션의 성능과 확장성을 최적화하도록 설계된 오픈 소스 추론 프레임워크입니다. Apache 2.0 라이선스 하에 릴리스된 Dynamo는 여러 GPU와 노드에 걸쳐 복잡한 AI 워크로드를 오케스트레이션하는 데이터센터 규모의 분산 추론 서빙 프레임워크를 제공합니다.
추론 그래프란?
**추론 그래프(Inference Graph)**는 상호 연결된 노드를 통해 AI 모델이 데이터를 처리하는 방식을 정의하는 계산 워크플로우로, 다음과 같은 복잡한 다단계 AI 작업을 가능하게 합니다:
- LLM 체인: 여러 언어 모델을 통한 순차적 처리
- 멀티모달 처리: 텍스트, 이미지 및 오디오 처리 결합
- 사용자 정의 추론 파이프라인: 특정 AI 애플리케이션을 위한 맞춤형 워크플로우
- 분리된 서빙: 최적의 리소스 활용을 위해 prefill과 decode 단계 분리
개요
이 블루프린트는 NVIDIA NGC 카탈로그의 **공식 NVIDIA Dynamo Helm 차트**를 사용하며, Amazon EKS에서의 배포 프로세스를 단순화하기 위한 추가 셸 스크립트와 Terraform 자동화를 제공합니다.
배포 접근 방식
이 설정 프로세스의 이유는? 이 구현은 여러 단계를 포함하지만 간단한 Helm 전용 배포에 비해 여러 가지 이점을 제공합니다:
- 완전한 인프라: VPC, EKS 클러스터, ECR 리포지토리 및 모니터링 스택을 자동으로 프로비저닝
- 프로덕션 준비: 엔터프라이즈급 보안, 모니터링 및 확장성 기능 포함
- AWS 통합: EKS 오토스케일링, EFA 네트워킹 및 AWS 서비스 활용
- 사용자 정의 가능: GPU 노드 풀, 네트워킹 및 리소스 할당의 미세 조정 가능
- 재현 가능: Infrastructure as Code로 환경 전반에 걸쳐 일관된 배포 보장
더 간단한 배포의 경우: EKS 클러스터가 이미 있고 최소한의 설정을 선호하는 경우 소스 저장소에서 직접 Dynamo Helm 차트를 사용할 수 있습니다. 이 블루프린트는 완전한 프로덕션 준비 경험을 제공합니다.
LLM 및 생성형 AI 애플리케이션이 점점 보편화됨에 따라 효율적이고 확장 가능하며 저지연 추론 솔루션에 대한 수요가 증가했습니다. 기존 추론 시스템은 특히 분산 다중 노드 환경에서 이러한 요구를 충족하는 데 어려움을 겪는 경우가 많습니다. NVIDIA Dynamo는 Amazon S3, Elastic Fabric Adapter (EFA) 및 Amazon EKS와 같은 AWS 서비스를 지원하여 성능과 확장성을 최적화하는 혁신적인 솔루션을 제공함으로써 이러한 문제를 해결합니다.
주요 기능
성능 최적화:
- 분리된 서빙: 최적의 리소스 활용을 위해 다른 GPU에서 prefill과 decode 단계 분리
- 동적 GPU 스케줄링: NVIDIA Dynamo Planner를 통한 실시간 수요 기반 지능형 리소스 할당
- 스마트 요청 라우팅: 관련 캐시된 데이터가 있는 워커로 요청을 라우팅하여 KV 캐시 재계산 최소화
- 가속화된 데이터 전송: NVIDIA NIXL 라이브러리를 통한 저지연 통신
- 효율적인 KV 캐시 관리: KV Cache Block Manager를 통한 메모리 계층 전반의 지능형 오프로딩
인프라 준비:
- 추론 엔진 불가지론: TensorRT-LLM, vLLM, SGLang 및 기타 런타임 지원
- 모듈식 설계: 기존 AI 스택에 맞는 구성 요소 선택
- 엔터프라이즈급: 완전한 모니터링, 로깅 및 보안 통합
- Amazon EKS 최적화: EKS 오토스케일링, GPU 지원 및 AWS 서비스 활용
아키텍처
배포는 다음 구성 요소와 함께 Amazon EKS 를 사용합니다:

주요 구성 요소:
- VPC 및 네트워킹: 저지연 노드 간 통신을 위한 EFA 지원이 있는 표준 VPC
- EKS 클러스터: Karpenter를 사용하는 GPU 지원 노드 그룹이 있는 관리형 Kubernetes
- Dynamo Platform: Operator, API Store 및 지원 서비스 (NATS, PostgreSQL, MinIO)
- 모니터링 스택: Prometheus, Grafana 및 AI/ML 관측성
- 스토리지: 공유 모델 스토리지 및 캐싱을 위한 Amazon EFS
사전 요구 사항
시스템 요구 사항: Ubuntu 22.04 또는 24.04 (NVIDIA Dynamo는 공식적으로 이러한 버전만 지원)
설정 호스트에 다음 도구를 설치하십시오 (권장: EKS 및 ECR 권한이 있는 t3.xlarge 이상의 EC2 인스턴스):
- AWS CLI: 적절한 권한으로 구성됨 (설치 가이드)
- kubectl: Kubernetes 명령줄 도구 (설치 가이드)
- helm: Kubernetes 패키지 관리자 (설치 가이드)
- terraform: Infrastructure as code 도구 (설치 가이드)
- git: 버전 제어 (설치 가이드)
- Python 3.10+: pip 및 venv 포함 (설치 가이드)
- EKS 클러스터: 버전 1.33 (테스트 및 지원됨)
필수 API 토큰
- NGC API 토큰: NVIDIA의 사전 빌드된 Dynamo 컨테이너 이미지에 액세스하는 데 필요
- NVIDIA NGC에 가입
- 계정 설정에서 API 키 생성
NGC_API_KEY환경 변수로 설정하거나 설치 중에 제공
- HuggingFace 토큰: 모델 다운로드에 필요
- HuggingFace에서 계정 생성
- 모델 읽기 권한이 있는 액세스 토큰 생성
HF_TOKEN환경 변수로 설정하거나 배포 중 대화형으로 제공
솔루션 배포
👈사용 가능한 예제
프로덕션 준비 예제
다음 예제는 완전히 테스트되었고 포괄적인 문서와 함께 프로덕션 준비가 되어 있습니다:
| 예제 | 런타임 | 모델 | 아키텍처 | 노드 유형 | 주요 기능 |
|---|---|---|---|---|---|
| hello-world | CPU | N/A | 집계 | CPU | 기본 연결 테스트 |
| vllm | vLLM | Qwen3-0.6B | 집계 | G5 GPU | OpenAI API, 균형 잡힌 성능 |
| sglang | SGLang | DeepSeek-R1-Distill-8B | 집계 | G5 GPU | RadixAttention 캐싱 |
| trtllm | TensorRT-LLM | DeepSeek-R1-Distill-8B | 집계 | G5 GPU | 최대 추론 성능 |
| multi-replica-vllm | vLLM | 다중 모델 | 다중 레플리카 HA | G5 GPU | KV 라우팅, 로드 밸런싱 |
고급 예제 (베타)
이러한 예제는 고급 Dynamo 기능을 시연하며 실험적 워크로드에 적합합니다:
| 예제 | 런타임 | 아키텍처 | 사용 사례 | 주요 기능 |
|---|---|---|---|---|
| vllm-disagg | vLLM | 분리 | 높은 처리량 | 별도의 prefill/decode 워커 |
| sglang-disagg | SGLang | 분리 | 메모리 최적화 | RadixAttention + 분리 |
| trtllm-disagg | TensorRT-LLM | 분리 | 초고성능 | TRT-LLM + 분리 |
| kv-routing | 다중 런타임 | 지능형 라우팅 | 캐시 최적화 | KV 인식 요청 라우팅 |
예제 하이라이트
hello-world: 완벽한 시작점
- Dynamo 플랫폼 기능 테스트를 위한 CPU 전용 배포
- 빠른 배포 (~2분)
- GPU 또는 모델 종속성 없음
- CI/CD 검증에 이상적
vllm: 대부분의 사용 사례에 권장
- OpenAI 호환 API (
/v1/chat/completions,/v1/models) - 빠른 테스트를 위한 작은 모델 (Qwen3-0.6B)
- 프로덕션 준비 헬스 체크
- G5 GPU 최적화
sglang: 고급 캐싱 기능
- 반복 쿼리에서 2-10배 속도 향상을 위한 RadixAttention
- 구조화된 생성 지원 (JSON/XML)
- 고급 메모리 관리
- 캐시 중심 워크로드에 적합
trtllm: 최대 성능
- NVIDIA TensorRT-LLM 최적화 커널
- 최고 처리량 및 최저 지연 시간
- 사용자 정의 CUDA 커널
- 프로덕션 서빙에 최적
multi-replica-vllm: 고가용성 배포
- KV 라우팅이 있는 여러 독립 워커 레플리카
- 자동 로드 밸런싱 및 장애 조치
- 지능형 캐시 인식 요청 라우팅
- 고가용성이 필요한 프로덕션 워크로드에 이상적
모든 9개 예제는 GPU 노드가 있는 EKS 클러스터에서 철저히 테스트되고 검증되었습니다. 각 예제에는 적절한 헬스 체크, OpenAI 호환 API 엔드포인트 및 프로덕션 준비 구성이 포함됩니다. 자세한 검증 결과는 테스트 요약을 참조하십시오.
테스트 및 검증
자동화된 테스트
내장된 테스트 스크립트를 사용하여 배포를 검증합니다:
./test.sh
이 스크립트는:
- 프론트엔드 서비스로의 포트 포워딩 시작
- 헬스 체크, 메트릭 및
/v1/models엔드포인트 테스트 - 기능 확인을 위한 샘플 추론 요청 실행
수동 테스트
배포에 직접 액세스:
kubectl port-forward svc/<frontend-service> 8000:8000 -n dynamo-cloud &
curl -X POST http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/DeepSeek-R1-Distill-Llama-8B",
"messages": [
{"role": "user", "content": "Explain what a Q-Bit is in quantum computing."}
],
"max_tokens": 2000,
"temperature": 0.7,
"stream": false
}'
예상 출력:
{
"id": "1918b11a-6d98-4891-bc84-08f99de70fd0",
"choices": [
{
"index": 0,
"message": {
"content": "A Q-bit, or qubit, is the basic unit of quantum information...",
"role": "assistant"
},
"finish_reason": "stop"
}
],
"created": 1752018267,
"model": "deepseek-ai/DeepSeek-R1-Distill-Llama-8B",
"object": "chat.completion"
}