Execute instâncias de forma síncrona - 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á.

Execute instâncias de forma síncrona

O Amazon EC2 Auto Scaling fornece dois métodos para iniciar instâncias em seu grupo de Auto Scaling: comportamento de escalabilidade assíncrono e provisionamento síncrono usando a API. LaunchInstances

Com o provisionamento síncrono, você usa a LaunchInstances API para solicitar um número específico de instâncias em uma zona de disponibilidade específica. O provisionamento síncrono oferece os seguintes benefícios:

  • Feedback imediato sobre a disponibilidade de capacidade em zonas de disponibilidade específicas

  • Controle preciso sobre quais instâncias da Zona de Disponibilidade são executadas em

  • Instância determinística IDs para uso imediato em sistemas de orquestração

  • Decisões de escalabilidade em tempo real com base nas restrições reais de capacidade

  • Escalonamento mais rápido, eliminando os tempos de espera para lançamentos assíncronos do Auto Scaling

Com o Auto Scaling assíncrono, quando você altera a capacidade desejada ou quando uma política de escalabilidade é acionada, o Amazon EC2 Auto Scaling processa a solicitação de escalabilidade e inicia instâncias em segundo plano. Você deve monitorar as atividades de escalabilidade ou descrever seu grupo de Auto Scaling para determinar quando as instâncias são lançadas com sucesso.

nota
  • A LaunchInstances API só funciona com grupos de Auto Scaling que usam modelos de lançamento. Grupos de Auto Scaling que usam configurações de inicialização não são suportados. Se seu grupo de Auto Scaling usa uma configuração de execução, você deve migrar para um modelo de execução antes de usar o provisionamento síncrono.

  • A LaunchInstances API oferece suporte a políticas de instâncias mistas somente com opções de compra totalmente sob demanda ou totalmente à vista. Políticas mistas combinando instâncias sob demanda e spot não são suportadas.

  • Para grupos de Auto Scaling que abrangem várias zonas de disponibilidade, você deve especificar a zona de disponibilidade ou sub-rede de destino. Para grupos Single-AZ, esse parâmetro é opcional.

Provisionamento síncrono e escalabilidade assíncrona

Provisionamento síncrono

Quando você usa a LaunchInstances API, o Amazon EC2 Auto Scaling:

  • Tenta iniciar imediatamente as instâncias solicitadas usando CreateFleet

  • Espera para retornar CreateFleet a instância IDs antes de responder

  • Retorna informações sobre o sucesso da instância IDs, dos tipos de instância e da zona de disponibilidade

  • Retorna códigos de erro específicos e detalhes sobre falhas

  • Fornece feedback imediato, permitindo decisões de escalonamento em tempo real

Escalabilidade assíncrona

Quando você usa métodos assíncronos de Auto Scaling, como alterar a capacidade desejada ou usar políticas de escalabilidade, o Amazon EC2 Auto Scaling:

  • Atualiza a capacidade desejada na API, mas não retornará as instâncias imediatamente

  • A instância de planos é iniciada automaticamente em todas as zonas de disponibilidade

  • Lança instâncias por meio de fluxos de trabalho em segundo plano

  • Distribui automaticamente a capacidade em várias zonas de disponibilidade para equilibrar

  • Lida com falhas de lançamento com lógica de repetição integrada

Você deve pesquisar as atividades de escalonamento ou descrever seu grupo de Auto Scaling para verificar o status das operações de lançamento.

Limitações e considerações

Ao trabalhar com o provisionamento síncrono, lembre-se das seguintes notas e limitações:

  • Estado da instância após o lançamento — As instâncias retornadas pela API estão em estado pendente. Eles ainda podem falhar durante os processos de fluxo de trabalho subsequentes ou os ganchos do ciclo de vida. Uma resposta de API bem-sucedida significa que o EC2 aceitou a solicitação de execução e retornou os IDs da instância. As instâncias não são automaticamente consideradas totalmente prontas para cargas de trabalho e devem concluir os processos padrão do ciclo de vida do EC2 e do Auto Scaling.

  • Limitação de piscinas aquecidas — atualmente não há suporte para grupos de Auto Scaling com piscinas aquecidas. Se você tentar chamar a LaunchInstances API em um grupo de Auto Scaling que tenha um pool de aquecimento configurado, a API executará uma inicialização a frio em vez de usar instâncias de pool de aquecimento e retornará um UnsupportedOperation erro. Para obter mais informações sobre partidas a frio, consulte Limitações de piscinas aquecidas.

  • Tempo limite da API e novas tentativas — se a CreateFleet operação subjacente demorar mais do que o esperado, a API poderá atingir o tempo limite e retornar um token de idempotência. Você pode tentar usar o mesmo novamente ClientToken para rastrear a operação de inicialização original ou usar describe-instances com o token do cliente para verificar as instâncias iniciadas.

  • Restrições da zona de disponibilidade — Se seu grupo de Auto Scaling abrange várias zonas de disponibilidade e tem o rebalanceamento da zona de disponibilidade ativado, iniciar instâncias de forma síncrona pode causar conflitos operacionais:

    • Limitação única de AZ por chamada — Cada chamada de LaunchInstances API só pode atingir uma zona de disponibilidade, mesmo que seu grupo de Auto Scaling se estenda por várias zonas.

    • Conflitos de rebalanceamento de AZ - Se seu grupo de Auto Scaling tiver o rebalanceamento de AZ ativado, chamadas sequenciais entre AZs diferentes podem acionar lançamentos assíncronos adicionais, resultando em mais instâncias do que o pretendido. Considere suspender o rebalanceamento do AZ para um controle preciso da capacidade. Para obter mais informações, consulte Suspender e retomar os processos do Amazon EC2 Auto Scaling.

  • Cenários de sucesso parcial — A LaunchInstances API pode retornar sucesso parcial se apenas parte da capacidade solicitada estiver disponível, o que é o comportamento normal do EC2. A API retorna instâncias iniciadas com sucesso junto com detalhes de erros de execuções malsucedidas. Para casos de uso que exigem que todas as instâncias sejam executadas juntas (como aplicativos que precisam de todas as instâncias na mesma AZ para baixa latência), você precisará encerrar instâncias parcialmente iniciadas e tentar novamente em uma AZ diferente. Considere esse comportamento ao criar uma lógica de repetição para cargas de trabalho sensíveis à capacidade.

  • Pesos de instância — Se seu grupo de Auto Scaling usa pesos de instância, RequestedCapacity o parâmetro representa unidades de capacidade ponderada, não o número de instâncias. O número real de instâncias lançadas depende dos tipos de instância selecionados e de seus pesos configurados. O EC2 Auto Scaling limita o lançamento a 100 instâncias por chamada de API, independentemente da capacidade ponderada solicitada.

  • Tipos de instâncias mistas — A LaunchInstances API usa a política de instâncias mistas existente do seu grupo de Auto Scaling para determinar quais tipos de instância iniciar. A API inicia instâncias de acordo com a estratégia de alocação e as prioridades do tipo de instância do seu grupo.