Visão geral da configuração para criar um grupo de instâncias mistas - Amazon EC2 Auto Scaling

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Visão geral da configuração para criar um grupo de instâncias mistas

Este tópico fornece uma visão geral e as melhores práticas para criar um grupo de instâncias mistas do Auto Scaling.

Visão geral

Para criar um grupo de instâncias mistas, você tem duas opções:

Manual selection

As etapas a seguir descrevem como criar um grupo de instâncias mistas escolhendo manualmente os tipos de instância:

  1. Escolha um modelo de execução que tenha os parâmetros para executar uma instância do EC2. Os parâmetros nos modelos de execução são opcionais, mas o Amazon EC2 Auto Scaling não pode iniciar uma instância se o ID da imagem de máquina da Amazon (AMI) estiver ausente do modelo de execução.

  2. Escolha a opção de substituir o modelo de execução.

  3. Escolha manualmente os tipos de instância adequados ao seu workload.

  4. Especifique as porcentagens de instâncias sob demanda e de instâncias spot a serem iniciadas.

  5. Escolha estratégias de alocação que determinem como o Amazon EC2 Auto Scaling atenderá à capacidade sob demanda e spot com os tipos de instância possíveis.

  6. Escolha as zonas de disponibilidade e sub-redes VPC nas quais executar suas instâncias.

  7. Especifique o tamanho inicial do grupo (a capacidade desejada) e o tamanho mínimo e máximo do grupo.

As substituições são necessárias para substituir o tipo de instância declarado no modelo de execução e usar vários tipos de instâncias incorporados na própria definição de recursos do grupo do Auto Scaling. Para obter mais informações sobre os tipos de instância disponíveis, consulte Tipos de instância no Guia do usuário do Amazon EC2.

Você também pode configurar os seguintes parâmetros opcionais para cada tipo de instância:

  • LaunchTemplateSpecification— Você pode atribuir um modelo de execução diferente a um tipo de instância, conforme necessário. Essa opção não está disponível atualmente no console. Para ter mais informações, consulte Usar um modelo de execução diferente para um tipo de instância.

  • WeightedCapacity— Você decide o quanto a instância conta para a capacidade desejada em relação ao resto das instâncias do seu grupo. Se você especificar um valor WeightedCapacity para um tipo de instância, deverá especificar um valor WeightedCapacity para todos os tipos. Por padrão, cada instância conta como uma para a capacidade desejada. Para ter mais informações, consulte Configurar um grupo de Auto Scaling para usar pesos de instância.

Attribute-based selection

Para permitir que o Amazon EC2 Auto Scaling escolha seus tipos de instância automaticamente com base em seus atributos de instância específicos, use as seguintes etapas para criar um grupo misto de instâncias especificando seus requisitos computacionais:

  1. Escolha um modelo de execução que tenha os parâmetros para executar uma instância do EC2. Os parâmetros nos modelos de execução são opcionais, mas o Amazon EC2 Auto Scaling não pode iniciar uma instância se o ID da imagem de máquina da Amazon (AMI) estiver ausente do modelo de execução.

  2. Escolha a opção de substituir o modelo de execução.

  3. Especifique atributos de instância que correspondam aos requisitos de computação, como requisitos de vCPUs e memória.

  4. Especifique as porcentagens de instâncias sob demanda e de instâncias spot a serem iniciadas.

  5. Escolha estratégias de alocação que determinem como o Amazon EC2 Auto Scaling atenderá à capacidade sob demanda e spot com os tipos de instância possíveis.

  6. Escolha as zonas de disponibilidade e sub-redes VPC nas quais executar suas instâncias.

  7. Especifique o tamanho inicial do grupo (a capacidade desejada) e o tamanho mínimo e máximo do grupo.

As substituições são necessárias para substituir o tipo de instância declarado no modelo de execução e usar um conjunto de atributos de instância que descrevam seus requisitos de computação. Para ver os atributos compatíveis, consulte a InstanceRequirementsReferência da API Auto Scaling do Amazon EC2. Como alternativa, é possível usar um modelo de execução que já tenha sua definição de atributos de instância.

Você também pode configurar o parâmetro LaunchTemplateSpecification na estrutura de substituições para atribuir um modelo de execução diferente a um conjunto de requisitos de instância, conforme necessário. Essa opção não está disponível atualmente no console. Para obter mais informações, consulte a LaunchTemplateOverridesReferência da API Auto Scaling do Amazon EC2.

