Usar estratégias de alocação para determinar como a frota do EC2 ou a frota spot atende à capacidade spot e sob demanda - Amazon Elastic Compute Cloud

Usar estratégias de alocação para determinar como a frota do EC2 ou a frota spot atende à capacidade spot e sob demanda

Quando você usa vários grupos de capacidade (cada um abrangendo um tipo de instância e uma zona de disponibilidade) em uma frota do EC2 ou uma frota spot, você pode usar uma estratégia de alocação para gerenciar como o Amazon EC2 atende às capacidades spot e sob demanda desses grupos. As estratégias de alocação podem otimizar a capacidade disponível, o preço e os tipos de instância a serem usados. Existem diferentes estratégias de alocação para instâncias spot e instâncias sob demanda.

Estratégias de alocação para Instâncias spot

Sua configuração de inicialização determina todos os possíveis grupos de capacidade spot (tipos de instância e zonas de disponibilidade) nos quais a frota do EC2 ou a frota spot pode inicializar instâncias spot. No entanto, ao inicializar instâncias, a frota usa a estratégia de alocação que você especifica para escolher os grupos específicos de todos os seus grupos possíveis.

nota

(Somente para instâncias do Linux) Se você configurar a instância spot para iniciar com o AMD SEV-SNP ativado, será cobrada uma taxa de utilização por hora adicional equivalente a 10% da taxa horária sob demanda para o tipo de instância selecionado. Se a estratégia de alocação usar o preço como entrada, a frota não incluirá essa taxa adicional; somente o preço spot será usado.

Você pode especificar uma destas estratégias de alocação para instâncias spot:

Capacidade de preço otimizada (recomendado)

A frota identifica os grupos com a maior disponibilidade de capacidade para o número de instâncias que estão sendo inicializadas. Isso significa que solicitaremos instâncias spot dos grupos que acreditamos terem a menor probabilidade de interrupção a curto prazo. Em seguida, a frota solicita instâncias spot do grupo com o menor preço desses grupos.

A estratégia de alocação capacidade de preço otimizada é a melhor opção para a maioria das workloads spot, como aplicações em contêiner sem estado, microsserviços, aplicações Web, trabalhos de dados e analytics e processamento em lote.

Se você estiver usando a AWS CLI, o nome do parâmetro será price-capacity-optimized para frotas do EC2 e priceCapacityOptimized para frotas spot.

Otimizada para capacidade

A frota identifica os grupos com a maior disponibilidade de capacidade para o número de instâncias que estão sendo inicializadas. Isso significa que solicitaremos instâncias spot dos grupos que acreditamos terem a menor probabilidade de interrupção a curto prazo. Opcionalmente, você pode definir uma prioridade para cada tipo de instância na frota. A frota otimiza primeiro a capacidade, mas se esforça em honrar as prioridades de tipo de instância.

Com as Instâncias spot, a definição de preço muda lentamente ao longo do tempo com base em tendências de longo prazo na oferta e na demanda, mas a capacidade oscila em tempo real. A estratégia capacidade otimizada inicializa instâncias spot automaticamente nos grupos mais disponíveis observando dados de capacidade em tempo real e prevendo quais são os mais disponíveis. Isso funciona bem para workloads que podem ter um custo de interrupção maior associado ao reinício do trabalho, como workloads de integração contínua (CI) longa, de renderização de imagens e mídia, de aprendizado profundo e de computação de alta performance (HPC). Ao oferecer a possibilidade de menos interrupções, a estratégia capacidade otimizada pode reduzir o custo geral da workload.

Como alternativa, você pode usar a estratégia de alocação capacidade otimizada priorizada com um parâmetro de prioridade para ordenar os tipos de instância, da prioridade mais alta para a mais baixa. Você pode definir a mesma prioridade para diferentes tipos de instância. A frota otimizará primeiro a capacidade, mas se esforçará em honrar as prioridades de tipo de instância (por exemplo, honrar as prioridades não afetará significativamente a capacidade da frota de provisionar a capacidade ideal). Essa é uma boa opção para workloads em que a possibilidade de interrupção deve ser minimizada e a preferência por determinados tipos de instância for importante. Quando você definir a prioridade para tipos de instância para capacidade spot, a mesma prioridade também será aplicada às instâncias sob demanda se a estratégia de alocação sob demanda estiver definida como priorizada. Para frotas spot, o uso de prioridades só será compatível se a frota usar um modelo de inicialização.

Se você estiver usando a AWS CLI, os nomes dos parâmetros serão capacity-optimized e capacity-optimized-prioritized para frotas do EC2 e capacityOptimized e capacityOptimizedPrioritized para frotas spot.

Diversificada

Os Instâncias spot são distribuídos em todos os grupos de capacidade spot. Se você estiver usando a AWS CLI, o nome do parâmetro será diversified para frotas do EC2 e frotas spot.

Preço mais baixo (não recomendado)
Atenção

Não recomendamos a estratégia de alocação preço mais baixo porque ela representa o risco mais alto de interrupção para as instâncias spot.

