Grupo do Auto Scaling para o seu ambiente do Elastic Beanstalk - AWS Elastic Beanstalk

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á.

Grupo do Auto Scaling para o seu ambiente do Elastic Beanstalk

Seu AWS Elastic Beanstalk ambiente inclui um grupo de Auto Scaling que gerencia as instâncias do Amazon EC2 em seu ambiente. Em um ambiente de instância única, o grupo de Auto Scaling garante que sempre haja uma instância em execução. Em um ambiente com balanceamento de carga, o grupo é configurado com um intervalo de instâncias a serem executadas, e o Auto Scaling adiciona ou remove instâncias conforme necessário com base na carga.

O grupo do Auto Scaling também aplica a configuração de execução para as instâncias no seu ambiente. Você pode modificar a configuração de execução para alterar o tipo de instância, o par de chaves, o armazenamento do Amazon Elastic Block Store (Amazon EBS) e outras configurações que só podem ser definidas quando você inicia uma instância.

O grupo Auto Scaling usa dois CloudWatch alarmes da Amazon para acionar operações de escalabilidade. Os acionadores padrão são escalados quando a média de tráfego de rede de saída de cada instância é mais alta que 6 MiB ou mais baixa que 2 MiB durante um período de cinco minutos. Para usar o Auto Scaling com eficiência, configure acionadores que são apropriados para sua aplicação, tipo de instância e requisitos de serviço. Você pode dimensionar com base em várias estatísticas, incluindo latência, E/S de disco, utilização de CPU e a contagem de solicitações.

Para otimizar a utilização de instâncias do Amazon EC2 pelo seu ambiente por meio de períodos previsíveis de tráfego de pico, configure o grupo de Auto Scaling para alterar a contagem de instâncias dele com base em um agendamento. Você pode programar alterações em sua configuração do grupo que sejam repetidas uma vez por dia ou uma vez por semana, ou programar as alterações de uma só vez para se preparar para eventos de marketing que irão gerar uma grande quantidade de tráfego para o seu site.

Como opção, o Elastic Beanstalk pode combinar instâncias sob demanda e Spot para o seu ambiente. Você pode configurar o Amazon EC2 Auto Scaling para monitorar e responder automaticamente às alterações que afetam a disponibilidade de suas instâncias spot habilitando o Rebalanceamento de capacidade.

O Auto Scaling monitora a integridade de cada instância do Amazon EC2 que ele executa. Se alguma instância for encerrada inesperadamente, o Auto Scaling detectará o encerramento e executará uma instância de substituição. Para configurar o grupo para usar o mecanismo de verificação de integridade do balanceador de carga, consulte Configuração da verificação de integridade do Auto Scaling.

É possível configurar o Auto Scaling para seu ambiente usando o console do Elastic Beanstalk, a CLI do EB ou as opções de configuração.

Suporte à instância spot

Para aproveitar as Instâncias spot do Amazon EC2, você pode habilitar uma opção Spot para o seu ambiente. O grupo de Auto Scaling do ambiente combina opções de compra do Amazon EC2 e mantém uma combinação de instâncias sob demanda e spot.

Este tópico descreve os seguintes métodos para habilitar solicitações de instância spot para seu ambiente:

Importante

A demanda por instâncias Spot pode variar significativamente de um momento para outro, e a disponibilidade das instâncias Spot também pode variar significativamente dependendo de quantas instâncias do Amazon EC2 não utilizadas estão disponíveis. É sempre possível que sua instância spot seja interrompida.

Para ajudar a minimizar o impacto dessas interrupções em sua aplicação, você pode habilitar a opção Rebalanceamento de capacidade incluída no Amazon EC2 Auto Scaling. Com esse recurso habilitado, o EC2 tenta substituir automaticamente instâncias spot em um grupo do Auto Scaling antes que elas sejam interrompidas. Para habilitar esse recurso, use o console do Elastic Beanstalk para configurar o grupo do Auto Scaling. Como alternativa, é possível definir a EnableCapacityRebalancing opção de configuração do Elastic Beanstalk no true namespace aws:autoscaling:asg.

Para obter mais informações, consulte Rebalanceamento de capacidade no Guia do usuário do Amazon EC2 Auto Scaling e Interrupções de instância spot no Guia do usuário do Amazon EC2.

O Elastic Beanstalk fornece várias opções de configuração para oferecer suporte ao recurso spot. Elas são abordadas nas seções a seguir sobre como configurar o grupo do Auto Scaling.

Duas dessas opções, no namespace aws:ec2:instances merecem atenção especial:

  • SpotFleetOnDemandBase

  • SpotFleetOnDemandAboveBasePercentage

