전공영역 공부 기록

GPU EKS optimized AMI를 사용하면 좋은 점

악분 2025. 5. 5. 00:39
반응형

EKS GPU optimized AMI

EKS에서 gpu 노드를 사용할 때, GPU optimized AMI를 사용하면 편리한 점이 있습니다. GPU optimized AMI에는 GPU 벤더사(예: NVIDIA)에 필요한 GPU 드라이버가 설치되어 있습니다.

예로 nvidia GPU optimized AMI를 사용한 EKS 노드에서는 nvidia GPU드라이버가 설치되어 있습니다. 따라서 nvidia-smi명령어를 별다른 설치 없이 바로 사용할 수 있습니다.

nvidia-smi

 

 

그리고 쿠버네티스에 pod에서 gpu를 사용할 수 있도록 하는 nvidia-container-toolkit도 설치되어 있습니다.

# amazon linux
rpm -qa | grep nvidia-container

 

 

아쉽지만 쿠버네티스 GPU device plugin는 별도로 설치해야 합니다.

 

GPU optimized AMI 찾는 방법

첫번째 방법은 AWS 콘솔에서 AMI를 검색하는 방법입니다.

# 검색 쿼리
# AL2023, nvidia 벤더, EKS 1.32버전
AMI name : amazon-eks-node-al2023-x86_64-nvidia-1.32

 

두번째 방법은 AWS CLI를 사용하는 방법입니다.

EKS_VERSION=1.32
REGION=ap-northeast-2
GPU_TYPE=nvidia

aws ssm get-parameter --name /aws/service/eks/optimized-ami/$EKS_VERSION/amazon-linux-2023/x86_64/$GPU_TYPE/recommended/image_id \
    --region $REGION --query "Parameter.Value" --output text

테라폼으로 배포할 때 주의 사항

AMI를 지정하게 되면 AMI type이 CUSTOM으로 됩니다.


AMI type이 CUSTOM이면, 기본 설정으로는 EKS 클러스터 조인이 안됩니다. 왜냐하면 EC2인스턴스 user data가 null이기 때문입니다. 정상적인 EKS AMI는 EKS 클러스터 조인 명령어가 user data가 있습니다.


강제로 AMI type을 EKS "AL2023_x86_64_NVIDIA"로 변경하면 terraform apply에러가 발생합니다. AMI를 지정하면 AMI type이 지정이 안되는 에러입니다. 더 정확히 설명하면 launch template에 AMI_ID를 지정하면 managed node group의 AMI 타입은 CUSTOM만 허용합니다.



위 에러 문제 해결방법은 2개입니다.

  1. EKS 클러스터 조인하는 user data를 생성
  2. AMI type과 release_version으로 우회

저는 2번째 방법인 AMI type과 release_version로 설정했습니다. AMI를 직접 지정하는 것과 동일한 효과를 얻습니다.

EKS AMI github 릴리즈 페이지에서 AMI type과 release_version을 찾을 수 있습니다.

 

테라폼 코드에서는 아래처럼 설정합니다.

release_version = "1.32.3-20250501",
ami_type        = "AL2023_x86_64_NVIDIA",

참고자료

반응형