Por padrão, você definiu o número de instâncias como da capacidade desejada do seu grupo do Auto Scaling.

Como alternativa, você pode definir o valor da capacidade desejada como o número de vCPUs ou a quantidade de memória. Para fazer isso, use a propriedade DesiredCapacityType na operação da API CreateAutoScalingGroup ou o campo suspenso Tipo de capacidade desejada no AWS Management Console. Essa é uma alternativa útil aos pesos de instância.

Flexibilidade de tipo da instância

Para aumentar a disponibilidade, implemente seu aplicativo em vários tipos de instância. É uma prática recomendada usar vários tipos de instância para atender aos requisitos de capacidade. Dessa forma, o Amazon EC2 Auto Scaling pode executar outro tipo de instância se houver capacidade de instância insuficiente nas zonas de disponibilidade escolhidas.

Se houver capacidade de instância insuficiente com instâncias spot, o Amazon EC2 Auto Scaling continuará tentando iniciar a partir de outros pools de instâncias spot. (Os pools usados são determinados por sua escolha de tipos de instância e estratégia de alocação.) O Amazon EC2 Auto Scaling ajuda você a aproveitar a economia de custo das instâncias spot ao iniciá-las em vez de instâncias sob demanda.

Recomendamos ser flexível para pelo menos 10 tipos de instância para cada workload. Ao escolher seus tipos de instância, não se limite aos novos tipos de instância mais usados. Escolher tipos de instância de gerações mais antigas tende a resultar em menos interrupções Spot, pois há menos demanda de clientes sob demanda.

Flexibilidade da zona de disponibilidade

Recomendamos fortemente que estenda seu grupo do Auto Scaling em várias zonas de disponibilidade. Com várias zonas de disponibilidade, você pode criar aplicativos que executam o failover automaticamente entre as zonas para obter maior resiliência.

Como benefício adicional, você pode acessar um pool de capacidade mais profundo do Amazon EC2 em comparação com grupos em uma única zona de disponibilidade. Como a capacidade oscila independentemente para cada tipo de instância na zona de disponibilidade, é frequentemente possível obter maior capacidade computacional quando você tem tanto a flexibilidade de tipo de instância quanto da zona de disponibilidade.

Para ter mais informações sobre como usar várias Zonas de disponibilidade, consulte Exemplo: distribuir instâncias entre zonas de disponibilidade.

Preço máximo do spot

Ao criar seu grupo de Auto Scaling usando o AWS CLI ou um SDK, você pode especificar o parâmetro. SpotMaxPrice O parâmetro SpotMaxPrice determina o preço máximo que você está disposto a pagar por uma hora de instância spot.

Quando você especifica o parâmetro WeightedCapacity em suas substituições (ou "DesiredCapacityType": "vcpu" ou "DesiredCapacityType": "memory-mib" no nível do grupo), o preço máximo representa o preço unitário máximo, não o preço máximo de uma instância inteira.

É altamente recomendável que você não especifique um preço máximo. Talvez sua aplicação não seja executada se você não receber suas instâncias spot, como quando o preço máximo é muito baixo. Se você não especificar um preço máximo, o padrão será o preço sob demanda. Você pagará apenas o preço spot pelas instâncias spot que iniciar. Você ainda recebe os grandes descontos oferecidos pelas Instâncias Spot. Esses descontos são possíveis devido ao preço Spot estável disponível com o modelo de preço Spot. Para obter mais informações, consulte Preços e descontos no Guia do usuário do Amazon EC2.

Rebalanceamento proativo de capacidade

Se o seu caso de uso permitir, recomendamos o rebalanceamento de capacidade. O Rebalanceamento de capacidade ajuda a manter a disponibilidade da workload aumentando proativamente sua frota com uma nova instância spot antes que uma instância spot em execução receba o aviso de interrupção de dois minutos.

Quando a capacidade de rebalanceamento está habilitada, o Amazon EC2 Auto Scaling tenta substituir proativamente as instâncias spot que receberam uma recomendação de rebalanceamento. Você pode decidir rebalancear sua workload em instâncias spot novas ou existentes que não tenham risco elevado de interrupção.

Para ter mais informações, consulte Usar o rebalanceamento de capacidade para lidar com interrupções de spot do Amazon EC2.

Comportamento do ajuste de escala

Quando você cria um grupo misto de instâncias, ele usa instâncias sob demanda por padrão. Para usar as instâncias spot, você deve modificar a porcentagem do grupo a ser iniciada como instâncias sob demanda. Você pode especificar qualquer número de 0 a 100 para a porcentagem sob demanda.

