사용자 지정 EKS 최적화 Amazon Linux AMI 구축
사용자 지정 EKS 최적화 Amazon Linux AMI 구축
Amazon EKS AMI Build Specification 저장소의 오픈 소스 빌드 스크립트로 사용자 지정 AL 기반 AMI를 구축하는 방법을 설명합니다.
출처: 문서
본문
경고
Amazon EKS는 2025년 11월 26일에 EKS 최적화 Amazon Linux 2(AL2) AMI 게시를 중단했습니다. Amazon EKS용 AL2023 및 Bottlerocket 기반 AMI는 1.33 이상을 포함한 모든 지원 Kubernetes 버전에서 사용할 수 있습니다.
Amazon EKS는 Amazon EKS AMI Build Specification 저장소에 오픈 소스 빌드 스크립트를 제공합니다. 이를 사용하여 kubelet, 런타임, Kubernetes용 AWS IAM Authenticator의 구성을 확인하고 처음부터 자신만의 AL 기반 AMI를 구축할 수 있습니다.
이 저장소에는 부팅 시 실행되는 AL2용 특수 부트스트랩 스크립트와 AL2023용 nodeadm 도구가 포함되어 있습니다. 이 스크립트는 인스턴스의 인증서 데이터, 컨트롤 플레인 엔드포인트, 클러스터 이름 등을 구성합니다. 이 스크립트는 Amazon EKS 최적화 AMI 빌드의 진실의 원천(source of truth)으로 간주되므로 GitHub 저장소를 팔로우하여 AMI에 대한 변경 사항을 모니터링할 수 있습니다.
EKS 최적화 AMI를 기본으로 사용자 지정 AMI를 구축할 때 운영 체제 업그레이드(예: dnf upgrade)나 EKS 최적화 AMI에 포함된 Kubernetes 또는 GPU 패키지를 업그레이드하는 것은 권장되지 않으며 지원되지 않습니다. 구성 요소 호환성이 깨질 위험이 있기 때문입니다. EKS 최적화 AMI에 포함된 운영 체제나 패키지를 업그레이드한다면 프로덕션에 배포하기 전에 개발 또는 스테이징 환경에서 철저히 테스트할 것을 권장합니다.
GPU 인스턴스용 사용자 지정 AMI를 구축할 때는 실행할 각 인스턴스 유형 세대와 패밀리별로 별도의 사용자 지정 AMI를 구축할 것을 권장합니다. EKS 최적화 가속 AMI는 기본 인스턴스 유형 세대와 패밀리에 따라 런타임에 드라이버와 패키지를 선택적으로 설치합니다. 자세한 내용은 설치 및 런타임용 EKS AMI 스크립트를 참조하세요.
사전 요구 사항
- AWS CLI 설치
- HashiCorp Packer v1.9.4+ 설치
- GNU Make 설치
- 필수 Amazon 플러그인을 설치합니다.
packer plugins install github.com/hashicorp/amazon
- Packer가 설치되었는지 확인합니다.
packer --version
- 공식 Amazon EKS AMI 저장소를 복제(또는 포크)합니다.
git clone https://github.com/awslabs/amazon-eks-ami.git
cd amazon-eks-ami
- 기본값과 추가 옵션을 보려면 다음 명령을 실행합니다. AMI를 사용자 지정하는 데 사용할 수 있는 구성에 대해 자세히 알아보려면 Amazon Linux 2023 페이지의 템플릿 변수를 참조하세요.
make help
사용자 지정 AMI 만들기
다음은 다양한 사용자 지정 AMI에 대한 예시 명령입니다.
EKS NVIDIA AL2 AMI
make k8s=1.32 os_distro=al2 \
enable_accelerator=nvidia \
nvidia_driver_major_version=580 \
enable_efa=true
EKS NVIDIA AL2023 AMI
make k8s=1.36 os_distro=al2023 \
enable_accelerator=nvidia \
nvidia_driver_major_version=580 \
enable_efa=true
사용자 지정 드라이버 버전이 있는 EKS NVIDIA AL2023 AMI
EKS 최적화 AL2023 NVIDIA AMI는 단일 이미지에 두 가지 NVIDIA 드라이버 버전을 번들합니다. 각 노드는 부팅 시 GPU에 적합한 드라이버를 자동으로 선택합니다. EKS AL2023 AMI 버전 v20260917 기준으로 LTS(장기 지원) 버전은 580이고 프로덕션 분기 버전은 595이며, 이 두 버전이 모든 EC2 GPU 인스턴스 유형을 지원합니다. 기본 버전을 재정의하려면 nvidia_driver_lts_version과 nvidia_driver_pb_version을 함께 설정하세요.
make k8s=1.36 os_distro=al2023 \
enable_accelerator=nvidia \
nvidia_driver_lts_version=580 \
nvidia_driver_pb_version=610 \
enable_efa=true
참고
EKS AL2023 AMI의 NVIDIA 드라이버 선택 논리는 런타임에 실행되지만, AMI가 가속 EC2 인스턴스에서 구축되면 일찍 활성화됩니다. 따라서 NVIDIA 드라이버 580을 기본값으로 하는 가속 EC2 인스턴스(예:
g6또는g7e)에서 사용자 지정 AMI를 구축하면, 더 최신 NVIDIA 드라이버 버전이 필요한 가속 EC2 인스턴스(예: 드라이버 595가 필요한g7)에는 해당 사용자 지정 AMI를 배포할 수 없습니다. 이를 피하려면 비가속 EC2 인스턴스(예:m6)에서 사용자 지정 AMI를 구축한 다음 어떤 가속 EC2 인스턴스에도 배포하세요. 이 접근 방식은 EKS AL2023 AMI의 NVIDIA 드라이버 선택 논리를 보존합니다.
STIG 규정 준수 Neuron AL2023 AMI
make k8s=1.31 os_distro=al2023 \
enable_accelerator=neuron \
enable_fips=true \
source_ami_id=ami-0abcd1234efgh5678 \
kms_key_id=alias/aws-stig
이 명령들을 실행한 후 Packer는 다음을 수행합니다.
- 임시 Amazon EC2 인스턴스를 시작합니다.
- Kubernetes 구성 요소, 드라이버, 구성을 설치합니다.
- AWS 계정에 AMI를 만듭니다.
예상 출력은 다음과 같아야 합니다.
==> Wait completed after 8 minutes 42 seconds
==> Builds finished. The artifacts of successful builds are:
--> amazon-ebs: AMIs were created:
us-west-2: ami-0e139a4b1a7a9a3e9
--> amazon-ebs: AMIs were created:
us-west-2: ami-0e139a4b1a7a9a3e9
--> amazon-ebs: AMIs were created:
us-west-2: ami-0e139a4b1a7a9a3e9