

# Escalabilidade em etapas: escalar a frota spot usando políticas de escalabilidade em etapas
<a name="spot-fleet-step-scaling"></a>

Com as políticas de escalabilidade em etapas, você especifica os alarmes do CloudWatch para acionamento do processo de escalabilidade. Por exemplo, se você deseja aumentar a escala quando a utilização de CPU atinge um determinado nível, crie um alarme usando a métrica `CPUUtilization` fornecida pelo Amazon EC2.

Ao criar uma política de escalabilidade em etapas, você deve especificar um dos seguintes tipos de ajuste de escalabilidade:
+ **Add** (Adicionar): aumente a capacidade de destino da frota por um número específico de unidades de capacidade ou por uma porcentagem especificada da capacidade atual.
+ **Remove** (Remover): reduza a capacidade de destino da frota por um número específico de unidades de capacidade ou por uma porcentagem especificada da capacidade atual.
+ **Set to** (Definir como): defina a capacidade de destino da frota como o número especificado de unidades de capacidade.

Quando um alarme é acionado, o processo de escalabilidade automática calcula a nova capacidade de destino usando a capacidade atendida e as políticas de escalabilidade e, em seguida, atualiza a capacidade de destino corretamente. Por exemplo, suponha que a capacidade de destino e a capacidade atendida sejam 10 e a política de escalabilidade seja 1. Quando o alarme é acionado, o processo de escalabilidade automática adiciona 1 a 10 para obter 11, para que a frota spot execute uma instância.

Quando uma frota spot encerra uma instância spot porque a capacidade pretendida foi reduzida, a instância recebe um aviso de interrupção de instância spot.

**Pré-requisitos**
+ A solicitação de frota spot deve ter o tipo de solicitação `maintain`. A escalação automática não é compatível com solicitações do tipo `request`.
+ Configurar a [Permissões do IAM obrigatórias para escalabilidade automática de frota spot](spot-fleet-auto-scaling-IAM.md).
+ Considere quais métricas do CloudWatch são importantes para sua aplicação. É possível criar alarmes do CloudWatch com base nas métricas fornecidas pela AWS ou nas suas próprias métricas personalizadas.
+ Para as métricas da AWS que você usará em suas políticas de escalabilidade, habilite a coleta das métricas do CloudWatch se o serviço que fornece as métricas não for habilitado por padrão.
+ Revise as [Considerações](spot-fleet-automatic-scaling.md#considerations-for-spot-fleet-automatic-scaling).

**Criar um alarme do CloudWatch**

1. Abra o console do CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, expanda **Alarmes** e escolha **Todos os alarmes**.

1. Selecione **Create alarm (Criar alarme)**.

1. Na página **Specify metric and conditions (Especificar métrica e condições)**, selecione **Select metric (Selecionar métrica)**. 

1. Escolha **Spot do EC2**, **Métricas de solicitação de frota** e então uma métrica (por exemplo, **TargetCapacity**). Depois escolha **Selecionar métrica**.

   A página **Specify metric and conditions (Especificar métrica e condições)** será exibida, mostrando um gráfico e outras informações sobre a métrica selecionada. 

1. Em **Período**, escolha o período de avaliação para o alarme, por exemplo, **1 minuto**. Ao avaliar o alarme, todos os períodos são agregados em um único ponto de dados. 
**nota**  
Um período mais curto cria um alarme mais sensível. 

1. Em **Conditions (Condições)**, defina o alarme definindo a condição do limite. Por exemplo, é possível definir um limite para acionar o alarme sempre que o valor da métrica for maior que ou igual a 80%.

1. Em **Additional configuration (Configuração adicional)**, para **Datapoints to alarm (Pontos de dados para alarme)**, especifique quantos pontos de dados (períodos de avaliação) devem estar no estado ALARM para acionar o alarme, por exemplo, 1 período de avaliação para 2 de 3 períodos de avaliação. Isso cria um alarme que passará para o estado ALARM se houver violação de muitos períodos consecutivos. Para obter mais informações, consulte [Avaliar um alarme](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) no *Guia do usuário do Amazon CloudWatch*.

1. Para **Missing data treatment (Tratamento de dados ausentes)**, selecione uma das opções (ou mantenha o padrão como **Treat missing data as missing (Tratar dados ausentes como ausentes)**). Para obter mais informações, consulte [Configuração da forma como os alarmes do CloudWatch tratam dados ausentes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) no *Manual do usuário do Amazon CloudWatch*.

1. Escolha **Next (Próximo)**.

1. (Opcional) Para receber notificações de um evento de dimensionamento, para **Notification (Notificação)**, é possível escolher ou criar o tópico do Amazon SNS que você deseja usar para receber notificações. Caso contrário, será possível excluir a notificação agora e adicionar uma posteriormente, quando necessário.

1. Escolha **Próximo**.

1. Em **Adicionar nome e descrição**, insira um nome e uma descrição para o alarme e selecione **Próximo**.

1. Selecione **Criar alarme**.

**Para configurar uma política de escalabilidade para a frota spot**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **Solicitações spot**.

1. Selecione sua solicitação de frota spot.

1. Escolha a guia **Ajuste de escala automático** próxima à parte inferior da tela. Se você selecionou o link para sua frota spot, não há guia; em vez disso, role para baixo até a seção **Ajuste de escala automático**.

1. Se a escalabilidade automática não estiver configurada, escolha **Configurar**.

1. Use **Escalar capacidade entre** para definir a capacidade mínima e máxima para sua frota. As políticas de ajuste de escala não escalam a frota abaixo da capacidade mínima ou acima da capacidade máxima.

1. Em **Políticas de escalabilidade**, para **Tipo de política**, escolha **Política escalabilidade em etapas**.

1. Inicialmente, a opção **Políticas de escalação** contêm políticas de escalação gradual denominadas **ScaleUp** e **ScaleDown**. É possível completar essas políticas ou escolher **Remover política** para excluí-las. Você também pode escolher **Add policy (Adicionar política)**.

1. Para definir a política, faça o seguinte:

   1. Em **Policy Name (Nome da política)**, digite um nome para a política.

   1. Em **Gatilho de política**, selecione um alarme existente ou escolha **Criar alarme** para abrir o console do Amazon CloudWatch e criar um.

   1. Em **Modificar capacidade**, defina a quantidade do ajuste de escala e os limites inferior e superior do ajuste da etapa. É possível adicionar ou remover um número específico de instâncias ou uma porcentagem do tamanho da frota atual ou definir a frota para um tamanho exato. 

      Por exemplo, para criar uma política de escalabilidade em etapas que aumente a capacidade da frota em 30%, escolha **Adicionar**, insira **30** no próximo campo e escolha **porcento**. Por padrão, o limite inferior de uma política de adição é o limite do alarme e o limite superior é mais (\$1) infinito. Por padrão, o limite superior de uma política de remoção é o limite do alarme e o limite inferior é menos (-) infinito.

   1. (Opcional) Para adicionar outra etapa, escolha **Adicionar etapa**.

   1. Em **Período de esfriamento**, especifique um novo valor (em segundos) ou mantenha o padrão.

1. Escolha **Salvar**.

**Para configurar políticas de escalabilidade em etapas para sua frota spot usando a AWS CLI**

1. Registre a solicitação de frota spot como um destino escalável usando o comando [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html).

1. Crie uma política de escalabilidade usando o comando [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html).

1. Crie um alarme que acione as políticas de escalabilidade usando o comando [put-metric-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html).