AWS Elastic Beanstalk
Guia do desenvolvedor

Opções de configuração

O Elastic Beanstalk define um grande número de opções de configuração que você pode usar para configurar o comportamento de seu ambiente e os recursos que ele contém. As opções de configuração são organizadas em namespaces, como aws:autoscaling:asg, que define opções para um grupo de Auto Scaling do ambiente.

O Console do Elastic Beanstalk e a EB CLI definem opções de configuração quando você cria um ambiente, incluindo opções que você define explicitamente, e valores recomendados definidos pelo cliente. Você também pode definir as opções de configuração em configurações salvas e em arquivos de configuração. Se a mesma opção for definida em várias localizações, o valor usado é determinado pela ordem de precedência.

As definições de opção de configuração podem ser elaboradas em formato de texto e salvas antes da criação do ambiente, aplicadas durante a criação do ambiente usando qualquer cliente compatível e adicionadas, modificadas ou removidas após a criação do ambiente. Para ver uma discriminação detalhada de todos os métodos disponíveis para trabalhar com as opções de configuração em cada um desses três estágios, leia os seguintes tópicos:

Para obter uma lista completa de namespaces e opções, incluindo os valores padrão e compatíveis de cada um deles, consulte Opções gerais para todos os ambientes e Opções específicas para a plataforma.

Precedência

Durante a criação do ambiente, as opções de configuração são aplicadas de várias fontes com a seguinte precedência, da mais alta para a mais baixa:

  • Configurações aplicadas diretamente ao ambiente – Configurações especificadas durante uma operação de criação ou de atualização do ambiente na CLI do Elastic Beanstalk por qualquer cliente, incluindo o Console de gerenciamento da AWS, a EB CLI, a AWS CLI e os SDKs. O Console de gerenciamento da AWS e a EB CLI também aplicam os valores recomendados de algumas opções aplicáveis nesse nível, a menos que sejam substituídos.

  • Configurações salvas – As configurações para quaisquer opções que não são aplicadas diretamente ao ambiente são carregadas de uma configuração salva, se especificado.

  • Arquivos de configuração (.ebextensions) – As configurações para quaisquer opções que não são aplicadas diretamente ao ambiente, e também não são especificadas em uma configuração salva, são carregadas de arquivos de configuração na pasta .ebextensions na raiz do pacote de origem do aplicativo.

    Os arquivos de configuração são executados em ordem alfabética. Por exemplo, .ebextensions/01run.config é executado antes de .ebextensions/02do.config.

  • Valores padrão – Se uma opção de configuração tem um valor padrão, ela é aplicada apenas quando a opção não é definida em nenhum dos níveis acima.

Se a mesma opção de configuração for definida em mais de um local, a configuração com a precedência mais alta será aplicada. Quando uma configuração é aplicada de uma configuração salva ou de configurações aplicadas diretamente ao ambiente, ela é armazenada como parte da configuração do ambiente. Essas configurações podem ser removidas com a AWS CLI ou com a EB CLI.

As configurações nos arquivos de configuração não são aplicadas diretamente ao ambiente e não podem ser removidas sem modificar os arquivos de configuração e implantar uma nova versão do aplicativo. Se uma configuração aplicada com um dos outros métodos for removida, a mesma configuração será carregada dos arquivos de configuração no pacote de origem.

Por exemplo, suponha que você defina o número mínimo de instâncias em seu ambiente como 5 durante a criação dele, usando o Console de gerenciamento da AWS, uma opção de linha de comando ou uma configuração salva. O pacote de origem do seu aplicativo também inclui um arquivo de configuração que define o número mínimo de instâncias como 2.

Quando você cria o ambiente, o Elastic Beanstalk define a opção MinSize no namespace aws:autoscaling:asg como 5. Em seguida, se você remover a opção da configuração do ambiente, o valor no arquivo de configuração será carregado, e o número mínimo de instâncias será definido como 2. Na sequência, se você remover o arquivo de configuração do pacote de origem e reimplantá-lo, o Elastic Beanstalk usará a configuração padrão de 1.

Valores recomendados

A Interface da Linha de Comando do Elastic Beanstalk (EB CLI) e o Console do Elastic Beanstalk oferecem valores recomendados para algumas opções de configuração. Esses valores podem ser diferentes dos valores padrão e são definidos no nível da API quando o ambiente é criado. Os valores recomendados permitem que o Elastic Beanstalk melhore a configuração do ambiente padrão sem fazer alterações na API incompatíveis com as versões anteriores.

Por exemplo, a EB CLI e o Console do Elastic Beanstalk definem a opção de configuração para o tipo de instância do EC2 (InstanceType no namespace aws:autoscaling:launchconfiguration). Cada cliente dispõe de um método diferente para substituir a configuração padrão. No console, você pode escolher um tipo de instância diferente em um menu suspenso na página Configuration Details do assistente Create New Environment. Com a EB CLI, você pode usar o parâmetro --instance_type para eb create.

Como os valores recomendados são definidos no nível da API, eles substituirão os valores para as mesmas opções que você definir nos arquivos de configuração ou nas configurações salvas. As seguintes opções são definidas:

Console do Elastic Beanstalk

  • Namespace: aws:autoscaling:launchconfiguration

    Nomes das opções: IamInstanceProfile, EC2KeyName, InstanceType

  • Namespace: aws:autoscaling:updatepolicy:rollingupdate

    Nomes das opções: RollingUpdateType e RollingUpdateEnabled

  • Namespace: aws:elasticbeanstalk:application

    Nome da opção: Application Healthcheck URL

  • Namespace: aws:elasticbeanstalk:command

    Nome da opção: DeploymentPolicy, BatchSize e BatchSizeType

  • Namespace: aws:elasticbeanstalk:environment

    Nome da opção: ServiceRole

  • Namespace: aws:elasticbeanstalk:healthreporting:system

    Nome da opção: SystemType e HealthCheckSuccessThreshold

  • Namespace: aws:elasticbeanstalk:sns:topics

    Nome da opção: Notification Endpoint

  • Namespace: aws:elasticbeanstalk:sqsd

    Nome da opção: HttpConnections

  • Namespace: aws:elb:loadbalancer

    Nome da opção: CrossZone

  • Namespace: aws:elb:policies

    Nomes das opções: ConnectionDrainingTimeout e ConnectionDrainingEnabled

EB CLI

  • Namespace: aws:autoscaling:launchconfiguration

    Nomes das opções: IamInstanceProfile, InstanceType

  • Namespace: aws:autoscaling:updatepolicy:rollingupdate

    Nomes das opções: RollingUpdateType e RollingUpdateEnabled

  • Namespace: aws:elasticbeanstalk:command

    Nome da opção: BatchSize e BatchSizeType

  • Namespace: aws:elasticbeanstalk:environment

    Nome da opção: ServiceRole

  • Namespace: aws:elasticbeanstalk:healthreporting:system

    Nome da opção: SystemType

  • Namespace: aws:elb:loadbalancer

    Nome da opção: CrossZone

  • Namespace: aws:elb:policies

    Nomes das opções: ConnectionDrainingEnabled