As instâncias spot vêm do grupo com o menor preço que tem capacidade disponível. Ao ser usada a AWS CLI, essa é a estratégia padrão. Porém, recomendamos que você substitua o padrão ao especificar a estratégia de alocação otimizada para capacidade de preço.

Com a estratégia de preço mais baixo, se o grupo com preço mais baixo não tiver capacidade disponível, as instâncias spot virão do próximo grupo com preço mais baixo que tiver capacidade disponível. Se um grupo esgotar a capacidade spot antes de atender à capacidade desejada, a frota continuará a atender à solicitação recorrendo ao próximo grupo de preço mais baixo. Para garantir que a capacidade desejada seja atendida, é possível receber instâncias spot de vários grupos.

Como essa estratégia considera apenas o preço da instância e não a disponibilidade de capacidade, ela pode resultar em altas taxas de interrupção.

A estratégia de alocação de preço mais baixo só está disponível quando é usada a AWS CLI. O nome do parâmetro é lowest-price para frotas do EC2 e lowestPrice para frotas spot.

Número de grupos a serem usados

O número de grupos spot para os quais alocar sua capacidade spot de destino. Válido apenas quando a estratégia de alocação está definida como preço mais baixo. A frota seleciona os grupos spot de preço mais baixo e aloca uniformemente a capacidade spot de destino pelo número de grupos spot que você especifica.

A frota tenta extrair instâncias spot do número de grupos que você especifica com base no melhor esforço. Se um grupo esgotar a capacidade spot antes de atender à capacidade de destino, a frota continuará a atender à solicitação recorrendo ao próximo grupo de preço mais baixo. Para garantir que sua capacidade de destino seja atendida, você pode receber Instâncias Spot de mais do que o número de pools especificado. Da mesma forma, se a maioria dos pools não tiver capacidade spot, você poderá receber sua capacidade de destino total de menos do que o número de pools que você especificou.

Esse parâmetro só está disponível quando é especificada a estratégia de alocação preço mais baixo e somente quando é usada a AWS CLI. O nome do parâmetro é InstancePoolsToUseCount para frotas do EC2 e para frotas spot.

Estratégias de alocação para instâncias sob demanda

A configuração de inicialização determina todos os possíveis grupos de capacidade (tipos de instância e zonas de disponibilidade) nos quais a frota do EC2 ou a frota spot pode inicializar instâncias sob demanda. No entanto, ao inicializar instâncias, a frota usa a estratégia de alocação que você especifica para escolher os grupos específicos de todos os seus grupos possíveis.

Você pode especificar uma destas estratégias de alocação para instâncias sob demanda:

Preço mais baixo

As instâncias sob demanda vêm do grupo com o preço mais baixo que tem capacidade disponível. Essa é a estratégia padrão.

Se o grupo com preço mas baixo não tiver capacidade disponível, as instâncias sob demanda virão do próximo grupo com preço mais baixo que tiver capacidade disponível.

Se um grupo esgotar a capacidade spot antes de atender à capacidade desejada, a frota continuará a atender à solicitação recorrendo ao próximo grupo de preço mais baixo. Para garantir que a capacidade desejada seja atendida, é possível receber instâncias sob demanda de vários grupos.

Priorizada

A frota usa a prioridade que você atribuiu para cada substituição do modelo de inicialização ao inicializar tipos de instância começando pela prioridade mais alta. Essa estratégia não pode ser usada com a seleção de tipo de instância baseada em atributos. Para obter um exemplo de como usar essa estratégia de alocação, consulte Priorizar tipos de instâncias para capacidade sob demanda.

Escolher a estratégia de alocação spot apropriada

Você pode otimizar a frota para seu caso de uso escolhendo a estratégia apropriada de alocação spot.

Equilibrar menor preço e disponibilidade de capacidade

Para obter o equilíbrio entre os grupos de capacidade spot com preço mais baixo e os grupos de capacidade spot com a maior disponibilidade de capacidade, recomendamos que você use a estratégia de alocação otimizada para capacidade de preço. Essa estratégia toma decisões sobre quais grupos devem solicitar instâncias spot com base no preço dos grupos e na disponibilidade de capacidade de instâncias spot nesses grupos. Isso significa que solicitaremos instâncias spot dos grupos que acreditamos terem a menor probabilidade de interrupção em curto prazo, ao mesmo tempo que ainda levaremos o preço em consideração.

Se a frota executar workloads resilientes e sem estado, incluindo aplicações em contêiner, microsserviços, aplicações Web, trabalhos de dados e analytics e processamento em lote, use a estratégia de alocação otimizada para capacidade de preço para otimizar a economia de custos e a disponibilidade de capacidade.

Se a frota executar workloads que possam ter um custo de interrupção maior associado ao reinício do trabalho, você deverá implementar verificações para que as aplicações possam ser reiniciadas no ponto em que foram interrompidas. Ao usar pontos de verificação, você torna a estratégia de alocação otimizada para capacidade de preço uma boa opção para essas workloads, pois ela aloca a capacidade dos grupos com preço mais baixo que também oferecem uma baixa taxa de interrupção de instâncias spot.

