GPU 인스턴스에 EKS 최적화 가속 AMI 사용하기

GPU 인스턴스에 EKS 최적화 가속 AMI 사용하기

Amazon EKS는 GPU 인스턴스를 위한 EKS 최적화(EKS-optimized) Amazon Linux 및 Bottlerocket AMI를 지원해요. EKS 최적화 가속 AMI는 가속 컴퓨팅 Kubernetes 스택을 위한 사전 빌드된 검증된 운영체제 이미지를 제공해서 EKS 클러스터에서 AI 및 ML 워크로드를 실행하는 것을 단순화합니다. 표준 EKS 최적화 AMI에 포함된 핵심 Kubernetes 구성 요소에 더해, EKS 최적화 가속 AMI는 NVIDIA GPU G 및 P EC2 인스턴스와 AWS GPU Inferentia 및 Trainium EC2 인스턴스를 EKS 클러스터에서 실행하는 데 필요한 커널 모듈과 드라이버를 포함해요.

아래 표는 각 EKS 최적화 가속 AMI 변형이 지원하는 GPU 인스턴스 유형을 보여줍니다. AMI 변형의 최신 업데이트는 GitHub의 EKS-optimized AL2023 releases와 Bottlerocket releases에서 확인할 수 있어요.

EKS AMI 변형 EC2 인스턴스 유형
AL2023 x86_64 NVIDIA p6-b300, p6-b200, p5, p5e, p5en, p4d, p4de, p3, p3dn, g7, g7e, gr6, g6, g6e, g6f, gr6f, g5, g4dn
AL2023 ARM NVIDIA p6e-gb200, p6e-gb300, g5g
AL2023 x86_64 Neuron inf1, inf2, trn1, trn2
Bottlerocket x86_64 aws-k8s-nvidia p6-b300, p6-b200, p5, p5e, p5en, p4d, p4de, p3, p3dn, g7e, gr6, g6, g6e, g6f, gr6f, g5, g4dn
Bottlerocket aarch64/arm64 aws-k8s-nvidia g5g
Bottlerocket x86_64 aws-k8s inf1, inf2, trn1, trn2

EKS 최적화 NVIDIA AMI

EKS 최적화 NVIDIA AMI를 사용하면 NVIDIA의 Cloud End User License Agreement (EULA)에 동의하는 것으로 간주돼요.

최신 EKS 최적화 NVIDIA AMI를 찾으려면 Retrieve recommended Amazon Linux AMI IDs와 Retrieve recommended Bottlerocket AMI IDs 문서를 참고하세요.

EKS 최적화 AL2023 또는 Bottlerocket NVIDIA AMI와 함께 Amazon Elastic Fabric Adapter (EFA)를 사용하는 경우 EFA device plugin을 별도로 설치해야 해요. 자세한 내용은 Run machine learning training on Amazon EKS with Elastic Fabric Adapter를 참고하세요.

EKS AL2023 NVIDIA AMI

EKS 최적화 AL2023 NVIDIA AMI와 함께 NVIDIA GPU operator를 사용할 때는 EKS AMI에 이미 포함되어 있으므로 operator의 드라이버·툴킷 설치를 비활성화해야 해요. EKS 최적화 AL2023 NVIDIA AMI에는 NVIDIA Kubernetes device plugin과 NVIDIA DRA driver가 포함되어 있지 않으므로 별도로 설치해야 합니다. 자세한 내용은 Manage NVIDIA GPUs on Amazon EKS를 참고하세요.

표준 EKS AMI 구성 요소에 더해 EKS 최적화 AL2023 NVIDIA AMI는 다음 구성 요소를 포함합니다.

  • NVIDIA driver
  • NVIDIA CUDA user mode driver
  • NVIDIA container toolkit
  • NVIDIA fabric manager
  • NVIDIA persistenced
  • NVIDIA IMEX driver
  • NVIDIA NVLink Subnet Manager
  • NVIDIA GDRCopy driver
  • EFA minimal (kernel module 및 rdma-core)

NVIDIA CUDA user mode driver와 애플리케이션 컨테이너에 사용되는 CUDA runtime/libraries에 대한 자세한 내용은 NVIDIA 문서를 참고하세요. nvidia-smi가 보여주는 CUDA 버전은 호스트에 설치된 NVIDIA CUDA user mode driver의 버전이며, 이는 애플리케이션 컨테이너에 사용되는 CUDA runtime/libraries와 호환되어야 해요.

