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개입니다.
- EKS 클러스터 조인하는 user data를 생성
- AMI type과 release_version으로 우회
저는 2번째 방법인 AMI type과 release_version로 설정했습니다. AMI를 직접 지정하는 것과 동일한 효과를 얻습니다.
EKS AMI github 릴리즈 페이지에서 AMI type과 release_version을 찾을 수 있습니다.
- EKS AMI github 릴리즈 페이지: https://github.com/awslabs/amazon-eks-ami/releases
테라폼 코드에서는 아래처럼 설정합니다.
release_version = "1.32.3-20250501",
ami_type = "AL2023_x86_64_NVIDIA",
참고자료
'전공영역 공부 기록' 카테고리의 다른 글
github copilot 프롬프트를 파일로 작성해서 실행하는 방법(prompt files) (0) | 2025.05.24 |
---|---|
모니터링 방법론 RED method와 USE method (0) | 2025.05.11 |
EKS 업데이트 뉴스: 커뮤니티 애드온 카탈로그 도입 (0) | 2025.05.03 |
쿠버네티스에 설정한 probe가 어떻게 실행되는지 알아야하는 이유 (0) | 2025.05.01 |
Gemini pro 2.5, chatGPT 둘 중 데브옵스 질문 답변을 잘할까? (0) | 2025.04.27 |