Configuração de capacidade para o seu ambiente do Elastic Beanstalk - AWS Elastic Beanstalk

Configuração de capacidade para o seu ambiente do Elastic Beanstalk

Este tópico descreve as diferentes abordagens para configurar a capacidade de ajuste de escala automático em seu ambiente do Elastic Beanstalk. É possível usar o console do Elastic Beanstalk, a EB CLI, a AWS CLI ou opções de namespace.

Importante

A configuração da opção EnableSpot, ou pode fazer com que o Elastic Beanstalk migre um ambiente existente com configurações de lançamento para modelos de lançamento. Para isso, é necessário ter as permissões necessárias para gerenciar modelos de lançamento. Essas permissões estão incluídas em nossa política gerenciada. Se você usar políticas personalizadas em vez de nossas políticas gerenciadas, a criação ou as atualizações do ambiente poderão falhar quando você atualizar a configuração do ambiente. Para obter mais informações e outras considerações, consulte Migrar o ambiente do Elastic Beanstalk para modelos de lançamento .

Configurar usando o console

Você pode configurar o gerenciamento de capacidade de um grupo do Auto Scaling editando Capacidade na página Configuração do ambiente no console do Elastic Beanstalk..

Para configurar a capacidade do grupo do Auto Scaling no console do Elastic Beanstalk
  1. Abra o console do Elastic Beanstalk e, na lista Regions (Regiões), selecione a sua Região da AWS.

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

  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.

      Importante

      A configuração da opção EnableSpot, ou pode fazer com que o Elastic Beanstalk migre um ambiente existente com configurações de lançamento para modelos de lançamento. Para isso, é necessário ter as permissões necessárias para gerenciar modelos de lançamento. Essas permissões estão incluídas em nossa política gerenciada. Se você usar políticas personalizadas em vez de nossas políticas gerenciadas, a criação ou as atualizações do ambiente poderão falhar quando você atualizar a configuração do ambiente. Para obter mais informações e outras considerações, consulte Migrar o ambiente do Elastic Beanstalk para modelos de lançamento .

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

      • Estratégia de alocação spot: determina o método usado para gerenciar e provisionar as instâncias spot no seu ambiente, com base na capacidade disponível, no preço e na seleção dos tipos de instância. Selecione entre Capacidade otimizada (padrão), Capacidade de preço otimizada, Capacidade otimizada priorizada ou Preço mais baixo. Para obter uma descrição de cada estratégia de alocação e obter mais informações, consulte Estratégia de alocação de instâncias spot.

      • Preço Spot máximo: para obter recomendações sobre as opções de preço máximo para Instâncias Spot, consulte 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 Base sob demanda e Sob demanda acima da base correlacionam-se com as de opções das instâncias Mín. e Máx. listadas anteriormente. Para obter mais informações sobre essas opções e exemplos, consulte Suporte a instâncias spot para seu ambiente do Elastic Beanstalk.

      • 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 Guia do usuário do Amazon EC2 Auto Scaling.

    • Arquitetura: a arquitetura do processador para as suas instâncias do EC2. A arquitetura do processador determina os tipos de instância do EC2 que se tornam disponíveis no próximo campo.

    • Tipos de instância: os tipos de instância do Amazon EC2 executadas para iniciar sua aplicação. Para obter mais 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 mais 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.

  6. Para salvar as alterações, escolha Apply (Aplicar) na parte inferior da página.

Configuração usando opções de namespace

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). Permite o Rebalanceamento de capacidade para instâncias spot. Essa opção EnableCapacityRebalancing só terá efeito se EnableSpot for definida como true no namespace aws:ec2:instances, 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

nota

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

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. Ele designa três tipos de instância possíveis que podem ser usados. 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.

A configuração define a estratégia de alocação spot como capacity-optimized-prioritized. Essa estratégia de alocação específica prioriza as inicializações de instâncias do grupo com base na ordem dos tipos de instância especificados na opção InstanceTypes. Se SpotAllocationStrategy não for especificado, o padrão será capacity-optimized.

option_settings: aws:ec2:instances: EnableSpot: true InstanceTypes: 't2.micro,t3.micro,t3.small' SpotAllocationStrategy: capacity-optimized-prioritized SpotFleetOnDemandBase: '1' SpotFleetOnDemandAboveBasePercentage: '33'

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

Importante

A configuração da opção EnableSpot, ou pode fazer com que o Elastic Beanstalk migre um ambiente existente com configurações de lançamento para modelos de lançamento. Para isso, é necessário ter as permissões necessárias para gerenciar modelos de lançamento. Essas permissões estão incluídas em nossa política gerenciada. Se você usar políticas personalizadas em vez de nossas políticas gerenciadas, a criação ou as atualizações do ambiente poderão falhar quando você atualizar a configuração do ambiente. Para obter mais informações e outras considerações, consulte Migrar o ambiente do Elastic Beanstalk para modelos de lançamento .

Configuração usando a AWS CLI

