

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

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

# 관리형 노드 그룹과 함께 웜 풀을 사용하여 부팅 시간이 긴 애플리케이션의 지연 시간 단축
<a name="warm-pools-managed-node-groups"></a>

애플리케이션의 초기화 또는 부팅 시간이 길면 스케일 아웃 이벤트로 인해 지연이 발생할 수 있습니다. 새 노드에 대해 포드를 예약하려면 새 노드가 클러스터를 완전히 부팅하고 조인해야 하기 때문입니다. 이러한 지연 시간은 트래픽 스파이크 또는 빠른 규모 조정 이벤트 발생 시 애플리케이션 가용성에 영향을 미칠 수 있습니다. 웜 풀은 이미 부팅 프로세스를 완료한 사전 초기화된 EC2 인스턴스 풀을 유지 관리하여 이 문제를 해결합니다. 스케일 아웃 이벤트 중에 인스턴스는 웜 풀에서 클러스터로 직접 이동하여, 시간이 많이 걸리는 초기화 단계를 우회하고 새 용량을 사용할 수 있는 데 걸리는 시간을 크게 줄입니다. 자세한 내용은 **Amazon EC2 Auto Scaling 사용 설명서의 [웜 풀을 사용하여 부팅 시간이 긴 애플리케이션의 지연 시간 단축](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html)을 참조하세요.

Amazon EKS 관리형 노드 그룹은 Amazon EC2 Auto Scaling 웜 풀을 지원합니다. 웜 풀은 스케일 아웃 이벤트 발생 시 클러스터에 신속히 조인할 수 있는 Auto Scaling 그룹과 함께 사전 초기화된 EC2 인스턴스를 유지합니다. 웜 풀의 인스턴스는 이미 부팅 초기화 프로세스를 완료했으며 `Stopped`, `Running` 또는 `Hibernated` 상태로 유지될 수 있습니다.

Amazon EKS는 `AWSServiceRoleForAmazonEKSNodegroup` 서비스 연결 역할을 사용해 노드 그룹 수명 주기 전반에 걸쳐 웜 풀을 관리하여 웜 풀 리소스를 생성, 업데이트, 삭제합니다.

## 작동 방식
<a name="warm-pools-how-it-works"></a>

웜 풀을 구성하면 Amazon EKS에서는 노드 그룹의 Auto Scaling 그룹에 연결된 EC2 Auto Scaling 웜 풀을 생성합니다. 인스턴스가 웜 풀로 시작되고, 부팅 초기화 프로세스를 완료하며, 필요할 때까지 구성된 상태(`Running`, `Stopped` 또는 `Hibernated`)로 유지됩니다. 스케일 아웃 이벤트 발생 시 인스턴스는 웜 풀에서 Auto Scaling 그룹으로 이동하고, Amazon EKS 초기화 프로세스를 완료하여 클러스터에 조인한 다음, 포드 예약에 사용할 수 있게 됩니다. 인스턴스 재사용을 활성화하면 스케일 인 이벤트 발생 시 인스턴스가 웜 풀로 돌아갈 수 있습니다.

**중요**  
항상 `create-nodegroup` 또는 `update-nodegroup-config`를 사용하여 Amazon EKS API를 통해 웜 풀을 구성합니다. EC2 Auto Scaling API를 사용하여 웜 풀 설정을 수동으로 수정하지 마세요. 이렇게 할 경우 리소스의 Amazon EKS 관리와 충돌할 수 있기 때문입니다.

## 고려 사항
<a name="warm-pools-considerations"></a>

**중요**  
웜 풀을 구성하기 전에 **Amazon EC2 Auto Scaling에서 [Amazon EC2 Auto Scaling을 위한 웜 풀](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html)의 사전 조건 및 제한 사항을 검토하세요. 일부 인스턴스 유형, AMI 또는 구성은 지원되지 않습니다.
+  **IAM 권한** - `AWSServiceRoleForAmazonEKSNodegroup` 서비스 연결 역할(첫 번째 관리형 노드 그룹을 사용하여 자동으로 생성됨)에는 필요한 웜 풀 관리 권한이 포함됩니다.
+  **AMI 제한** - 웜 풀은 사용자 지정 AMI를 지원하지 않습니다. Amazon EKS 최적화 AMI를 사용해야 합니다.
+  **Bottlerocket 제한** 사항 - Bottlerocket AMI를 사용하는 경우 `Hibernated` 풀 상태가 지원되지 않습니다. `Stopped` 또는 `Running` 풀 상태만 사용합니다. 또한 이 `reuseOnScaleIn` 기능은 Bottlerocket AMI에서 지원되지 않습니다.
+  **최대 절전 모드 지원** - `Hibernated` 풀 상태는 특정 인스턴스 유형에서만 지원됩니다. 지원되는 인스턴스 유형은 **Amazon EC2 사용 설명서의 [최대 절전 모드 사전 조건](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html)을 참조하세요.
+  **비용 영향 -** 필요하지 않은 경우에 웜 풀을 생성하면 불필요한 비용이 발생할 수 있습니다.
+  **용량 계획** - 규모 조정 패턴을 기반으로 웜 풀의 크기를 조정하여 비용과 가용성의 균형을 맞출 수 있습니다. 예상 피크 용량의 10\~20%로 시작합니다.
+  **VPC 네트워킹** - Auto Scaling 그룹 및 웜 풀 인스턴스 양쪽 모두에 대해 충분한 IP 주소를 보장합니다.

