

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 사용자 지정 AMI 지원
<a name="custom-ami-support"></a>

## 노드 AMI ID 설정
<a name="_setting_the_node_ami_id"></a>

`--node-ami` 플래그를 사용하면 사용자 지정 AMI를 사용하거나 AWS를 실시간으로 쿼리하여 사용할 AMI를 결정하는 등 다양한 고급 사용 사례를 사용할 수 있습니다. 플래그는 GPU가 아닌 이미지와 GPU 이미지 모두에 사용할 수 있습니다.

플래그는 명시적으로 사용할 이미지의 AMI 이미지 ID를 가져올 수 있습니다. 또한 다음과 같은 '특수' 키워드를 사용할 수 있습니다.


| 키워드 | 설명 | 
| --- | --- | 
|  auto  |  AWS EC2를 쿼리하여 노드에 사용할 AMI를 찾아야 함을 나타냅니다. 이는 자동 해석기와 관련이 있습니다.  | 
|  auto-ssm  |  AWS SSM 파라미터 스토어를 쿼리하여 노드에 사용할 AMI를 찾아야 함을 나타냅니다.  | 

**참고**  
현재 EKS 관리형 노드 그룹은 사용자 지정 AMI로 작업할 때 , `AmazonLinux2023`, `AmazonLinux2`, `Bottlerocket`, 및 AMIs 패밀리만 지원합니다`Ubuntu2004`. `UbuntuPro2004` `Ubuntu2204` `Ubuntu2404` 