Esta seção fornece exemplos de como você pode usar o comando create-environment da AWS CLI para configurar seu ambiente com as opções Auto Scaling e Capacidade descritas nessas seções. Você notará que as configurações de namespace para aws:autoscaling:asg e aws:ec2:instances, conforme descrito na seção anterior de opções de configuração de namespace, também estão definidas com esse exemplo.

A AWS Command Line Interface fornece comandos para criar e configurar ambientes do Elastic Beanstalk. Com a opção --option-settings, você pode transmitir opções de namespace compatíveis com o Elastic Beanstalk. Isso significa que as opções de configuração de namespace descritas anteriormente podem ser passadas para comandos da AWS CLI aplicáveis para configurar seu ambiente do Elastic Beanstalk.

nota

Você também pode usar o comando update-environment com --option-settings para adicionar ou atualizar opções de namespace. Se você precisar remover qualquer opção de namespace do seu ambiente, use o update-environment comando com --options-to-remove.

O exemplo a seguir cria um novo ambiente.₢ Consulte o tópico anterior Opções de configuração de namespace para obter mais contexto sobre as opções que são passadas.

A primeira opção listada, IamInstanceProfile no namespace aws:autoscaling:launchconfiguration, é o perfil da instância do Elastic Beanstalk. Ele é necessário ao criar um novo ambiente.

exemplo — create-environment com opções do Auto Scaling (opções de namespace inline)
aws elasticbeanstalk create-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2023 v4.3.0 running Python 3.12" \ --option-settings \ Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role Namespace=aws:autoscaling:asg,OptionName=Availability Zones,Value=Any \ Namespace=aws:autoscaling:asg,OptionName=Cooldown,Value=720 \ Namespace=aws:autoscaling:asg,OptionName=Custom Availability Zones,Value=us-west-2a,us-west-2b \ Namespace=aws:autoscaling:asg,OptionName=MaxSize,Value=4 \ Namespace=aws:autoscaling:asg,OptionName=MinSize,Value=2 \ Namespace=aws:autoscaling:asg,OptionName=EnableCapacityRebalancing,Value=true \ Namespace=aws:ec2:instances,OptionName=EnableSpot,Value=true \ Namespace=aws:ec2:instances,OptionName=InstanceTypes,Value=t2.micro,t3.micro,t3.small \ Namespace=aws:ec2:instances,OptionName=SpotAllocationStrategy,Value=capacity-optimized-prioritized \ Namespace=aws:ec2:instances,OptionName=SpotFleetOnDemandBase,Value=1 \ Namespace=aws:ec2:instances,OptionName=SpotFleetOnDemandAboveBasePercentage,Value=33

Importante

A configuração da opção EnableSpot, ou pode fazer com que o Elastic Beanstalk migre um ambiente existente com configurações de lançamento para modelos de lançamento. Para isso, é necessário ter as permissões necessárias para gerenciar modelos de lançamento. Essas permissões estão incluídas em nossa política gerenciada. Se você usar políticas personalizadas em vez de nossas políticas gerenciadas, a criação ou as atualizações do ambiente poderão falhar quando você atualizar a configuração do ambiente. Para obter mais informações e outras considerações, consulte Migrar o ambiente do Elastic Beanstalk para modelos de lançamento .

Outra opção é usar um arquivo options.json para especificar as opções de namespace em vez de incluí-las inline.

exemplo —create-environment com opções do Auto Scaling (opções de namespace no arquivo options.json)
aws elasticbeanstalk create-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2023 v4.3.0 running Python 3.12" --option-settings file://options.json
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "Availability Zones", "Value": "Any" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "Cooldown", "Value": "720" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "Custom Availability Zones", "Value": "us-west-2a,us-west-2b" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "MaxSize", "Value": "4" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "MinSize", "Value": "2" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "EnableCapacityRebalancing", "Value": "true" }, { "Namespace": "aws:ec2:instances", "OptionName": "EnableSpot", "Value": "true" }, { "Namespace": "aws:ec2:instances", "OptionName": "InstanceTypes", "Value": "t2.micro,t3.micro,t3.small" }, { "Namespace": "aws:ec2:instances", "OptionName": "SpotAllocationStrategy", "Value": "capacity-optimized-prioritized" }, { "Namespace": "aws:ec2:instances", "OptionName": "SpotFleetOnDemandBase", "Value": "1" }, { "Namespace": "aws:ec2:instances", "OptionName": "SpotFleetOnDemandAboveBasePercentage", "Value": "33" } ]

Configuração usando a EB CLI

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.

Importante

A configuração da opção enable-spot, ou pode fazer com que o Elastic Beanstalk migre um ambiente existente com configurações de lançamento para modelos de lançamento. Para isso, é necessário ter as permissões necessárias para gerenciar modelos de lançamento. Essas permissões estão incluídas em nossa política gerenciada. Se você usar políticas personalizadas em vez de nossas políticas gerenciadas, a criação ou as atualizações do ambiente poderão falhar quando você atualizar a configuração do ambiente. Para obter mais informações e outras considerações, consulte Migrar o ambiente do Elastic Beanstalk para modelos de lançamento .

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 opções de preço máximo para instâncias Spot, consulte 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.