GenAI on Amazon EKS
End-to-end opinionated guidance for running generative AI / LLM workloads on Amazon EKS, structured as a 6-layer stack from compute hardware up through the AI gateway. This skill is opinionated: it recommends one AWS-canonical reference stack — the JARK stack (JupyterHub + Argo + Ray + Karpenter) extended with vLLM serving and a LiteLLM gateway — and surfaces the alternatives plus the customer-context flags that justify deviating.
Two sources are the canonical foundation and every recommendation must align with one or both: the EKS AI/ML Best Practices guide and the awslabs/ai-on-eks reference implementation. For "how do I run a single EKS cluster well" (compute, networking, upgrades) use eks-best-practices; for designing/building the cluster itself use eks-design / eks-build. This skill is the GenAI workload layer on top.
When to Use This Skill
Activate when the user wants to:
- Choose GenAI hardware — NVIDIA GPU (p5/g6/g6e) vs AWS Neuron (Trainium/Inferentia)
- Serve an LLM (vLLM, Ray Serve, Triton, KServe) or run distributed training/fine-tuning on EKS
- Design GPU/Neuron scheduling (Karpenter NodePools, device plugins, EFA, Capacity Blocks, Spot)
- Pick ML storage (FSx for Lustre, Mountpoint S3 CSI, EFS, S3 Vectors) or wire GPU/Neuron observability
- Stand up an AI gateway (LiteLLM/Envoy), RAG pipeline, or agentic platform on EKS
- Optimize GenAI cost (Neuron migration, Spot+checkpoint, KV-cache tiering, consolidation)
Don't use this skill for:
- SageMaker-only or Bedrock-only (no self-hosting) — defer to ML/Bedrock guidance; this skill covers Bedrock only as a gateway target alongside self-hosted models
- "Is EKS the right base?" not yet decided — run container-service selection first
- Generic cluster design/build with no AI/ML workload →
eks-design / eks-build
- Self-service golden paths / Internal Developer Platform for ML teams (Backstage templates, ML-pipelines-as-a-service, multi-tenant self-serve) →
eks-platform-engineering. This skill is the GenAI workload layer (how to serve/train the model); platform-engineering is the self-service delivery layer (how teams request it). Ray Serve can appear in both — use this skill for the serving architecture, that one for the golden-path wrapper.
- Generic Kubernetes concepts (Claude knows these)
The 6-Layer Stack
Layer 6 AI Gateway / App LiteLLM · Envoy AI Gateway · RAG · Bedrock AgentCore · Strands
Layer 5 Observability DCGM Exporter · Neuron Monitor · Prometheus/Grafana · AMP/AMG
Layer 4 Storage FSx for Lustre · Mountpoint S3 CSI · EFS · S3 Vectors
Layer 3 Frameworks Ray + KubeRay · vLLM · Triton/Dynamo · Kubeflow/KServe (JARK)
Layer 2 Cluster/Scheduler Karpenter · NVIDIA + Neuron device plugins · EFA · Capacity Blocks
Layer 1 Compute/Hardware NVIDIA GPU (p5/g6/g6e) · AWS Neuron (Trainium/Inferentia)
Walk the customer bottom-up (Layer 1 → 6) on first engagement; revisit top-down for optimization. Each layer below gives the decision rule; depth is in the references.
Layer 1 — Compute / Hardware (the single most-impactful decision)
For Transformer-family LLMs, evaluate AWS Neuron first when the workload permits it; it often wins on price-performance. Do not reflexively pick NVIDIA GPU (the most common SA mistake).
- Default to AWS Neuron (Trn2/Trn1 training, Inf2 inference) when the model is Transformer-family (Llama, Mistral, Qwen, Falcon) + framework is PyTorch/vLLM + cost-conscious + the team can absorb a 1-2 week compilation ramp. Up to ~50% cost-to-train (Trainium) / ~40% better price-performance (Inferentia2).
- Default to NVIDIA GPU (g6/g6e inference, p5/p5e training) for fastest time-to-first-success, CUDA-only dependencies, novel/non-Transformer architectures, or multi-modal models.
Right hardware = f(workload type × model family × latency × cost posture × team skill × timeline) — never one dimension alone. Full instance matrix + MIG/time-slicing: compute-hardware.md.
Layer 2 — Cluster / Scheduler
Karpenter is the only recommended autoscaler for GPU/Neuron (Cluster Autoscaler is not). Provision two NodePools (GPU + Neuron) from day one so future hardware migration is a cost experiment, not a re-architecture. Use EKS-optimized accelerated AMIs (Bottlerocket/AL2023) so drivers are pre-installed. Multi-node training needs EFA + NUMA pinning + static CPU manager (bandwidth halves without them) and NCCL/MPI in the image. Use the Neuron device plugin for EKS Auto Mode and dynamic Karpenter provisioning; the DRA driver (K8s 1.34+) is supported on Karpenter static-capacity NodePools, managed node groups, and self-managed nodes (not Auto Mode, not dynamic provisioning). Guarantee planned training capacity with Capacity Blocks for ML. Spot rule: training only with checkpoint/resume; inference On-Demand. Details: cluster-and-scheduling.md.
Layer 3 — Orchestration / Frameworks (most opinionated layer)
Default to the JARK stack + vLLM. vLLM is the default LLM inference engine (PagedAttention, OpenAI-compatible, GPU + Neuron via neuronx-distributed-inference); Ray + KubeRay is the default for distributed training and multi-replica serving. Reach for Triton (multi-framework/TensorRT), Dynamo (disaggregated prefill/decode), Kubeflow (full MLOps), or KServe (scale-to-zero) only when their specific flag applies. Decision table: inference-serving.md and distributed-training.md.
Layer 4 — Storage
Default → Mountpoint for S3 CSI for inference (lazy-load weights, per-pod cache) + FSx for Lustre for training (sub-ms, EFA-connected, S3 DRA for checkpoint offload). Use EFS only for shared multi-model weights, and S3 Vectors for cost-efficient RAG vector storage. Critical rule: FSx in the same AZ as the GPU/Neuron nodes — cross-AZ latency dwarfs FSx's native performance. Pre-warm FSx before launching Spot capacity. Details: storage.md.
Layer 5 — Observability
GenAI observability adds three first-class concerns over standard EKS: accelerator utilization/memory, per-token/per-request latency, and per-workload cost attribution. Stack: NVIDIA DCGM Exporter (GPU) + AWS Neuron Monitor (Trn/Inf) → Prometheus → Grafana, with vLLM metrics (TTFT, time-per-output-token, queue time). Use Amazon Managed Prometheus + Managed Grafana in production; keep observability pods off the GPU/Neuron nodes. Details: observability.md.
Layer 6 — AI Gateway / Application
For multi-model (self-hosted + Bedrock) serving, a gateway is non-negotiable. Default → LiteLLM (OpenAI-compatible proxy, per-tenant rate limiting + token cost accounting, Langfuse tracing); Envoy AI Gateway when you need L7 routing at ingress. For RAG, default the vector store to Bedrock Knowledge Bases (or S3 Vectors for cost) unless self-managed is required. For agents, default to Bedrock AgentCore (managed) or Strands Agents SDK for self-hosted. Details: ai-gateway.md, agentic-and-rag.md.
The Opinionated Reference Stack
The AWS-canonical default, shipped end-to-end in awslabs/ai-on-eks and the GenAI-on-EKS workshops:
| Layer |
Default |
Notes |
| Compute |
Neuron (Inf2/Trn2) for Transformer LLMs; g6/g6e or p5 for GPU |
Provision both NodePools |
| Scheduler |
Karpenter + device plugin + (EFA for multi-node) |
Bottlerocket/AL2023 accelerated AMI |
| Serving |
vLLM (+ Ray Serve for scale) |
OpenAI-compatible; Run:ai Streamer to stream weights from S3 |
| Training |
Ray Train / PyTorch FSDP |
FSx for Lustre + S3 DRA checkpointing |
| Storage |
Mountpoint S3 CSI (inference) + FSx Lustre (training) |
EFS for shared weights; S3 Vectors for RAG |
| Observability |
DCGM / Neuron Monitor → Prometheus → Grafana + AMP/AMG |
vLLM + Ray dashboards |
| Gateway |
LiteLLM (+ Langfuse) |
Routes self-hosted + Bedrock |
| Optimization |
LMCache KV-cache tiering (L1 CPU / L2 Valkey) |
Prefix-cache reuse across pods |
Pointing customers at the awslabs/ai-on-eks blueprints is the fastest credible path from idea to production. The current NVIDIA workshop validates this stack on EKS Auto Mode (K8s 1.34, a workshop-pinned snapshot; deploy the latest supported EKS version) with g6e (L40S), vLLM + KubeRay, Strands Agents, LMCache, and kube-prometheus-stack + AMP. Concrete versions and use-case → blueprint mapping: reference-implementations.md.
Security Baseline (non-negotiable)
Every GenAI-on-EKS recommendation MUST include: EKS Pod Identity / IRSA for pod credentials (never static keys); ECR image scanning; secrets via Secrets Manager/Parameter Store + Secrets Store CSI (never baked into images); model artifact provenance (image signing or Hugging Face checksum verification); private subnets for GPU/Neuron nodes with VPC endpoints for S3/Bedrock; audit logging to CloudTrail/CloudWatch; and Pod Security Admission restricted + CIS-hardened AMI for regulated/shared clusters. Details and compliance regimes: security-and-compliance.md.
Cost Optimization
Savings levers in priority order: (1) Capacity Blocks for planned multi-day training; (2) Neuron over GPU for supported architectures; (3) Spot + Karpenter + checkpointing for fault-tolerant training; (4) MIG / time-slicing for shared dev clusters; (5) Karpenter consolidation for off-peak inference; (6) KV-cache tiering + S3 lazy-load. Always give directional ranges with caveats — never point estimates. Details: kv-cache-and-cost.md.
Top Guardrails (the high-cost mistakes)
- Don't default to NVIDIA GPU — evaluate Neuron first for Transformer LLMs.
- Don't use Spot for training without checkpoint/resume — guaranteed cost-burn.
- Don't recommend Cluster Autoscaler for new GenAI clusters — Karpenter only.
- Never suggest Karpenter can purchase or create a Capacity Block (or ODCR) — it only consumes pre-existing reservations. The customer buys the CB manually; Karpenter launches into it.
- Don't put FSx for Lustre cross-AZ from the compute nodes.
- Don't skip NUMA pinning + static CPU manager on EFA multi-node training.
- Don't pull model weights from Hugging Face at every pod start — pre-cache to S3/FSx.
- Don't skip the AI gateway for multi-model deployments, or the security baseline ever.
- Don't give point cost estimates — directional ranges with caveats only.
How to Use the References
Progressive disclosure — the essentials are above; load a reference only when the task needs that depth:
| Reference |
Load when the task is about… |
| compute-hardware.md |
GPU vs Neuron, instance families, MIG/time-slicing |
| cluster-and-scheduling.md |
Karpenter NodePools, device plugins, EFA/NUMA, Capacity Blocks, Spot, Auto Mode |
| inference-serving.md |
vLLM, Ray Serve, Triton, Dynamo, KServe, model loading |
| distributed-training.md |
Ray Train, PyTorch DDP/FSDP, checkpointing, EFA/NCCL, gang scheduling |
| storage.md |
FSx Lustre, Mountpoint S3 CSI, EFS, S3 Vectors, model artifacts |
| observability.md |
DCGM, Neuron Monitor, Prometheus/Grafana, AMP/AMG, vLLM metrics |
| ai-gateway.md |
LiteLLM, Envoy AI Gateway, routing, rate limiting, Open WebUI |
| agentic-and-rag.md |
Bedrock AgentCore, Strands, LangGraph, RAG, vector stores, Langfuse |
| kv-cache-and-cost.md |
LMCache KV-cache tiering, prefix caching, cost levers |
| security-and-compliance.md |
Pod Identity/IRSA, ECR scanning, secrets, provenance, compliance regimes |
| reference-implementations.md |
ai-on-eks blueprints, workshops, concrete validated stack + versions |
| use-cases.md |
Worked end-to-end scenarios (inference, training, Neuron migration, agentic, hybrid) with 30/60/90 build paths |
Sources
1---2name: eks-genai3description: Use whenever someone is building, training, fine-tuning, or serving a generative AI / LLM workload on Amazon EKS — phrased as "GPU vs Trainium/Inferentia", "vLLM on EKS", "Ray Serve / KubeRay", "distributed training on EKS", "FSx for Lustre for ML", "Karpenter for GPU", "EFA / NCCL multi-node", "DCGM / Neuron Monitor", "LiteLLM / AI gateway", "RAG on EKS", "agentic AI on EKS", or "self-host Llama / Mistral / Qwen". Walks the opinionated 6-layer stack (compute → cluster/scheduler → frameworks → storage → observability → AI gateway), the GPU-vs-Neuron decision, the JARK + vLLM + LiteLLM canonical reference, KV-cache tiering, cost levers (Neuron, Spot, Capacity Blocks), and a non-negotiable security baseline. Trigger even if "GenAI" is never said — any GPU/Neuron, inference-serving, or distributed-training decision on EKS qualifies. Skip for SageMaker-only or Bedrock-only (no self-hosting) asks, and for generic cluster design/build with no AI/ML workload (use eks-design / eks-build).4---56# GenAI on Amazon EKS78End-to-end opinionated guidance for running generative AI / LLM workloads on Amazon EKS, structured as a **6-layer stack** from compute hardware up through the AI gateway. This skill is opinionated: it recommends one AWS-canonical reference stack — the **JARK stack** (JupyterHub + Argo + Ray + Karpenter) extended with **vLLM** serving and a **LiteLLM** gateway — and surfaces the alternatives plus the customer-context flags that justify deviating.910Two sources are the canonical foundation and every recommendation must align with one or both: the [EKS AI/ML Best Practices guide](https://docs.aws.amazon.com/eks/latest/best-practices/aiml.html) and the [`awslabs/ai-on-eks`](https://github.com/awslabs/ai-on-eks) reference implementation. For "how do I run a single EKS cluster well" (compute, networking, upgrades) use `eks-best-practices`; for designing/building the cluster itself use `eks-design` / `eks-build`. This skill is the GenAI *workload* layer on top.1112## When to Use This Skill1314**Activate when the user wants to:**15- Choose GenAI hardware — NVIDIA GPU (p5/g6/g6e) vs AWS Neuron (Trainium/Inferentia)16- Serve an LLM (vLLM, Ray Serve, Triton, KServe) or run distributed training/fine-tuning on EKS17- Design GPU/Neuron scheduling (Karpenter NodePools, device plugins, EFA, Capacity Blocks, Spot)18- Pick ML storage (FSx for Lustre, Mountpoint S3 CSI, EFS, S3 Vectors) or wire GPU/Neuron observability19- Stand up an AI gateway (LiteLLM/Envoy), RAG pipeline, or agentic platform on EKS20- Optimize GenAI cost (Neuron migration, Spot+checkpoint, KV-cache tiering, consolidation)2122**Don't use this skill for:**23- SageMaker-only or Bedrock-only (no self-hosting) — defer to ML/Bedrock guidance; this skill covers Bedrock only as a *gateway target* alongside self-hosted models24- "Is EKS the right base?" not yet decided — run container-service selection first25- Generic cluster design/build with no AI/ML workload → `eks-design` / `eks-build`26- Self-service golden paths / Internal Developer Platform for ML teams (Backstage templates, ML-pipelines-as-a-service, multi-tenant self-serve) → `eks-platform-engineering`. This skill is the GenAI *workload* layer (how to serve/train the model); platform-engineering is the *self-service delivery* layer (how teams request it). Ray Serve can appear in both — use this skill for the serving architecture, that one for the golden-path wrapper.27- Generic Kubernetes concepts (Claude knows these)2829## The 6-Layer Stack3031```text32Layer 6 AI Gateway / App LiteLLM · Envoy AI Gateway · RAG · Bedrock AgentCore · Strands33Layer 5 Observability DCGM Exporter · Neuron Monitor · Prometheus/Grafana · AMP/AMG34Layer 4 Storage FSx for Lustre · Mountpoint S3 CSI · EFS · S3 Vectors35Layer 3 Frameworks Ray + KubeRay · vLLM · Triton/Dynamo · Kubeflow/KServe (JARK)36Layer 2 Cluster/Scheduler Karpenter · NVIDIA + Neuron device plugins · EFA · Capacity Blocks37Layer 1 Compute/Hardware NVIDIA GPU (p5/g6/g6e) · AWS Neuron (Trainium/Inferentia)38```3940Walk the customer **bottom-up** (Layer 1 → 6) on first engagement; revisit top-down for optimization. Each layer below gives the decision rule; depth is in the references.4142### Layer 1 — Compute / Hardware (the single most-impactful decision)4344For Transformer-family LLMs, evaluate AWS Neuron first *when the workload permits it*; it often wins on price-performance. **Do not reflexively pick NVIDIA GPU** (the most common SA mistake).4546- **Default to AWS Neuron** (Trn2/Trn1 training, Inf2 inference) when the model is Transformer-family (Llama, Mistral, Qwen, Falcon) + framework is PyTorch/vLLM + cost-conscious + the team can absorb a 1-2 week compilation ramp. Up to ~50% cost-to-train (Trainium) / ~40% better price-performance (Inferentia2).47- **Default to NVIDIA GPU** (g6/g6e inference, p5/p5e training) for fastest time-to-first-success, CUDA-only dependencies, novel/non-Transformer architectures, or multi-modal models.4849Right hardware = f(workload type × model family × latency × cost posture × team skill × timeline) — never one dimension alone. Full instance matrix + MIG/time-slicing: [compute-hardware.md](references/compute-hardware.md).5051### Layer 2 — Cluster / Scheduler5253**Karpenter is the only recommended autoscaler** for GPU/Neuron (Cluster Autoscaler is not). Provision **two NodePools** (GPU + Neuron) from day one so future hardware migration is a cost experiment, not a re-architecture. Use EKS-optimized accelerated AMIs (Bottlerocket/AL2023) so drivers are pre-installed. Multi-node training needs **EFA + NUMA pinning + static CPU manager** (bandwidth halves without them) and NCCL/MPI in the image. Use the **Neuron device plugin** for EKS Auto Mode and dynamic Karpenter provisioning; the **DRA driver** (K8s 1.34+) is supported on Karpenter **static-capacity** NodePools, managed node groups, and self-managed nodes (not Auto Mode, not dynamic provisioning). Guarantee planned training capacity with **Capacity Blocks for ML**. Spot rule: training only with checkpoint/resume; inference On-Demand. Details: [cluster-and-scheduling.md](references/cluster-and-scheduling.md).5455### Layer 3 — Orchestration / Frameworks (most opinionated layer)5657Default to the **JARK stack** + **vLLM**. vLLM is the default LLM inference engine (PagedAttention, OpenAI-compatible, GPU + Neuron via `neuronx-distributed-inference`); Ray + KubeRay is the default for distributed training and multi-replica serving. Reach for Triton (multi-framework/TensorRT), Dynamo (disaggregated prefill/decode), Kubeflow (full MLOps), or KServe (scale-to-zero) only when their specific flag applies. Decision table: [inference-serving.md](references/inference-serving.md) and [distributed-training.md](references/distributed-training.md).5859### Layer 4 — Storage6061Default → **Mountpoint for S3 CSI** for inference (lazy-load weights, per-pod cache) + **FSx for Lustre** for training (sub-ms, EFA-connected, S3 DRA for checkpoint offload). Use **EFS** only for shared multi-model weights, and **S3 Vectors** for cost-efficient RAG vector storage. Critical rule: **FSx in the same AZ as the GPU/Neuron nodes** — cross-AZ latency dwarfs FSx's native performance. Pre-warm FSx before launching Spot capacity. Details: [storage.md](references/storage.md).6263### Layer 5 — Observability6465GenAI observability adds three first-class concerns over standard EKS: accelerator utilization/memory, per-token/per-request latency, and per-workload cost attribution. Stack: **NVIDIA DCGM Exporter** (GPU) + **AWS Neuron Monitor** (Trn/Inf) → Prometheus → Grafana, with vLLM metrics (TTFT, time-per-output-token, queue time). Use **Amazon Managed Prometheus + Managed Grafana** in production; keep observability pods off the GPU/Neuron nodes. Details: [observability.md](references/observability.md).6667### Layer 6 — AI Gateway / Application6869For multi-model (self-hosted + Bedrock) serving, a gateway is non-negotiable. Default → **LiteLLM** (OpenAI-compatible proxy, per-tenant rate limiting + token cost accounting, Langfuse tracing); **Envoy AI Gateway** when you need L7 routing at ingress. For RAG, default the vector store to **Bedrock Knowledge Bases** (or **S3 Vectors** for cost) unless self-managed is required. For agents, default to **Bedrock AgentCore** (managed) or **Strands Agents SDK** for self-hosted. Details: [ai-gateway.md](references/ai-gateway.md), [agentic-and-rag.md](references/agentic-and-rag.md).7071## The Opinionated Reference Stack7273The AWS-canonical default, shipped end-to-end in `awslabs/ai-on-eks` and the GenAI-on-EKS workshops:7475| Layer | Default | Notes |76|-------|---------|-------|77| Compute | Neuron (Inf2/Trn2) for Transformer LLMs; g6/g6e or p5 for GPU | Provision both NodePools |78| Scheduler | Karpenter + device plugin + (EFA for multi-node) | Bottlerocket/AL2023 accelerated AMI |79| Serving | vLLM (+ Ray Serve for scale) | OpenAI-compatible; Run:ai Streamer to stream weights from S3 |80| Training | Ray Train / PyTorch FSDP | FSx for Lustre + S3 DRA checkpointing |81| Storage | Mountpoint S3 CSI (inference) + FSx Lustre (training) | EFS for shared weights; S3 Vectors for RAG |82| Observability | DCGM / Neuron Monitor → Prometheus → Grafana + AMP/AMG | vLLM + Ray dashboards |83| Gateway | LiteLLM (+ Langfuse) | Routes self-hosted + Bedrock |84| Optimization | LMCache KV-cache tiering (L1 CPU / L2 Valkey) | Prefix-cache reuse across pods |8586Pointing customers at the [`awslabs/ai-on-eks` blueprints](https://github.com/awslabs/ai-on-eks) is the fastest credible path from idea to production. The current NVIDIA workshop validates this stack on **EKS Auto Mode (K8s 1.34, a workshop-pinned snapshot; deploy the latest supported EKS version)** with **g6e (L40S)**, **vLLM + KubeRay**, **Strands Agents**, **LMCache**, and **kube-prometheus-stack + AMP**. Concrete versions and use-case → blueprint mapping: [reference-implementations.md](references/reference-implementations.md).8788## Security Baseline (non-negotiable)8990Every GenAI-on-EKS recommendation MUST include: **EKS Pod Identity / IRSA** for pod credentials (never static keys); **ECR image scanning**; **secrets via Secrets Manager/Parameter Store + Secrets Store CSI** (never baked into images); **model artifact provenance** (image signing or Hugging Face checksum verification); **private subnets** for GPU/Neuron nodes with VPC endpoints for S3/Bedrock; **audit logging** to CloudTrail/CloudWatch; and **Pod Security Admission `restricted`** + CIS-hardened AMI for regulated/shared clusters. Details and compliance regimes: [security-and-compliance.md](references/security-and-compliance.md).9192## Cost Optimization9394Savings levers in priority order: (1) **Capacity Blocks** for planned multi-day training; (2) **Neuron over GPU** for supported architectures; (3) **Spot + Karpenter + checkpointing** for fault-tolerant training; (4) **MIG / time-slicing** for shared dev clusters; (5) **Karpenter consolidation** for off-peak inference; (6) **KV-cache tiering + S3 lazy-load**. Always give directional ranges with caveats — never point estimates. Details: [kv-cache-and-cost.md](references/kv-cache-and-cost.md).9596## Top Guardrails (the high-cost mistakes)9798- **Don't default to NVIDIA GPU** — evaluate Neuron first for Transformer LLMs.99- **Don't use Spot for training without checkpoint/resume** — guaranteed cost-burn.100- **Don't recommend Cluster Autoscaler** for new GenAI clusters — Karpenter only.101- **Never suggest Karpenter can purchase or create a Capacity Block (or ODCR)** — it only *consumes* pre-existing reservations. The customer buys the CB manually; Karpenter launches into it.102- **Don't put FSx for Lustre cross-AZ** from the compute nodes.103- **Don't skip NUMA pinning + static CPU manager** on EFA multi-node training.104- **Don't pull model weights from Hugging Face at every pod start** — pre-cache to S3/FSx.105- **Don't skip the AI gateway** for multi-model deployments, or the security baseline ever.106- **Don't give point cost estimates** — directional ranges with caveats only.107108## How to Use the References109110Progressive disclosure — the essentials are above; load a reference only when the task needs that depth:111112| Reference | Load when the task is about… |113|-----------|------------------------------|114| [compute-hardware.md](references/compute-hardware.md) | GPU vs Neuron, instance families, MIG/time-slicing |115| [cluster-and-scheduling.md](references/cluster-and-scheduling.md) | Karpenter NodePools, device plugins, EFA/NUMA, Capacity Blocks, Spot, Auto Mode |116| [inference-serving.md](references/inference-serving.md) | vLLM, Ray Serve, Triton, Dynamo, KServe, model loading |117| [distributed-training.md](references/distributed-training.md) | Ray Train, PyTorch DDP/FSDP, checkpointing, EFA/NCCL, gang scheduling |118| [storage.md](references/storage.md) | FSx Lustre, Mountpoint S3 CSI, EFS, S3 Vectors, model artifacts |119| [observability.md](references/observability.md) | DCGM, Neuron Monitor, Prometheus/Grafana, AMP/AMG, vLLM metrics |120| [ai-gateway.md](references/ai-gateway.md) | LiteLLM, Envoy AI Gateway, routing, rate limiting, Open WebUI |121| [agentic-and-rag.md](references/agentic-and-rag.md) | Bedrock AgentCore, Strands, LangGraph, RAG, vector stores, Langfuse |122| [kv-cache-and-cost.md](references/kv-cache-and-cost.md) | LMCache KV-cache tiering, prefix caching, cost levers |123| [security-and-compliance.md](references/security-and-compliance.md) | Pod Identity/IRSA, ECR scanning, secrets, provenance, compliance regimes |124| [reference-implementations.md](references/reference-implementations.md) | ai-on-eks blueprints, workshops, concrete validated stack + versions |125| [use-cases.md](references/use-cases.md) | Worked end-to-end scenarios (inference, training, Neuron migration, agentic, hybrid) with 30/60/90 build paths |126127## Sources128129- [Best Practices for AI/ML Workloads on Amazon EKS](https://docs.aws.amazon.com/eks/latest/best-practices/aiml.html) · [AI/ML Networking](https://docs.aws.amazon.com/eks/latest/best-practices/aiml-networking.html) · [AI/ML Storage](https://docs.aws.amazon.com/eks/latest/best-practices/aiml-storage.html) · [AI/ML Performance](https://docs.aws.amazon.com/eks/latest/best-practices/aiml-performance.html)130- [`awslabs/ai-on-eks`](https://github.com/awslabs/ai-on-eks) — canonical reference implementation (JARK, inference-ready-cluster, training, neuron, gateways blueprints)131- [EKS for AI/ML](https://docs.aws.amazon.com/eks/latest/userguide/ml-on-eks.html) · [Manage Neuron devices on EKS](https://docs.aws.amazon.com/eks/latest/userguide/device-management-neuron.html) · [EFA with EKS](https://docs.aws.amazon.com/eks/latest/userguide/node-efa.html)132- [Guidance for Scalable Model Inference and Agentic AI on Amazon EKS](https://aws.amazon.com/solutions/guidance/scalable-model-inference-and-agentic-ai-on-amazon-eks/)133- Workshops: [GenAI on EKS using NVIDIA GPU](https://catalog.us-east-1.prod.workshops.aws/workshops/029d6c4e-4775-41c9-85ff-9f5360f32a15) · [using AWS Neuron](https://catalog.us-east-1.prod.workshops.aws/workshops/e21aadbd-23cb-4207-bd09-625e6de08a6c) · [Advanced Agentic AI on EKS](https://catalog.us-east-1.prod.workshops.aws/workshops/26ab2b07-9621-4e0c-bc44-3f7fef388cb7)