Essas duas opções se correlacionam com a MinSize opção no namespace aws:autoscaling:asg:

  • Somente MinSize determina a capacidade inicial do seu ambiente — o número de instâncias que você deseja executar no mínimo.

  • SpotFleetOnDemandBase não afeta a capacidade inicial. Quando o Spot está habilitado, essa opção determina somente quantas instâncias sob demanda são provisionadas antes de qualquer instância spot ser considerada.

  • Considere quandoSpotFleetOnDemandBase for menor que MinSize. Você ainda vai ter exatas MinSize instâncias como capacidade inicial. No mínimo SpotFleetOnDemandBase delas devem ser instâncias sob demanda.

  • Considere quando SpotFleetOnDemandBase for maior que MinSize. À medida que o ambiente tiver aumento da escala, você terá, pelo menos,uma quantidade adicional de instâncias igual à diferença entre os dois valores. Em outras palavras, você tem a garantia de que obterá pelo menos uma (SpotFleetOnDemandBase - MinSize) instância adicional sob demanda antes de atender ao SpotFleetOnDemandBase requisito.

Em ambientes de produção, as instâncias spot são particularmente úteis como parte de um ambiente escalável e com balanceamento de carga. Não recomendamos o uso de spot em um ambiente de instância única. Se as instâncias spot não estiverem disponíveis, você poderá perder toda a capacidade (uma única instância) do seu ambiente. Você ainda pode usar uma instância spot em um ambiente de instância única para desenvolvimento ou teste. Neste caso, certifique-se de definir ambas SpotFleetOnDemandBase e SpotFleetOnDemandAboveBasePercentage de zerar. Quaisquer outras configurações resultam em uma instância sob demanda.

Observações
  • Algumas AWS contas mais antigas podem fornecer ao Elastic Beanstalk tipos de instância padrão que não são compatíveis com instâncias spot (por exemplo, t1.micro). Se você habilitar solicitações de instância spot e vir o erro Nenhum dos tipos de instância especificados oferece suporte a spot, certifique-se de configurar os tipos de instância que oferecem suporte a spot. Para escolher os tipos de instância spot, use o Spot Instance Advisor.

  • Habilitar solicitações de instância spot requer o uso de modelos de execução do Amazon EC2. Quando você configura esse recurso durante a criação ou nas atualizações do ambiente, o Elastic Beanstalk tente configurar o ambiente para usar modelos de lançamento do Amazon EC2 (se o ambiente ainda não os estiver usando). Nesse caso, se a sua política de usuário não tiver as permissões necessárias, a criação ou as atualizações do ambiente poderão falhar. Portanto, recomendamos que você use nossa política de usuário gerenciada ou adicione as permissões necessárias às suas políticas personalizadas. Para obter detalhes sobre as permissões necessárias, consulte Criar uma política de usuário personalizada.

Os exemplos a seguir demonstram diferentes cenários de configurações das várias opções de escalabilidade. Todos os exemplos pressupõem um ambiente com balanceamento de carga e com solicitações de instância spot habilitadas.

exemplo 1: Sob demanda e spot como parte da capacidade inicial
Configurações de opção
Opção Namespace Valor

MinSize

aws:autoscaling:asg

10

MaxSize

aws:autoscaling:asg

24

SpotFleetOnDemandBase

aws:ec2:instances

4

SpotFleetOnDemandAboveBasePercentage

aws:ec2:instances

50

Neste exemplo, o ambiente começa com dez instâncias, das quais sete são sob demanda (quatro de base e 50% das seis acima da base) e três são spot. O ambiente pode ser expandido até 24 instâncias. Conforme ele é expandido, a quantidade sob demanda na parte da frota acima das quatro instâncias sob demanda de base é mantida em 50%, até um máximo de 24 instâncias no geral, das quais 14 são sob demanda (quatro de base e 50% das 20 acima da base) e dez são spot.

exemplo 2: Toda a capacidade inicial sob demanda
Configurações de opção
Opção Namespace Valor

MinSize

aws:autoscaling:asg

4

MaxSize

aws:autoscaling:asg

24

SpotFleetOnDemandBase

aws:ec2:instances

4

SpotFleetOnDemandAboveBasePercentage

aws:ec2:instances

50

Neste exemplo, o ambiente começa com quatro instâncias, todas sob demanda. O ambiente pode ser expandido até 24 instâncias. Conforme ele é expandido, a quantidade sob demanda na parte da frota acima das quatro instâncias sob demanda de base é mantida em 50%, até um máximo de 24 instâncias no geral, das quais 14 são sob demanda (quatro de base e 50% das 20 acima da base) e dez são spot.

exemplo 3: Base adicional sob demanda além da capacidade inicial
Configurações de opção
Opção Namespace Valor

MinSize

aws:autoscaling:asg

3

MaxSize

aws:autoscaling:asg

24

SpotFleetOnDemandBase

aws:ec2:instances

4

SpotFleetOnDemandAboveBasePercentage