Por exemplo, em configurações JSON que usam a estratégia de alocação otimizada para capacidade de preço, veja o seguinte:

Quando as workloads têm um alto custo de interrupção

Opcionalmente, você pode usar a estratégia otimizada para capacidade se executar workloads que usem tipos de instância com preços semelhantes ou em que o custo da interrupção seja tão significativo que qualquer economia de custos será inadequada em comparação com um aumento marginal nas interrupções. Essa estratégia aloca capacidade dos grupos com capacidade spot mais disponível que oferecem a possibilidade de menos interrupções, o que pode reduzir o custo geral da workload.

Quando a possibilidade de interrupções precisa ser minimizada mas a preferência por determinados tipos de instância é importante, é possível expressar as prioridades do grupo usando a estratégia de alocação capacidade otimizada priorizada e definindo a ordem dos tipos de instância a serem usados da prioridade mais alta para a mais baixa.

Observe que, quando você define as prioridades para capacidade otimizada priorizada, as mesmas prioridades também são aplicadas às instâncias sob demanda se a estratégia de alocação sob demanda está definida como priorizada. Observe também que, para frotas spot, o uso de prioridades só será compatível se a frota usar um modelo de inicialização.

Por exemplo, em configurações JSON que usam a estratégia de alocação otimizada para capacidade, observe o seguinte:

Por exemplo, em configurações JSON que usam a estratégia de alocação capacidade otimizada priorizada, observe o seguinte:

Quando a workload é flexível em termos de tempo e a disponibilidade de capacidade não é um fator

Se a frota é pequena ou é executada por um período curto, você pode usar otimizada para capacidade de preço para maximizar a economia de custos, ainda considerando a disponibilidade de capacidade.

Quando sua frota é grande ou é executada por muito tempo

Se sua frota é grande ou é executada há muito tempo, você poderá aprimorar a disponibilidade dela distribuindo as instâncias spot por vários grupos, usando a estratégia diversificada. Por exemplo, se a frota especificar dez grupos e uma capacidade de destino de cem instâncias, a frota inicializará dez instâncias spot em cada grupo. Se o preço spot para um grupo exceder seu preço máximo para esse mesmo grupo, somente 10% de sua frota será afetada. Usar essa estratégia também torna sua frota menos sensível a aumentos que ocorram com o tempo no preço spot em qualquer grupo específico. Com a estratégia diversificada, a frota não inicializará instâncias spot em nenhum grupo com um preço spot igual ou maior que o preço sob demanda.

Manter a capacidade de destino para instâncias spot

Depois que as instâncias spot são encerradas devido a uma alteração no preço spot ou na capacidade disponível de um grupo de capacidade spot, uma frota do tipo maintain inicializa instâncias spot de substituição. A estratégia de alocação determina os grupos dos quais as instâncias de substituição são iniciadas, da seguinte forma:

  • Se a estratégia de alocação for capacidade de preço otimizada, a frota inicializará instâncias de substituição nos grupos com maior disponibilidade de capacidade de instâncias spot, ao mesmo tempo que também levará em consideração o preço e identificará os grupos de preço mais baixo com alta disponibilidade de capacidade.

  • Se a estratégia de alocação for capacidade otimizada, a frota inicializará instâncias de substituição nos grupos com a maior disponibilidade de capacidade de instâncias spot.

  • Se a estratégia de alocação for diversificada, a frota distribuirá as instâncias spot de substituição entre os grupos restantes.

Priorizar tipos de instâncias para capacidade sob demanda

Quando uma frota do EC2 ou uma frota spot tenta atender à capacidade sob demanda, o padrão é inicializar primeiro o tipo de instância de preço mais baixo. Se a estratégia de alocação estiver definida como priorizada, a frota usará a prioridade para determinar que tipo de instância será usada primeiro para atender à capacidade sob demanda. A prioridade é atribuída à substituição do modelo de ativação, e a prioridade mais alta é lançada primeiro.

Exemplo: priorizar tipos de instância

Neste exemplo, você configura três substituições de modelo de execução, cada uma com um tipo de instância diferente.

O preço sob demanda para os tipos de instância varia no preço. Estes são os tipos de instância usados neste exemplo, listados em ordem de preço, a partir do tipo de instância mais barato:

  • m4.large: menor custo

  • m5.large

  • m5a.large

Se você não usar prioridade para determinar a ordem, a frota atenderá à capacidade sob demanda começando pelo tipo mais barato de instância.

No entanto, digamos que você tenha instâncias reservadas m5.large não utilizadas que deseja usar primeiro. É possível definir a prioridade de substituição do modelo de execução para que os tipos de instância sejam usados na ordem de prioridade, da seguinte forma:

  • m5.large: prioridade 1

  • m4.large: prioridade 2

  • m5a.large: prioridade 3