

 **Ajudar a melhorar esta página** 

Para contribuir com este guia de usuário, escolha o link **Editar esta página no GitHub**, disponível no painel direito de cada página.

# Diminua a latência para aplicações com tempos de inicialização longos usando aquecimento com grupos de nós gerenciados
<a name="warm-pools-managed-node-groups"></a>

Quando seus aplicativos têm longos tempos de inicialização ou boot, eventos de escalabilidade horizontal podem causar atrasos. Os novos nós devem ser totalmente inicializados e ingressar no cluster antes que os pods possam ser programados neles. Essa latência pode afetar a disponibilidade do aplicativo durante picos de tráfego ou eventos de escalabilidade rápida. Os grupos de alta atividade resolvem esse problema ao manter um grupo de instâncias do EC2 pré-inicializadas que já concluíram o processo de inicialização. Durante um evento de escalabilidade horizontal, as instâncias se movem do aquecimento diretamente para seu cluster, ignorando as demoradas etapas de inicialização e reduzindo significativamente o tempo necessário para que a nova capacidade fique disponível. Para obter mais informações, consulte [Diminuir a latência de aplicativos que têm longos tempos de inicialização usando aquecimentos](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html) no *Guia do usuário do Amazon EC2 Auto Scaling*.

Os grupos de alta atividade do Amazon EKS oferecem suporte a aquecimentos do Amazon EC2 Auto Scaling. Um aquecimento mantém instâncias EC2 pré-inicializadas junto com seu grupo do Auto Scaling, que podem se juntar rapidamente ao seu cluster durante eventos de ajuste de escala automático. As instâncias no aquecimento já concluíram o processo de inicialização e podem ser mantidas no estado `Stopped`, `Running` ou `Hibernated`.

O Amazon EKS gerencia aquecimentos em todo o ciclo de vida do grupo de nós usando a função `AWSServiceRoleForAmazonEKSNodegroup` vinculada ao serviço para criar, atualizar e excluir recursos de aquecimento.

## Como funciona
<a name="warm-pools-how-it-works"></a>

Quando você configura um aquecimento, o Amazon EKS cria um aquecimento de Auto Scaling do EC2 conectada ao grupo do Auto Scaling do seu grupo de nós. As instâncias são iniciadas no aquecimento, concluem o processo de inicialização e permanecem no estado configurado (`Running`, `Stopped`, ou `Hibernated`) até serem necessárias. Durante eventos de escalabilidade horizontal, as instâncias passam do aquecimento para o grupo do Auto Scaling, concluem o processo de inicialização do Amazon EKS para ingressar no cluster e ficam disponíveis para o agendamento de pods. Com a reutilização de instâncias ativada, as instâncias podem retornar ao aquecimento durante eventos de escalabilidade.

**Importante**  
Sempre configure aquecimento por meio da API Amazon EKS usando `create-nodegroup` ou `update-nodegroup-config`. Não modifique manualmente as configurações do aquecimento usando a API EC2 Auto Scaling, pois isso pode causar conflitos com o gerenciamento dos recursos do Amazon EKS.

## Considerações
<a name="warm-pools-considerations"></a>

**Importante**  
Antes de configurar grupos de alta atividade, consulte os pré-requisitos e as limitações em [Aquecimentos para o Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html) no *Guia do Usuário do Amazon EC2 Auto Scaling*. Nem todos os tipos de instância, AMIs ou configurações são compatíveis.
+  **Permissões do IAM** — A função `AWSServiceRoleForAmazonEKSNodegroup` vinculada ao serviço (criada automaticamente com seu primeiro grupo de nós gerenciados) inclui as permissões necessárias de gerenciamento do aquecimento.
+  **Limitações da AMI** — Aquecimentos não oferecem suporte a AMIs personalizadas. Você deve usar AMIs otimizadas para o Amazon EKS.
+  **Limitações do Bottlerocket** — Se estiver usando AMIs do Bottlerocket, o estado do pool `Hibernated` não é suportado. Use apenas estados de pool `Stopped` ou `Running`. Além disso, o recurso `reuseOnScaleIn` não é compatível com as AMIs do Bottlerocket.
+  **Suporte à hibernação** — O estado do pool `Hibernated` só é suportado em tipos de instância específicos. Consulte os [pré-requisitos de hibernação](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html) no *Guia do usuário do Amazon EC2* para ver os tipos de instância compatíveis.
+  **Impacto no custo** – Criar um aquecimento quando ele não é necessário pode gerar custos desnecessários.
+  **Planejamento de capacidade** — Dimensione seu aquecimento com base em padrões de escala para equilibrar custo e disponibilidade. Comece com 10 a 20% da capacidade de pico esperada.
+  **Rede VPC** — Garanta endereços IP suficientes para instâncias de grupo e aquecimento do Auto Scaling.

## Configure aquecimentos
<a name="warm-pools-configuration"></a>

Você pode configurar aquecimento ao criar um novo grupo de nós gerenciados ou atualizar um grupo de nós gerenciados existente para adicionar suporte a aquecimento.

### Parâmetros de configuração
<a name="warm-pools-parameters"></a>
+  **enabled** — (booleano) Indica sua intenção de conectar um aquecimento ao grupo de nós gerenciados. Necessário para permitir o suporte a aquecimento.
+  **MaxGroupPreparedCapacity** — (inteiro) Total máximo de instâncias no aquecimento e no grupo do Auto Scaling combinados.
+  **minSize** — (inteiro) Número mínimo de instâncias a serem mantidas no aquecimento. Padrão: `0`.
+  **poolState** — (string) Estado para instâncias de aquecimento. Padrão: `Stopped`.
+  **ReuseOnScaleIn** — (boolean) Se as instâncias retornam ao aquecimento durante eventos de redução em vez de encerrá-las. Padrão: `false`. Não é compatível com as AMIs do Bottlerocket.

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

Você pode configurar um aquecimento ao criar um grupo de nós gerenciados ou adicionar um a um grupo de nós existente.

 **Crie um grupo de nós com um aquecimento** 

```
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
```

 **Adicione um aquecimento a um grupo de nós existente** 

```
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
```

## Atualizar configuração
<a name="warm-pools-update"></a>

Atualize as configurações do aquecimento a qualquer momento usando `update-nodegroup-config`. As instâncias existentes do aquecimento não são afetadas imediatamente; novas configurações se aplicam às instâncias que entram no aquecimento após a atualização.

```
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
```

Para desativar o aquecimento conectado ao seu grupo de nós, defina `enabled=false`:

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

## Recursos adicionais
<a name="warm-pools-additional-resources"></a>
+  [Aquecimentos para Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html) no *Guia do usuário do Amazon EC2 Auto Scaling* 
+  [Simplificar o ciclo de vida dos nós com grupos de nós gerenciados](managed-node-groups.md) 