aws:ec2:instances

50

Neste exemplo, o ambiente começa com três instâncias, todas sob demanda. O ambiente pode ser expandido até 24 instâncias. A primeira instância adicional acima das três iniciais é sob demanda, para concluir as quatro instâncias sob demanda de base. À medida que ele é expandido ainda mais, a quantidade sob demanda, na parte da frota acima das quatro instâncias sob demanda de base, é mantida em 50%, até um máximo de 24 instâncias no geral, das quais 14 são sob demanda (quatro de base e 50% das 20 acima da base) e dez são spot.

Configuração do grupo de Auto Scaling usando o console do Elastic Beanstalk

É possível configurar como o Auto Scaling funciona editando as opções de Capacidade na página deConfiguração do ambiente no console do Elastic Beanstalk.

Como configurar o grupo de Auto Scaling no console Elastic Beanstalk
  1. Abra o console do Elastic Beanstalk e, na lista Regiões, selecione sua. Região da AWS

  2. No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.

    nota

    Se você tiver muitos ambientes, use a barra de pesquisa para filtrar a lista de ambientes.

  3. No painel de navegação, escolha Configuration (Configuração).

  4. Na categoria de configuração Capacity (Capacidade), escolha Edit (Editar).

  5. Na seção Grupo do Auto Scaling, defina as configurações a seguir.

    • Tipo de ambiente: selecione Carga balanceada.

    • Mínimo de instâncias: o número mínimo de instâncias do EC2 que o grupo deve conter a qualquer momento. O grupo começa com o número mínimo de contagens e adiciona instâncias quando a condição de acionador aumentar a escala na vertical é atendida.

    • Máximo de instâncias: o número máximo de instâncias do EC2 que o grupo deve conter a qualquer momento.

      nota

      Se você usar atualizações cumulativas, verifique se a contagem máxima de instância é mais alta que a configuração do Minimum instances in service (Mínimo de instâncias em serviço) para atualizações cumulativas.

    • Composição da frota— O padrão é instâncias sob demanda. Para habilitar as solicitações de instância spot , selecione Opções e Instâncias de compras combinadas.

      As opções a seguir são habilitadas se você selecionar Habilitar as solicitações de Instância Spot:

      • Preço spot máximo — Para recomendações sobre as opções de preço máximo para instâncias spot, consulte o histórico de preços de instâncias spot no Guia do usuário do Amazon EC2.

      • Base sob demanda – O número mínimo de instâncias sob demanda que o grupo do Auto Scaling provisiona antes de considerar as instâncias spot à medida que o ambiente tiver aumento de escala.

      • Sob demanda acima da base – O percentual de instâncias sob demanda como parte da capacidade adicional que o grupo do Auto Scaling provisiona além das instâncias sob demanda.

        nota

        As opções On-Demand base (Base sob demanda) e On-Demand above base (Sob demanda acima da base) correlacionam-se com as de opções das instâncias Min (Mín.) e Max (Máx.) listadas anteriormente. Para obter mais informações sobre essas opções e exemplos, consulte Suporte à instância spot.

      • Habilitar rebalanceamento de capacidade – Essa opção só é relevante quando há pelo menos uma instância spot em seu grupo do Auto Scaling. Quando esse recurso é habilitado, o EC2 tenta automaticamente substituir instâncias spot no grupo do Auto Scaling antes que elas sejam interrompidas, minimizando as interrupções de instância spot em suas aplicações Para obter mais informações, consulte Rebalanceamento de capacidade no Manual do usuário do Amazon EC2 Auto Scaling.

    • Tipo de instância: o tipo de instância do Amazon EC2 executada para iniciar sua aplicação. Para obter detalhes, consulte Tipos de instância.

    • ID da AMI: a imagem da máquina que o Elastic Beanstalk usa para iniciar instâncias do Amazon EC2 no ambiente. Para obter detalhes, consulte ID de AMI.

    • Availability Zones (Zonas de disponibilidade): escolha o número de zonas de disponibilidade nas quais distribuir as instâncias do ambiente. Por padrão, o grupo de Auto Scaling executa instâncias uniformemente em todas as regiões utilizáveis. Para concentrar suas instâncias em um número menor de zonas, escolha o número de zonas a serem usadas. Para ambientes de produção, use pelo menos duas zonas para garantir que seu aplicativo está disponível caso uma zona de disponibilidade fique fora.

    • Placement (Posicionamento) (opcional): escolha as zonas de disponibilidade a serem usadas. Use esta configuração se suas instâncias precisarem se conectar a recursos em regiões específicas ou se você tiver adquirido instâncias reservadas, que são específicas da região. Se você executar seu ambiente em uma VPC personalizada, não poderá configurar essa opção. Em uma VPC personalizada, é possível escolher as zonas de disponibilidade para as sub-redes que você atribui para o seu ambiente.

    • Scaling cooldown (Desaquecimento da escalabilidade): o tempo de espera, em segundos, para que as instâncias sejam executadas ou encerradas depois da escalabilidade, antes de continuar a avaliar triggers. Para obter mais informações, consulte Desaquecimento da escalabilidade.

    Janela de configuração Auto Scaling do Elastic Beanstalk
  6. Para salvar as alterações, escolha Apply (Aplicar) na parte inferior da página.

