

 **이 페이지 개선에 도움 주기** 

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 **GitHub에서 이 페이지 편집** 링크를 선택합니다.

# 최적화된 Amazon Linux AMI를 사용한 노드 생성
<a name="eks-optimized-ami"></a>

Amazon Elastic Kubernetes Service(Amazon EKS)는 Kubernetes 워커 노드 실행에 최적화된 특수 Amazon Machine Image(AMI)를 제공합니다. 이러한 EKS 최적화 Amazon Linux(AL) AMI는 클러스터 내에서 원활한 통합과 보안을 보장하기 위해 `kubelet`, AWS IAM Authenticator 및 `containerd`와 같은 필수 구성 요소로 사전 구성되어 있습니다. 이 가이드에서는 사용 가능한 AMI 버전을 자세히 설명하고 가속 컴퓨팅 및 Arm 기반 아키텍처에 대한 특수 옵션을 간략하게 설명합니다.

## 고려 사항
<a name="ami-considerations"></a>
+ 원하는 버전에 대한 탭을 선택하여 [Amazon Linux 보안 센터](https://alas.aws.amazon.com/)에서 Amazon Linux의 보안 또는 개인정보 보호 이벤트를 추적할 수 있습니다. 해당 RSS 피드를 구독할 수도 있습니다. 보안 및 프라이버시 이벤트에는 문제의 개요, 영향을 받는 패키지 및 인스턴스를 업데이트하여 문제를 해결하는 방법이 포함됩니다.
+ 가속 또는 Arm AMI를 배포하기 전에 [Amazon EKS 최적화 가속 Amazon Linux AMI](#gpu-ami) 및 [Amazon EKS 최적화 Arm Amazon Linux AMI](#arm-ami)의 정보를 검토하세요.
+ Amazon EC2 `P2` 인스턴스는 `NVIDIA` 드라이버 버전 470 이하가 필요하기 때문에 Amazon EKS에서 지원되지 않습니다.
+ 버전 `1.30` 이상의 클러스터부터 새로 생성되는 모든 관리형 노드 그룹은 자동으로 AL2023을 기본 노드 운영 체제로 사용합니다.

## Amazon EKS 최적화 가속 Amazon Linux AMI
<a name="gpu-ami"></a>

Amazon EKS 최적화 가속 Amazon Linux(AL) AMI는 표준 Amazon EKS 최적화 Amazon Linux AMI를 기반으로 빌드됩니다. 이는 GPU, [Inferentia](https://aws.amazon.com/machine-learning/inferentia/) 및 [Trainium](https://aws.amazon.com/machine-learning/trainium/) 기반 워크로드를 지원하기 위해 Amazon EKS 노드에 대한 선택적 이미지 역할을 하도록 구성되었습니다.

자세한 내용은 [GPU 인스턴스에 대해 EKS 최적화 가속 AMI 사용](ml-eks-optimized-ami.md) 섹션을 참조하세요.

## Amazon EKS 최적화 Arm Amazon Linux AMI
<a name="arm-ami"></a>

Arm 인스턴스는 웹 서버, 컨테이너식 마이크로서비스, 캐싱 플릿 및 분산 데이터 스토어와 같은 스케일 아웃 및 Arm 기반 애플리케이션에 상당한 비용 절감 효과를 제공합니다. 클러스터에 Arm 노드를 추가할 때 다음 고려 사항을 검토하세요.
+ 클러스터가 2020년 8월 17일 이전에 배포된 경우 중요한 클러스터 추가 기능 매니페스트의 일회성 업그레이드를 수행해야 합니다. 이는 Kubernetes가 클러스터에서 사용 중인 각 하드웨어 아키텍처에 대해 올바른 이미지를 가져올 수 있도록 하기 위한 것입니다. 클러스터 추가 기능을 업데이트하는 방법에 대한 자세한 내용은 [1단계: 업그레이드 준비](update-cluster.md#update-existing-cluster) 부분을 참조하세요. 2020년 8월 17일 또는 이후에 클러스터를 배포한 경우는 이미 CoreDNS, `kube-proxy` 및 Kubernetes용 Amazon VPC CNI 플러그인이 다중 아키텍처를 지원합니다.
+ Arm 노드에 배포된 애플리케이션은 Arm용으로 컴파일되어야 합니다.
+ 기존 클러스터에 배포된 DaemonSet이 있거나, Arm 노드도 배포할 새 클러스터에 DaemonSet을 배포하려는 경우 DaemonSet이 클러스터의 모든 하드웨어 아키텍처에서 실행될 수 있는지 확인합니다.
+ 동일한 클러스터에서 Arm 노드 그룹과 x86 노드 그룹을 실행할 수 있습니다. 이 경우에 다중 아키텍처 컨테이너 이미지를 Amazon Elastic Container Registry와 같은 컨테이너 리포지토리에 배포한 다음, 매니페스트에 노드 선택기를 추가하여 어떤 하드웨어에 포드를 배포할 수 있는지 Kubernetes가 알 수 있도록 해야 합니다. 자세한 내용은 *Amazon ECR 사용 설명서*의 [다중 아키텍처 이미지 푸시](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-multi-architecture-image.html) 및 [Amazon ECR용 다중 아키텍처 컨테이너 이미지 소개](https://aws.amazon.com/blogs/containers/introducing-multi-architecture-container-images-for-amazon-ecr) 블로그 게시물을 참조하세요.

## 추가 정보
<a name="linux-more-information"></a>

Amazon EKS 최적화 Amazon Linux AMI 사용에 대한 자세한 내용은 다음 섹션을 참조하세요.
+ 관리형 노드 그룹과 함께 Amazon Linux를 사용하려면 [관리형 노드 그룹을 사용한 노드 수명 주기 간소화](managed-node-groups.md) 섹션을 참조하세요.
+ 자체 관리형 Amazon Linux 노드를 시작하려면 [권장 Amazon Linux AMI ID 검색](retrieve-ami-id.md) 섹션을 참조하세요.
+ 버전 정보는 [Amazon Linux AMI 버전 정보 검색](eks-linux-ami-versions.md)를 참조하세요.
+ Amazon EKS 최적화 Amazon Linux AMI의 최신 ID를 검색하려면 [권장 Amazon Linux AMI ID 검색](retrieve-ami-id.md) 섹션을 참조하세요.
+ Amazon EKS 최적화 AMI를 빌드하는 데 사용되는 오픈 소스 스크립트는 [사용자 지정 ECS 최적화 Amazon Linux AMI 빌드](eks-ami-build-scripts.md) 섹션을 참조하세요.

# Amazon Linux 2에서 Amazon Linux 2023으로 업그레이드
<a name="al2023"></a>

**주의**  
Amazon EKS는 2025년 11월 26일 이후 더 이상 EKS 최적화 Amazon Linux 2(AL2) AMI 게시를 중지했습니다. Amazon EKS에 대한 AL2023 및 Bottlerocket 기반 AMI는 1.33 이상을 포함하여 지원되는 모든 Kubernetes 버전에서 사용할 수 있습니다.

AL2023은 클라우드 애플리케이션에 안전하고 안정적이면서 고성능의 환경을 제공하도록 설계된 Linux 기반 운영 체제입니다. Amazon Web Services의 차세대 Amazon Linux로, 지원되는 모든 Amazon EKS 버전에서 사용할 수 있습니다.

AL2023은 AL2에 비해 몇 가지 향상된 기능을 제공합니다. 전체 비교는 **Amazon Linux 2023 사용 설명서의 [AL2와 Amazon Linux 2023 비교](https://docs.aws.amazon.com/linux/al2023/ug/compare-with-al2.html)를 참조하세요. AL2에서 여러 패키지가 추가, 업그레이드 및 제거되었습니다. 업그레이드하기 전에 AL2023 버전으로 애플리케이션을 테스트하는 것이 좋습니다. AL2023 패키지의 모든 변경 사항 목록은 **Amazon Linux 2023 릴리스 정보의 [Amazon Linux 2023의 패키지 변경 사항](https://docs.aws.amazon.com/linux/al2023/release-notes/compare-packages.html)을 참조하세요.

이러한 변경 사항 외에도 다음 사항을 숙지해야 합니다.
+ AL2023에 YAML 구성 스키마를 사용하는 새로운 노드 초기화 프로세스 `nodeadm`이 도입됩니다. 자체 관리형 노드 그룹 또는 시작 템플릿이 있는 AMI를 사용하는 경우 이제 새 노드 그룹을 생성할 때 추가 클러스터 메타데이터를 명시적으로 제공해야 합니다. 최소 필수 파라미터의 [예시](https://awslabs.github.io/amazon-eks-ami/nodeadm/)는 다음과 같으며, 여기에서 `apiServerEndpoint`, `certificateAuthority` 및 서비스 `cidr`가 필수입니다.

  ```
  ---
  apiVersion: node.eks.aws/v1alpha1
  kind: NodeConfig
  spec:
    cluster:
      name: my-cluster
      apiServerEndpoint: https://example.com
      certificateAuthority: Y2VydGlmaWNhdGVBdXRob3JpdHk=
      cidr: 10.100.0.0/16
  ```

  AL2에서 이러한 파라미터의 메타데이터는 Amazon EKS `DescribeCluster` API 직접 호출에서 확인되었습니다. AL2023 버전에서는 대형 노드 스케일 업 도중 추가 API 직접 호출로 인해 제한이 발생할 위험이 있기 때문에 이러한 동작이 변경되었습니다. 시작 템플릿이 없는 관리형 노드 그룹을 사용하거나 Karpenter를 사용하는 경우 이 변경 사항이 영향을 미치지 않습니다. `certificateAuthority` 및 서비스 `cidr`에 대한 자세한 내용은 *Amazon EKS API 참조*의 [https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeCluster.html](https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeCluster.html)를 참조하세요.
+ AL2023의 경우 `nodeadm`은 각 노드에 대해 [https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)을 사용하여 파라미터를 `kubelet`에 적용하도록 형식도 변경합니다. AL2에서는 `--kubelet-extra-args` 파라미터를 사용하여 이 작업을 수행했습니다. 이는 일반적으로 노드에 레이블과 테인트를 추가하는 데 사용됩니다. 아래 예제는 노드에 `maxPods` 및 `--node-labels`를 적용하는 방법을 보여줍니다.

  ```
  ---
  apiVersion: node.eks.aws/v1alpha1
  kind: NodeConfig
  spec:
    cluster:
      name: test-cluster
      apiServerEndpoint: https://example.com
      certificateAuthority: Y2VydGlmaWNhdGVBdXRob3JpdHk=
      cidr: 10.100.0.0/16
    kubelet:
      config:
        maxPods: 110
      flags:
        - --node-labels=karpenter.sh/capacity-type=on-demand,karpenter.sh/nodepool=test
  ```
+ AL2023의 경우 Amazon VPC CNI 버전 `1.16.2` 이상이 필요합니다.
+ AL2023의 필수 기본값은 `IMDSv2`입니다. `IMDSv2`에는 보안 태세 개선에 도움이 되는 몇 가지 이점이 있습니다. 세션을 시작하려면 간단한 HTTP PUT 요청으로 비밀 토큰을 생성해야 하는 세션 지향 인증 방법을 사용합니다. 세션의 토큰은 1초에서 6시간 사이로 유효할 수 있습니다. `IMDSv1`에서 `IMDSv2`로 전환하는 방법에 대한 자세한 내용은 [인스턴스 메타데이터 서비스 버전 2 사용으로 전환](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-transition-to-version-2.html) 및 [Get the full benefits of IMDSv2 and disable IMDSv1 across your AWS infrastructure](https://aws.amazon.com/blogs/security/get-the-full-benefits-of-imdsv2-and-disable-imdsv1-across-your-aws-infrastructure)를 참조하세요. `IMDSv1`을 사용하려는 경우 인스턴스 메타데이터 옵션 시작 속성을 사용하여 설정을 수동으로 재정의하면 계속 사용할 수 있습니다.
**참고**  
AL2023을 사용하는 `IMDSv2`의 경우 관리형 노드 그룹의 기본 홉 수가 다를 수 있습니다.  
시작 템플릿을 사용하지 않을 때 기본값은 `1`로 설정됩니다. 따라서 컨테이너는 IMDS를 사용하여 노드의 자격 증명에 액세스할 수 없습니다. 노드의 자격 증명에 대한 컨테이너 액세스가 필요한 경우에도 [사용자 지정 Amazon EC2 시작 템플릿](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-metadataoptions.html)을 사용하면 가능합니다.
시작 템플릿에서 사용자 지정 AMI를 사용할 때 `HttpPutResponseHopLimit` 기본값은 `2`로 설정됩니다. 시작 템플릿에서 `HttpPutResponseHopLimit`를 수동으로 재정의할 수 있습니다.
또는 [Amazon EKS Pod Identity](pod-identities.md)를 사용하여 `IMDSv2` 대신 자격 증명을 제공할 수 있습니다.
+ AL2023에는 차세대 통합 제어 그룹 계층 구조(`cgroupv2`)가 있습니다. `cgroupv2`는 컨테이너 런타임을 구현하는 데 사용되며, `systemd`에 따라 사용됩니다. AL2023에 시스템이 `cgroupv1`을 사용하여 실행하도록 할 수 있는 코드가 포함되어 있지만 이 구성은 권장되거나 지원되지 않습니다. 이 구성은 Amazon Linux의 향후 메이저 릴리스에서 완전히 제거될 예정입니다.
+  `eksctl`이 AL2023을 지원하려면 `eksctl` 버전 `0.176.0` 이상이 필요합니다.

기존 관리형 노드 그룹의 경우 시작 템플릿을 사용하는 방식에 따라 인플레이스 업그레이드 또는 블루/그린 업그레이드를 수행할 수 있습니다.
+ 관리형 노드 그룹에서 사용자 지정 AMI를 사용하는 경우 시작 템플릿에서 AMI ID를 교체하여 인플레이스 업그레이드를 수행할 수 있습니다. 이 업그레이드 전략을 수행하기 전에 먼저 애플리케이션과 사용자 데이터가 AL2023으로 전송되는지 확인해야 합니다.
+ 표준 시작 템플릿 또는 AMI ID를 지정하지 않은 사용자 지정 시작 템플릿에서 관리형 노드 그룹을 사용하는 경우 블루/그린 전략을 사용하여 업그레이드해야 합니다. 블루/그린 업그레이드는 대체로 더 복잡하고 AMI 유형으로 AL2023을 지정하는 완전히 새로운 노드 그룹을 생성해야 합니다. 이후 AL2 노드 그룹의 모든 사용자 지정 데이터가 새 OS와 호환되도록 새 노드 그룹을 신중하게 구성해야 합니다. 애플리케이션에서 새 노드 그룹을 테스트하고 검증한 후에는 이전 노드 그룹에서 새 노드 그룹으로 포드를 마이그레이션할 수 있습니다. 마이그레이션이 완료되면 이전 노드 그룹을 삭제할 수 있습니다.

Karpenter를 사용 중이고 AL2023을 사용하려는 경우 `EC2NodeClass` `amiFamily` 필드를 AL2023으로 수정해야 합니다. 기본적으로 드리프트는 Karpenter에서 활성화됩니다. 따라서 `amiFamily` 필드가 변경되면 Karpenter에서 사용 가능할 때 워커 노드를 최신 AMI로 자동으로 업데이트합니다.

## nodeadm에 대한 추가 정보
<a name="_additional_information_about_nodeadm"></a>

EKS 최적화 Amazon Linux 2023 AMI를 사용하거나 공식 amazon-eks-ami GitHub 리포지토리에 제공된 Packer 스크립트를 통해 사용자 지정 EKS Amazon Linux 2023 AMI를 빌드하는 경우 EC2 사용자 데이터 내에서 또는 사용자 지정 AMI의 일부로 nodeadm init를 명시적으로 실행해서는 안 됩니다.

user-data에서 동적 NodeConfig를 생성하려면 해당 구성을 `/etc/eks/nodeadm.d`의 드롭인 yaml 또는 json 파일에 쓸 수 있습니다. 이러한 구성 파일은 nodeadm init가 부팅 프로세스의 후반부에서 자동으로 시작될 때 병합되어 노드에 적용됩니다. 예제:

```
cat > /etc/eks/nodeadm.d/additional-node-labels.yaml << EOF
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
  kubelet:
    flags:
      - --node-labels=foo=bar
EOF
```

EKS 최적화 Amazon Linux 2023 AMI는 별도의 systemd 서비스를 통해 2단계로 nodeadm init를 자동으로 실행합니다(nodeadm-config는 사용자 데이터 실행 전에 실행되지만, nodeadm-run은 이후에 실행됨). nodeadm-config 서비스는 사용자 데이터가 실행되기 전에 Containered 및 kubelet에 대한 기준 구성을 설정합니다. nodeadm-run 서비스는 시스템 선택 대몬을 실행하고 사용자 데이터 실행 후 최종 구성을 완료합니다. nodeadm init 명령이 사용자 데이터 또는 사용자 지정 AMI를 통해 추가적으로 실행되는 경우 실행 순서에 대한 가정을 위반할 수 있으며 이로 인해 잘못 구성된 ENI와 같이 예상치 못한 결과로 이어질 수 있습니다.

# Amazon Linux AMI 버전 정보 검색
<a name="eks-linux-ami-versions"></a>

Amazon EKS 최적화 Amazon Linux AMI는 Kubernetes 버전과 AMI의 출시 날짜에 따라 다음 형식으로 버전이 지정됩니다.

```
k8s_major_version.k8s_minor_version.k8s_patch_version-release_date
```

각 AMI 릴리스에는 다양한 버전의 [kubelet](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/), Linux 커널 및 [containerd](https://containerd.io/).가 포함되어 있습니다. 가속 AMI에는 다양한 버전의 NVIDIA 드라이버도 포함되어 있습니다. 이 버전 정보는 GitHub의 [Changelog](https://github.com/awslabs/amazon-eks-ami/blob/main/CHANGELOG.md)에서 확인할 수 있습니다.

# 권장 Amazon Linux AMI ID 검색
<a name="retrieve-ami-id"></a>

노드를 배포할 때 사전 구축된 Amazon EKS 최적화 Amazon Machine Image(AMI)의 ID를 지정할 수 있습니다. 원하는 구성에 적합한 AMI ID를 검색하려면 AWS Systems Manager Parameter Store API를 쿼리합니다. 이 API를 사용하면 Amazon EKS 최적화 AMI ID를 수동으로 조회할 필요가 없습니다. 자세한 내용은 [GetParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html)를 참조하세요. Amazon EKS 최적화 AMI 메타데이터를 검색하려면 [IAM 보안 주체](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)에 `ssm:GetParameter` IAM 권한이 있어야 합니다.

하위 파라미터 `image_id`를 사용하는 다음 명령을 사용하여 최신 권장 Amazon EKS에 최적화된 Amazon Linux AMI의 이미지 ID를 검색할 수 있습니다. 필요에 따라 명령을 다음과 같이 수정한 다음에 수정한 명령을 실행합니다.
+ `<kubernetes-version>`을 [Amazon EKS 지원 버전](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html)으로 바꿉니다.
+ *ami-type*를 다음 옵션 중 하나로 변경합니다. Amazon EC2 인스턴스 유형에 대한 자세한 내용은 [Amazon EC2 인스턴스 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)을 참조하세요.
  + Amazon Linux 2023(AL2023) `x86` 기반 인스턴스에는 *amazon-linux-2023/x86\$164/standard*를 사용합니다.
  + [AWS Graviton](https://aws.amazon.com/ec2/graviton/) 기반 인스턴스와 같은 AL2023 ARM 인스턴스에는 *amazon-linux-2023/arm64/standard*를 사용합니다.
  + 승인된 최신 AL2023 NVIDIA `x86` 기반 인스턴스에 *amazon-linux-2023/x86\$164/nvidia*를 사용합니다.
  + 승인된 최신 AL2023 NVIDIA `arm64` 기반 인스턴스에 *amazon-linux-2023/arm64/nvidia*를 사용합니다.
  + 최신 AL2023 [AWS Neuron](https://aws.amazon.com/machine-learning/neuron/) 인스턴스에는 *amazon-linux-2023/x86\$164/neuron*을 사용하세요.
+ `<region-code>`를 AMI ID를 원하는 [Amazon EKS 지원 AWS 리전](https://docs.aws.amazon.com/general/latest/gr/eks.html)으로 변경합니다.

```
aws ssm get-parameter --name /aws/service/eks/optimized-ami/<kubernetes-version>/<ami-type>/recommended/image_id \
    --region <region-code> --query "Parameter.Value" --output text
```

다음은 자리 표시자를 대체한 후의 명령 예제입니다.

```
aws ssm get-parameter --name /aws/service/eks/optimized-ami/1.31/amazon-linux-2023/x86_64/standard/recommended/image_id \
    --region us-west-2 --query "Parameter.Value" --output text
```

예제 출력은 다음과 같습니다.

```
ami-1234567890abcdef0
```

# 사용자 지정 ECS 최적화 Amazon Linux AMI 빌드
<a name="eks-ami-build-scripts"></a>

**주의**  
Amazon EKS는 2025년 11월 26일 이후 더 이상 EKS 최적화 Amazon Linux 2(AL2) AMI 게시를 중지했습니다. Amazon EKS에 대한 AL2023 및 Bottlerocket 기반 AMI는 1.33 이상을 포함하여 지원되는 모든 Kubernetes 버전에서 사용할 수 있습니다.

Amazon EKS는 `kubelet`에 대한 구성, AWS IAM Authenticator for Kubernetes를 보고 고유한 AL 기반 AMI를 처음부터 빌드하기 위해 사용할 수 있는 오픈 소스 빌드 스크립트를 [Amazon EKS AMI 빌드 사양](https://github.com/awslabs/amazon-eks-ami) 리포지토리에 제공합니다.

이 리포지토리에는 부팅 시 실행되는 특수 [AL2용 부트스트랩 스크립트](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2/runtime/bootstrap.sh)와 [AL2023용 nodeadm 도구](https://awslabs.github.io/amazon-eks-ami/nodeadm/)가 포함되어 있습니다. 이러한 스크립트는 인스턴스의 인증서 데이터, 컨트롤 플레인 엔드포인트, 클러스터 이름 등을 구성합니다. 스크립트는 Amazon EKS 최적화 AMI 빌드의 신뢰할 수 있는 소스로 간주되므로 GitHub 리포지토리를 따라 AMI에 대한 변경을 모니터링할 수 있습니다.

EKS 최적화 AMI를 기반으로 사용자 지정 AMI를 빌드하는 경우 운영 체제 업그레이드(즉, `dnf upgrade`)를 실행하거나 EKS 최적화 AMI에 포함된 Kubernetes 또는 GPU 패키지를 업그레이드하는 것이 지원되지 않거나 권장되지 않습니다. 이 경우 구성 요소 호환성을 위반할 위험이 있기 때문입니다. EKS 최적화 AMI에 포함된 운영 체제 또는 패키지를 업그레이드하는 경우 프로덕션에 배포하기 전에 개발 또는 스테이징 환경에서 철저히 테스트하는 것이 좋습니다.

GPU 인스턴스에 대한 사용자 지정 AMI를 빌드하는 경우 실행할 각 인스턴스 유형 생성 및 패밀리에 대해 별도의 사용자 지정 AMI를 빌드하는 것이 좋습니다. EKS 최적화 가속 AMI는 기본 인스턴스 유형 생성 및 패밀리를 기반으로 런타임에 드라이버와 패키지를 선택적으로 설치합니다. 자세한 내용은 EKS AMI 스크립트에서 [installation](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2023/provisioners/install-nvidia-driver.sh) 및 [runtime](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2023/runtime/gpu/nvidia-kmod-load.sh)을 참조하세요.

## 사전 조건
<a name="_prerequisites"></a>
+  [AWS CLI 설치](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) 
+  [HashiCorp Packer v1.9.4\$1 설치](https://developer.hashicorp.com/packer/downloads) 
+  [GNU Make 설치](https://www.gnu.org/software/make/) 

## 빠른 시작
<a name="_quickstart"></a>

이 빠른 시작에서는 AWS 계정에서 사용자 지정 AMI를 생성하는 명령을 보여줍니다. AMI를 사용자 지정하는 데 사용할 수 있는 구성에 대한 자세한 내용은 [Amazon Linux 2023](https://awslabs.github.io/amazon-eks-ami/usage/al2023/) 페이지의 템플릿 변수를 참조하세요.

### 사전 조건
<a name="_prerequisites_2"></a>

필요한 [Amazon 플러그인](https://developer.hashicorp.com/packer/integrations/hashicorp/amazon)을 설치합니다. 예제:

```
packer plugins install github.com/hashicorp/amazon
```

### 1단계. 환경 설정
<a name="_step_1_setup_your_environment"></a>

공식 Amazon EKS AMI 리포지토리를 복제하거나 포크합니다. 예제:

```
git clone https://github.com/awslabs/amazon-eks-ami.git
cd amazon-eks-ami
```

Packer가 설치되어 있는지 확인합니다.

```
packer --version
```

### 2단계. 사용자 지정 AMI를 생성
<a name="_step_2_create_a_custom_ami"></a>

다음은 다양한 사용자 지정 AMI에 대한 명령의 예입니다.

 **기본 NVIDIA AL2 AMI:** 

```
make k8s=1.31 os_distro=al2 \
  enable_accelerator=nvidia \
  nvidia_driver_major_version=560 \
  enable_efa=true
```

 **기본 NVIDIA AL2023 AMI:** 

```
make k8s=1.31 os_distro=al2023 \
  enable_accelerator=nvidia \
  nvidia_driver_major_version=560 \
  enable_efa=true
```

 **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가 다음을 수행합니다. \$1 임시 Amazon EC2 인스턴스를 시작합니다. \$1 Kubernetes 구성 요소, 드라이버 및 구성을 설치합니다. \$1 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
```

### 3단계. 기본값 보기
<a name="_step_3_view_default_values"></a>

기본값과 추가 옵션을 보려면 다음 명령을 실행합니다.

```
make help
```