EKS 최적화 AL2023 NVIDIA AMI는 Kubernetes 1.33~1.35 버전에 대해 kernel 6.12를, Kubernetes 1.36 이상 버전에 대해 kernel 6.18을 지원합니다. 하나의 AMI에 두 가지 NVIDIA 드라이버 버전이 포함돼 있어요.

각 노드는 첫 부팅 시 GPU에 적합한 드라이버를 자동으로 선택하고 수명 동안 해당 버전을 유지합니다. g7 인스턴스 유형은 NVIDIA 드라이버 버전 595 이상을 요구하고, 다른 모든 지원 GPU(g7e 포함)는 NVIDIA 드라이버 버전 580을 요구해요. 각 노드는 GPU에 따라 드라이버를 자동으로 선택하므로 드라이버 버전을 직접 구성할 필요가 없습니다.

현재 LTS(long-term support) 드라이버 버전은 580이고, production branch 드라이버 버전은 595예요. NVIDIA 580 드라이버는 CUDA 13+를 사용할 때 필요합니다.

AMI에 포함된 구성 요소 버전에 대한 자세한 내용은 GitHub의 EKS-optimized AL2023 releases를 참고하세요. EKS AMI가 NVIDIA 종속성을 구성하고 부팅 시 드라이버 버전을 선택하는 방법에 대한 자세한 내용은 EKS AL2023 NVIDIA AMI installation script와 driver resolution script를 참고해요. 실행 중인 EC2 인스턴스에서 dnf list installed 명령으로 설치된 패키지와 버전 목록을 확인할 수 있습니다.

EKS 최적화 AMI를 베이스로 사용자 정의 AMI를 빌드할 때는 운영체제 업그레이드(예: dnf upgrade)나 EKS 최적화 AMI에 포함된 Kubernetes·GPU 패키지 업그레이드를 실행하지 않는 것이 권장되며 지원되지 않아요. 이는 구성 요소 호환성이 깨질 위험이 있기 때문입니다. EKS 최적화 AMI에 포함된 운영체제나 패키지를 업그레이드한다면 프로덕션에 배포하기 전에 개발 또는 스테이징 환경에서 충분히 테스트하길 권장합니다.

GPU 인스턴스용 사용자 정의 AMI를 빌드할 때는 실행할 각 인스턴스 유형 세대와 패밀리마다 별도의 사용자 정의 AMI를 빌드하는 것이 좋아요. EKS 최적화 가속 AMI는 기본 인스턴스 유형 세대와 패밀리에 따라 런타임에 드라이버와 패키지를 선택적으로 설치합니다. 자세한 내용은 EKS AMI scripts for installation and runtime을 참고하세요.

EKS Bottlerocket NVIDIA AMI

EKS 최적화 Bottlerocket NVIDIA AMI와 함께 NVIDIA GPU operator를 사용할 때는 EKS AMI에 이미 포함되어 있으므로 operator의 드라이버·툴킷·device plugin 설치를 비활성화해야 해요.

표준 EKS AMI 구성 요소에 더해 EKS 최적화 Bottlerocket NVIDIA AMI는 다음 구성 요소를 포함합니다. EFA를 위한 최소 종속성(kernel module 및 rdma-core)은 모든 Bottlerocket 변형에 설치돼 있어요.

  • NVIDIA Kubernetes device plugin
  • NVIDIA driver
  • NVIDIA CUDA user mode driver
  • NVIDIA container toolkit
  • NVIDIA fabric manager
  • NVIDIA persistenced
  • NVIDIA IMEX driver
  • NVIDIA NVLink Subnet Manager
  • NVIDIA MIG manager

NVIDIA CUDA user mode driver와 애플리케이션 컨테이너에 사용되는 CUDA runtime/libraries에 대한 자세한 내용은 NVIDIA 문서를 참고하세요. nvidia-smi가 보여주는 CUDA 버전은 호스트에 설치된 NVIDIA CUDA user mode driver의 버전이며, 애플리케이션 컨테이너에 사용되는 CUDA runtime/libraries와 호환되어야 해요.