Configuração do grupo de Auto Scaling usando a CLI do EB

Ao criar um ambiente usando o comando eb create, você pode especificar algumas opções relacionadas ao grupo do Auto Scaling no seu ambiente. Essas são algumas das opções que ajudam você a controlar a capacidade do seu ambiente.

--single

Cria o ambiente com uma instância do Amazon EC2 e nenhum balanceador de carga. Se você não usa essa opção, um balanceador de carga é adicionado ao ambienteque é criado.

--enable-spot

Habilita solicitações de instância spot para seu ambiente.

As opções a seguir para o comando eb create podem ser utilizadas somente com --enable-spot.

--instance-types

Lista os tipos de instâncias do Amazon EC2 que você deseja que seu ambiente use.

--spot-max-price

O preço máximo por hora, em USD, que você está disposto a pagar por uma instância spot. Para recomendações sobre as opções de preço máximo para instâncias spot, consulte o histórico de preços de instâncias spot no Guia do usuário do Amazon EC2.

--on-demand-base-capacity

O número mínimo de instâncias sob demanda que o grupo de Auto Scaling provisiona antes de considerar as instâncias spot à medida que o ambiente é dimensionado.

--on-demand-above-base-capacity

A porcentagem de instâncias sob demanda como parte da capacidade adicional que o grupo de Auto Scaling provisiona além do número de instâncias especificado pela opção --on-demand-base-capacity.

O exemplo a seguir cria um ambiente e configura o grupo de Auto Scaling para habilitar solicitações de instância spot para o novo ambiente. Para este exemplo, três tipos de instância podem ser usados.

$ eb create --enable-spot --instance-types "t2.micro,t3.micro,t3.small"
Importante

Há outra opção nomeada de forma semelhante chamada --instance-type (sem "s") que a EB CLI reconhece somente ao processar instâncias sob demanda. Não use --instance-type (sem "s") com a opção --enable-spot. Se você fizer isso, a EB CLI o ignorará. Em vez disso, use --instance-types (com "s") com a opção --enable-spot.

Opções de configuração

O Elastic Beanstalk fornece opções de configuração para as configurações do Auto Scaling em dois namespaces: aws:autoscaling:asg e aws:ec2:instances.

O namespace aws:autoscaling:asg

O namespace aws:autoscaling:asg fornece opções para escalabilidade e disponibilidade geral.

O arquivo de configuração demonstrativo a seguir configura o grupo de Auto Scaling para usar de duas a quatro instâncias, zonas de disponibilidade específicas e um período de desaquecimento de 12 minutos (720 segundos). O Rebalanceamento de capacidade para instâncias spot está habilitado. Esta última opção só tem efeito se EnableSpot for definida como true noaws:ec2:instances namespace, conforme mostrado no exemplo do arquivo de configuração após este.

option_settings: aws:autoscaling:asg: Availability Zones: Any Cooldown: '720' Custom Availability Zones: 'us-west-2a,us-west-2b' MaxSize: '4' MinSize: '2' EnableCapacityRebalancing: true

O namespace aws:ec2:instances

O namespace aws:ec2:instances fornece opções relacionadas às instâncias do ambiente, incluindo o gerenciamento de instância spot. Ele complementa aws:autoscaling:launchconfiguration e aws:autoscaling:asg.

Quando você atualiza a configuração do ambiente e remove um ou mais tipos de instância da opção InstanceTypes, o Elastic Beanstalk encerra todas as instâncias do Amazon EC2 em execução em qualquer um dos tipos de instância removidos. O grupo d Auto Scaling do seu ambiente executa novas instâncias, conforme necessário, para completar a capacidade desejada, usando os tipos de instância especificados atuais.

O exemplo a seguir de arquivo de configuração configura o grupo do Auto Scaling para habilitar solicitações de instância spot para seu ambiente. É possível usar três tipos de instância.. Pelo menos uma instância sob demanda é usadapara capacidade de linha de base, e um percentual sustentado de 33% de instâncias sob demanda é usado para qualquer capacidade adicional.

option_settings: aws:ec2:instances: EnableSpot: true InstanceTypes: 't2.micro,t3.micro,t3.small' SpotFleetOnDemandBase: '1' SpotFleetOnDemandAboveBasePercentage: '33'

Para escolher os tipos de instância spot, use o Spot Instance Advisor.