`--node-ami`를 ID 문자열로 설정할 때 `eksctl`는 사용자 지정 AMI가 요청되었다고 가정합니다. EKS 관리형 노드와 자체 관리형 노드인 AmazonLinux2 및 Ubuntu 노드의 경우 `overrideBootstrapCommand`가 필요합니다. AmazonLinux2023의 경우 노드 부트스트래핑에 대한 `/etc/eks/bootstrap.sh` 스크립트 사용을 중지하므로 nodeadm 초기화 프로세스(자세한 내용은 [노드 부트스트래핑 문서](https://github.com/eksctl-io/eksctl/blob/main/pkg/nodebootstrap/README.md) 참조)`overrideBootstrapCommand`에 유리하게 지원되지 않습니다.

CLI 플래그 예제:

```
eksctl create cluster --node-ami=auto

# with a custom ami id
eksctl create cluster --node-ami=ami-custom1234
```

Config 파일 예제:

```
nodeGroups:
  - name: ng1
    instanceType: p2.xlarge
    amiFamily: AmazonLinux2
    ami: auto
  - name: ng2
    instanceType: m5.large
    amiFamily: AmazonLinux2
    ami: ami-custom1234
managedNodeGroups:
  - name: m-ng-2
    amiFamily: AmazonLinux2
    ami: ami-custom1234
    instanceType: m5.large
    overrideBootstrapCommand: |
      #!/bin/bash
      /etc/eks/bootstrap.sh <cluster-name>
```

`--node-ami` 플래그는 에서도 사용할 수 있습니다`eksctl create nodegroup`.

## 노드 AMI 패밀리 설정
<a name="_setting_the_node_ami_family"></a>

는 다음 키워드를 사용할 `--node-ami-family` 수 있습니다.


| 키워드 | 설명 | 
| --- | --- | 
|  AmazonLinux2  |  Amazon Linux 2 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다(기본값).  | 
|  AmazonLinux2023  |  Amazon Linux 2023 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다.  | 
|  Ubuntu2004  |  Ubuntu 20.04 LTS(Focal) 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다(EKS """ 1.29 지원).  | 
|  UbuntuPro2004  |  Ubuntu Pro 20.04 LTS(Focal) 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다(EKS >= 1.27, "" 1.29에 사용 가능).  | 
|  Ubuntu2204  |  Ubuntu 22.04 LTS(Jammy) 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다(EKS >= 1.29에 사용 가능).  | 
|  UbuntuPro2204  |  Ubuntu Pro 22.04 LTS(Jammy) 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다(EKS >= 1.29에 사용 가능).  | 
|  Ubuntu2404  |  Ubuntu 24.04 LTS(Noble) 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다(EKS >= 1.31에 사용 가능).  | 
|  UbuntuPro2404  |  Ubuntu Pro 24.04 LTS(Noble) 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다(EKS >= 1.31에 사용 가능).  | 
|  Bottlerocket  |  Bottlerocket 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다.  | 
|  WindowsServer2019FullContainer  |  Windows Server 2019 Full Container 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다.  | 
|  WindowsServer2019CoreContainer  |  Windows Server 2019 Core Container 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다.  | 
|  WindowsServer2022FullContainer  |  Windows Server 2022 Full Container 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다.  | 
|  WindowsServer2022CoreContainer  |  Windows Server 2022 Core Container 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다.  | 

CLI 플래그 예제:

```
eksctl create cluster --node-ami-family=AmazonLinux2
```

Config 파일 예제:

```
nodeGroups:
  - name: ng1
    instanceType: m5.large
    amiFamily: AmazonLinux2
managedNodeGroups:
  - name: m-ng-2
    instanceType: m5.large
    amiFamily: Ubuntu2204
```

`--node-ami-family` 플래그는 에서도 사용할 수 있습니다`eksctl create nodegroup`. `eksctl`에서는 사용자 지정 AMI로 작업할 때마다 구성 파일 또는 `--node-ami-family` CLI 플래그를 통해 AMI 패밀리를 명시적으로 설정해야 합니다.

**참고**  
현재 EKS 관리형 노드 그룹은 사용자 지정 AMI로 작업할 때 , `AmazonLinux2023`, `AmazonLinux2`, `Bottlerocket`, 및 AMIs 패밀리만 지원합니다`Ubuntu2004`. `UbuntuPro2004` `Ubuntu2204` `Ubuntu2404` 

## Windows 사용자 지정 AMI 지원
<a name="_windows_custom_ami_support"></a>

자체 관리형 Windows 노드 그룹만 사용자 지정 AMI를 지정할 수 있습니다.는 유효한 Windows AMI 패밀리로 설정해야 `amiFamily` 합니다.

부트스트랩 스크립트에 사용할 수 있는 PowerShell 변수는 다음과 같습니다.

```
$EKSBootstrapScriptFile
$EKSClusterName
$APIServerEndpoint
$Base64ClusterCA
$ServiceCIDR
$KubeletExtraArgs
$KubeletExtraArgsMap: A hashtable containing arguments for the kubelet, e.g., @{ 'node-labels' = ''; 'register-with-taints' = ''; 'max-pods' = '10'}
$DNSClusterIP
$ContainerRuntime
```

Config 파일 예제:

```
nodeGroups:
  - name: custom-windows
    amiFamily: WindowsServer2022FullContainer
    ami: ami-01579b74557facaf7
    overrideBootstrapCommand: |
      & $EKSBootstrapScriptFile -EKSClusterName "$EKSClusterName" -APIServerEndpoint "$APIServerEndpoint" -Base64ClusterCA "$Base64ClusterCA" -ContainerRuntime "containerd" -KubeletExtraArgs "$KubeletExtraArgs" 3>&1 4>&1 5>&1 6>&1
```

## Bottlerocket 사용자 지정 AMI 지원
<a name="_bottlerocket_custom_ami_support"></a>

Bottlerocket 노드의 경우 `overrideBootstrapCommand`는 지원되지 않습니다. 대신 자체 부트스트랩 컨테이너를 지정하려면 `bottlerocket` 필드를 구성 파일의 일부로 사용해야 합니다. 예:

```
  nodeGroups:
  - name: bottlerocket-ng
    ami: ami-custom1234
    amiFamily: Bottlerocket
    bottlerocket:
      enableAdminContainer: true
      settings:
        bootstrap-containers:
          bootstrap:
            source: <MY-CONTAINER-URI>
```