설치된 패키지와 버전에 대한 자세한 내용은 Bottlerocket 문서의 Bottlerocket Version Information을 참고하세요. EKS 최적화 Bottlerocket NVIDIA AMI는 Kubernetes 1.33~1.35 버전에 대해 kernel 6.12를, Kubernetes 1.36 이상 버전에 대해 kernel 6.18을 지원합니다. 이 AMI들은 Kubernetes 1.34 이상 버전에 대해 NVIDIA 드라이버 580 버전을 포함해요. NVIDIA 580 드라이버는 CUDA 13+를 사용할 때 필요합니다.

EKS 최적화 Neuron AMI

Amazon EKS에서 Neuron을 사용해 학습·추론 워크로드를 실행하는 방법에 대한 자세한 내용은 다음 참고 자료를 확인하세요.

  • AWS Neuron Documentation의 Containers - Kubernetes - Getting Started
  • GitHub의 AWS Neuron EKS Samples에 있는 Training example
  • Deploy ML inference workloads with Inferentia on Amazon EKS

최신 EKS 최적화 Neuron AMI를 찾으려면 Retrieve recommended Amazon Linux AMI IDs와 Retrieve recommended Bottlerocket AMI IDs 문서를 참고하세요.

EKS 최적화 AL2023 또는 Bottlerocket Neuron AMI와 함께 Amazon Elastic Fabric Adapter (EFA)를 사용하는 경우 EFA device plugin을 별도로 설치해야 해요. 자세한 내용은 Run machine learning training on Amazon EKS with Elastic Fabric Adapter를 참고하세요.

EKS AL2023 Neuron AMI

EKS 최적화 AL2023 Neuron AMI에는 Neuron DRA driver, Neuron Kubernetes device plugin, Neuron Kubernetes scheduler extension이 포함되어 있지 않으므로 별도로 설치해야 합니다. 자세한 내용은 Manage Neuron devices on Amazon EKS를 참고하세요.

표준 EKS AMI 구성 요소에 더해 EKS 최적화 AL2023 Neuron AMI는 다음 구성 요소를 포함합니다.

  • Neuron driver (aws-neuronx-dkms)
  • Neuron tools (aws-neuronx-tools)
  • EFA minimal (kernel module 및 rdma-core)

EKS AMI가 Neuron 종속성을 구성하는 방법에 대한 자세한 내용은 EKS AL2023 Neuron AMI installation script를 참고하세요. AMI에 포함된 구성 요소 버전은 GitHub의 EKS-optimized AL2023 releases에서 확인할 수 있어요. 실행 중인 EC2 인스턴스에서 dnf list installed 명령으로 설치된 패키지와 버전 목록을 확인할 수 있습니다.

EKS Bottlerocket Neuron AMI

표준 Bottlerocket 변형(aws-k8s)에는 AWS Inferentia 또는 Trainium EC2 인스턴스에서 실행될 때 자동으로 감지되고 로드되는 Neuron 종속성이 포함돼 있어요.

EKS 최적화 Bottlerocket AMI에는 Neuron DRA driver, Neuron Kubernetes device plugin, Neuron Kubernetes scheduler extension이 포함되어 있지 않으므로 별도로 설치해야 합니다. 자세한 내용은 Manage Neuron devices on Amazon EKS를 참고하세요.

표준 EKS AMI 구성 요소에 더해 EKS 최적화 Bottlerocket Neuron AMI는 다음 구성 요소를 포함합니다.

  • Neuron driver (aws-neuronx-dkms)
  • EFA minimal (kernel module 및 rdma-core)

EKS 최적화 Bottlerocket AMI를 Neuron 인스턴스와 함께 사용할 때는 Bottlerocket user-data에 다음을 구성해야 해요. 이 설정은 워크로드 사양에 제공된 runAsUser와 runAsGroup 값을 기준으로 컨테이너가 마운트된 Neuron 장치의 소유권을 갖도록 허용합니다. Bottlerocket에서 Neuron 지원에 대한 자세한 내용은 GitHub의 Quickstart on EKS readme를 참고하세요.

[settings]
[settings.kubernetes]
device-ownership-from-security-context = true

EKS 최적화 Bottlerocket AMI에 포함된 Neuron 드라이버 버전에 대한 정보는 Bottlerocket kernel kit changelog를 참고하세요.

더 알아보기 (Learn more)

출처: 문서