Opcionalmente, você também pode designar um número base de instâncias sob demanda para começar. Se você fizer isso, o Amazon EC2 Auto Scaling aguardará para iniciar instâncias spot até depois de iniciar a capacidade básica de instâncias sob demanda quando o grupo for aumentado na escala horizontalmente. Depois de ultrapassada a capacidade básica, é usada a porcentagem sob demanda para determinar o número de instâncias spot e sob demanda que serão executadas.

O Amazon EC2 Auto Scaling converte o percentual para o número equivalente de instâncias. Se o resultado criar um número fracionário, ele arredonda para o próximo inteiro em favor das instâncias sob demanda.

A tabela a seguir demonstra o comportamento do grupo do Auto Scaling à medida que aumenta e diminui de tamanho.

Exemplo: comportamento de escalabilidade
Opções de compra Tamanho de grupo e número total de instâncias em execução nas opções de compra
10 20 30 40

Exemplo 1: base de 10, 50/50% sob demanda/spot

Instâncias sob demanda (valor base) 10 10 10 10
Instâncias sob demanda 0 5 10 15
Instâncias spot 0 5 10 15

Exemplo 2: base de 0, 0/100% sob demanda/spot

Instâncias sob demanda (valor base) 0 0 0 0
Instâncias sob demanda 0 0 0 0
Instâncias spot 10 20 30 40

Exemplo 3: base de 0, 60/40% sob demanda/spot

Instâncias sob demanda (valor base) 0 0 0 0
Instâncias sob demanda 6 12 18 24
Instâncias spot 4 8 12 16

Exemplo 4: base de 0, 100/0% sob demanda/spot

Instâncias sob demanda (valor base) 0 0 0 0
Instâncias sob demanda 10 20 30 40
Instâncias spot 0 0 0 0

Exemplo 5: base de 12, 0/100% sob demanda/spot

Instâncias sob demanda (valor base) 10 12 12 12
Instâncias sob demanda 0 0 0 0
Instâncias spot 0 8 18 28

Quando o tamanho do grupo aumenta, o Amazon EC2 Auto Scaling tenta equilibrar sua capacidade uniformemente em suas zonas de disponibilidade especificadas. Em seguida, ele inicia os tipos de instância de acordo com a estratégia de alocação especificada.

Quando o tamanho do grupo diminui, o Amazon EC2 Auto Scaling primeiro identifica qual dos dois tipos (spot ou sob demanda) deve ser encerrado. Em seguida, ele tenta encerrar as instâncias de forma equilibrada nas zonas de disponibilidade especificadas. Também favorece o encerramento de instâncias de uma forma que se alinhe mais às suas estratégias de alocação. Para obter mais informações sobre políticas de encerramento, consulte Configurar políticas de rescisão para o Amazon EC2 Auto Scaling.

Disponibilidade regional dos tipos de instância

A disponibilidade dos tipos de instância do EC2 varia de acordo com sua Região da AWS. Por exemplo, os tipos de instância de geração mais recente podem ainda não estar disponíveis em uma determinada região. Devido às variações na disponibilidade de instâncias entre regiões, você pode encontrar problemas ao fazer solicitações programáticas se vários tipos de instância em suas substituições não estiverem disponíveis em sua região. Usar vários tipos de instância que não estão disponíveis na sua região pode fazer com que a solicitação falhe completamente. Para resolver o problema, repita a solicitação com diferentes tipos de instância, certificando-se de que cada tipo de instância esteja disponível na região. Para pesquisar os tipos de instância oferecidos por localização, use o describe-instance-type-offeringscomando. Para obter mais informações, consulte Como encontrar um tipo de instância do Amazon EC2 no Guia do usuário do Amazon EC2.

Para obter mais práticas recomendadas para instâncias spot, consulte Melhores práticas para EC2 Spot no Guia do usuário do Amazon EC2.

Limitações

Depois de adicionar substituições a um grupo do Auto Scaling usando uma política de instâncias mistas, você pode atualizar as substituições com a chamada da API, mas não UpdateAutoScalingGroup excluí-las. Para remover completamente as substituições, primeiro você deve alternar o grupo do Auto Scaling para usar um modelo de execução ou uma configuração de execução em vez de uma política de instâncias mistas. Em seguida, você pode adicionar uma política de instâncias mistas novamente sem nenhuma substituição.