## 웜 풀 구성
<a name="warm-pools-configuration"></a>

새 관리형 노드 그룹을 생성할 때 웜 풀을 구성하거나, 기존 관리형 노드 그룹을 업데이트하여 웜 풀 지원을 추가할 수 있습니다.

### 구성 파라미터
<a name="warm-pools-parameters"></a>
+  **enabled** – (부울) 관리형 노드 그룹에 웜 풀을 연결하겠다는 의도를 나타냅니다. 웜 풀 지원을 활성화하는 데 필요합니다.
+  **maxGroupPreparedCapacity** – (정수) 웜 풀과 Auto Scaling 그룹의 최대 총 인스턴스 수를 합산한 것입니다.
+  **minSize** – (정수) 웜 풀에서 유지할 최소 인스턴스 수입니다. 기본값: `0`.
+  **poolState** – (문자열) 웜 풀 인스턴스의 상태입니다. 기본값: `Stopped`.
+  **reuseOnScaleIn** – (부울) 스케일 인 이벤트 발생 시 인스턴스를 종료하는 대신 인스턴스가 웜 풀로 돌아가는지 여부를 나타냅니다. 기본값: `false`. Bottlerocket AMI는 지원되지 않습니다.

### AWS CLI 사용
<a name="warm-pools-create-cli"></a>

관리형 노드 그룹을 생성할 때 웜 풀을 구성하거나, 기존 노드 그룹에 웜 풀을 추가할 수 있습니다.

 **웜 풀을 사용하여 노드 그룹 생성** 

```
aws eks create-nodegroup \
  --cluster-name my-cluster \
  --nodegroup-name my-nodegroup \
  --node-role arn:aws:iam::111122223333:role/AmazonEKSNodeRole \
  --subnets subnet-12345678 subnet-87654321 \
  --region us-east-1 \
  --scaling-config minSize=2,maxSize=10,desiredSize=3 \
  --warm-pool-config enabled=true,maxGroupPreparedCapacity=8,minSize=2,poolState=Stopped,reuseOnScaleIn=true
```

 **기존 노드 그룹에 웜 풀 추가** 

```
aws eks update-nodegroup-config \
  --cluster-name my-cluster \
  --nodegroup-name my-nodegroup \
  --region us-east-1 \
  --warm-pool-config enabled=true,maxGroupPreparedCapacity=8,minSize=2,poolState=Stopped,reuseOnScaleIn=true
```

## 구성 업데이트
<a name="warm-pools-update"></a>

`update-nodegroup-config`를 사용하여 언제든지 웜 풀 설정을 업데이트할 수 있습니다. 기존 웜 풀 인스턴스는 즉시 영향을 받지 않습니다. 업데이트 후 웜 풀에 들어오는 인스턴스에 새 설정이 적용됩니다.

```
aws eks update-nodegroup-config \
  --cluster-name my-cluster \
  --nodegroup-name my-nodegroup \
  --region us-east-1 \
  --warm-pool-config enabled=true,maxGroupPreparedCapacity=10,minSize=3,poolState=Running,reuseOnScaleIn=true
```

노드 그룹에 연결된 웜 풀을 비활성화하려면 `enabled=false`를 설정합니다.

```
aws eks update-nodegroup-config \
  --cluster-name my-cluster \
  --nodegroup-name my-nodegroup \
  --region us-east-1 \
  --warm-pool-config enabled=false
```

## 추가 리소스
<a name="warm-pools-additional-resources"></a>
+  자세한 설명은 **Amazon EC2 Auto Scaling 사용자 가이드의 [Amazon EC2 Auto Scaling을 위한 웜 풀](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html)을 참조하세요.
+  [관리형 노드 그룹을 사용한 노드 수명 주기 간소화](managed-node-groups.md) 