Tutorial: Configurar um aplicativo escalonado e com load balancer - Auto Scaling do Amazon EC2

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

Tutorial: Configurar um aplicativo escalonado e com load balancer

Importante

Antes de explorar este tutorial, recomendamos que você primeiramente examine o tutorial introdutório: Conceitos básicos de Amazon EC2 Auto Scaling.

Registrar o grupo de Auto Scaling em um load balancer do Elastic Load Balancing ajuda você a configurar um aplicativo com balanceamento de carga. O Elastic Load Balancing funciona com o Amazon EC2 Auto Scaling para distribuir o tráfego de entrada nas instâncias íntegras do Amazon EC2. Isso aumenta a escalabilidade e a disponibilidade do seu aplicativo. É possível habilitar o Elastic Load Balancing em várias zonas de disponibilidade para aumentar a tolerância a falhas dos aplicativos.

Neste tutorial, abordamos as etapas básicas para configurar um aplicativo com balanceamento de carga quando o grupo do Auto Scaling é criado. Para registrar um grupo do Auto Scaling existente com um load balancer, consulte Anexar um load balancer em vez disso.

O Elastic Load Balancing é compatível com três tipos de balanceador de carga: Application Load Balancers, Network Load Balancers e Classic Load Balancers. Recomendamos usar Application Load Balancers ou Network Load Balancers. No entanto, ainda será possível usar um Classic Load Balancer se ele oferecer suporte aos recursos de que seu aplicativo precisa.

Para obter mais informações, consulte Elastic Load Balancing e Amazon EC2 Auto Scaling.

O procedimento para implantar essa arquitetura escalável e com balanceamento de carga para tráfego dinâmico consiste nas seguintes etapas:

  • (Opcional) Crie o modelo de execução ou a configuração de execução que servirá como um modelo para as instâncias. Escolha o modelo de execução ou as instruções de configuração de execução de acordo com sua preferência. Ignore esta etapa se quiser usar seu próprio modelo de execução ou configuração de execução.

  • Depois, crie o grupo de Auto Scaling e associe o load balancer.

  • Por fim, verifique se o load balancer está associado

Prerequisites

  • Você tem um load balancer e um grupo de destino criados para usar. Com Application Load Balancers ou Network Load Balancers, o grupo de Auto Scaling é registrado em um grupo de destino associado ao load balancer. Certifique-se de escolher as mesmas zonas de disponibilidade para o load balancer que você planeja habilitar para o grupo do Auto Scaling. Para obter mais informações, consulte Conceitos básicos do Elastic Load Balancing no Guia do usuário do Elastic Load Balancing.

  • Você tem um grupo de segurança para o modelo de execução ou a configuração de execução que permite o acesso do load balancer na porta do listener (geralmente na porta 80 para tráfego HTTP) e na porta na qual você deseja que o Elastic Load Balancing execute verificações de integridade. Para obter mais informações, consulte a documentação aplicável:

    Se as instâncias tiverem endereços IP públicos, também será possível permitir tráfego de SSH se você precisar se conectar a instâncias.

  • (Opcional) Ter uma função do IAM que conceda ao seu aplicativo o acesso de que ele precisa à AWS.

  • (Opcional) Ter uma imagem de máquina da Amazon (AMI) definida como sendo o modelo de origem para suas instâncias do Amazon EC2. Para criar um agora, execute uma instância. Especifique a função do IAM (se tiver criado uma) e os scripts de configuração de que você precisa como dados do usuário. Conecte-se à instância e personalize-a. Por exemplo, instalar softwares e aplicativos, copiar dados e anexar volumes adicionais do EBS. Teste os aplicativos na sua instância para garantir que ela está configurada corretamente. Salve esta configuração atualizada como uma AMI personalizada. Será possível encerrar a instância se ela não for necessária posteriormente. Entre as instâncias executadas nessa AMI personalizada estão as personalizações que você fez quando criou a AMI.

  • Este tutorial se refere à VPC padrão, mas é possível usar a própria VPC. Neste último caso, certifique-se de que a VPC tenha uma sub-rede mapeada para cada zona de disponibilidade da região da AWS na qual você está trabalhando. No mínimo, é necessário ter duas sub-redes públicas disponíveis para criar o load balancer e duas sub-redes privadas ou duas sub-redes públicas para criar o grupo de Auto Scaling e registrá-lo no load balancer.

Implantar o aplicativo (console)

As seções a seguir o orientam no processo de implantação do aplicativo.

Criar um modelo de execução

É necessário ter um modelo ou uma configuração de execução. Se você já tem uma configuração de ativação que gostaria de usar, ignore esta etapa.

Para criar um modelo de execução (console)

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. Na barra de navegação na parte superior da tela, escolha a região da AWS onde o load balancer foi criado.

  3. No painel de navegação, em INSTÂNCIAS, escolha Modelos de execução.

  4. Escolha Create launch template (Criar modelo de execução).

  5. Insira um nome e forneça uma descrição para a versão inicial do modelo de execução.

  6. Em Amazon machine image (AMI) (Imagem de máquina da Amazon (AMI)), insira o ID da AMI para suas instâncias como critérios de pesquisa.

  7. Em Instance type (Tipo de instância), selecione uma configuração de hardware para as suas instâncias que seja compatível com a AMI que você especificou.

  8. (Opcional) Em Key pair (login) (Par de chaves (login)), escolha o par de chaves a ser usado ao se conectar às instâncias.

  9. Em Network interfaces (Interfaces de rede), faça o seguinte:

    1. Escolha Add network interface (Adicionar interface de rede). Vamos optar por especificar a interface de rede para a finalidade deste tutorial.

    2. (Opcional) Em Atribuir IP público automaticamente, mantenha o valor padrão, Não incluir no modelo de execução. Ao criar o grupo de Auto Scaling, é possível atribuir um endereço IP público a instâncias no grupo de Auto Scaling usando sub-redes que têm o atributo de endereçamento IP público habilitado, como as sub-redes padrão na VPC padrão. Como alternativa, se você não precisar se conectar às instâncias, escolha Desabilitar para impedir que as instâncias do grupo recebam tráfego diretamente da Internet. Nesse caso, elas receberão tráfego somente do load balancer.

    3. Em Security group ID (ID do security group), especifique um security group para suas instâncias na mesma VPC do load balancer.

    4. Em Excluir no encerramento, escolha Sim para que a interface de rede seja excluída quando o grupo de Auto Scaling for reduzido e encerre a instância à qual a interface de rede está associada.

  10. (Opcional) Para distribuir as credenciais de forma segura para suas instâncias, em Advanced details (Detalhes avançados), IAM instance profile (Perfil de instância do IAM), insira o nome de recurso da Amazon (ARN) de sua função do IAM.

  11. (Opcional) Para especificar os dados do usuário ou um script de configuração para suas instâncias, copie-os em Advanced details (Detalhes avançados), User data (Dados do usuário).

  12. Escolha Create launch template (Criar modelo de execução).

  13. Na página de confirmação, escolha Criar grupo do Auto Scaling.

Criar uma configuração de execução

Se você já tem uma configuração de ativação que gostaria de usar, ignore esta etapa.

Para criar uma configuração de execução (console)

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, em AUTO SCALING, escolha Configurações de execução.

  3. Na barra de navegação na parte superior da tela, escolha a região da AWS onde o load balancer foi criado.

  4. Escolha Create launch configuration (Criar configuração de execução) e insira um nome para sua configuração de execução.

  5. Em Amazon machine image (AMI) (Imagem de máquina da Amazon (AMI)), insira o ID da AMI para suas instâncias como critérios de pesquisa.

  6. Em Instance type (Tipo de instância), selecione uma configuração de hardware para sua instância.

  7. Em Additional configuration (Configuração adicional), preste atenção aos seguintes campos:

    1. (Opcional) Para distribuir credenciais com segurança para sua instância do EC2, em IAM instance profile (Perfil de instância do IAM), selecione sua função do IAM. Para obter mais informações, consulte Função do IAM para aplicativos que são executados em instâncias doAmazon EC2.

    2. (Opcional) Para especificar os dados do usuário ou um script de configuração para sua instância, cole-o em Advanced details (Detalhes avançados), User data (Dados do usuário).

    3. (Opcional) Em Detalhes avançados, Tipo de endereço IP, mantenha o valor padrão. Ao criar o grupo de Auto Scaling, é possível atribuir um endereço IP público a instâncias no grupo de Auto Scaling usando sub-redes que têm o atributo de endereçamento IP público habilitado, como as sub-redes padrão na VPC padrão. Como alternativa, se você não precisar se conectar às instâncias, escolha Não atribuir um endereço IP público a nenhuma instância para impedir que as instâncias no grupo recebam tráfego diretamente da Internet. Nesse caso, elas receberão tráfego somente do load balancer.

  8. Em Security groups (Grupos de segurança), escolha um grupo de segurança existente da mesma VPC do load balancer. Se você deixar a opção Create a new security group selecionada, uma regra SSH padrão será configurada para instâncias do Amazon EC2 que executam o Linux. Uma regra RDP padrão é configurada para instâncias do Amazon EC2 executando Windows.

  9. Em Key pair (login) (Par de chaves (login)), escolha uma opção em Key pair options (Opções de par de chaves).

    Se já tiver configurado um par de chaves de instância do Amazon EC2, você pode escolhê-lo aqui.

    Caso você ainda não tenha um par de chaves da instância do Amazon EC2, escolha Create a new key pair (Criar um novo par de chaves) e atribua a ele um nome reconhecível. Escolha Download key pair (Fazer download do par de chaves) para fazer download do par de chaves no computador.

    Importante

    Se você precisar se conectar às suas instâncias, não escolha Proceed without a key pair (Continuar sem um par de chaves).

  10. Selecione a caixa de confirmação e escolha Criar configuração de execução.

  11. Marque a caixa de seleção ao lado do nome da nova configuração de execução e escolha Actions (Ações), Create Auto Scaling group (Criar grupo de Auto Scaling).

Criar um grupo do Auto Scaling

Assim que seguir as instruções acima, você estará pronto para prosseguir com o assistente para criar um grupo do Auto Scaling.

Use o procedimento a seguir para continuar de onde parou depois de criar o modelo de execução ou a configuração de execução.

Para criar um grupo do Auto Scaling (console)

  1. Se você ainda não navegou até a página Grupos do Auto Scaling, faça o seguinte:

    1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

    2. No painel de navegação, em AUTO SCALING, escolha Grupos de Auto Scaling.

  2. Selecione Criar um grupo de Auto Scaling.

  3. Na página Choose launch template or configuration (Escolher configuração ou modelo de execução), em Auto Scaling group name (Nome do grupo de Auto Scaling), insira um nome para o grupo de Auto Scaling.

  4. Em Launch template (Modelo de execução), escolha uma das seguintes opções:

    1. [Somente modelo de execução] Escolha o modelo de execução que você criou e escolha se o grupo do Auto Scaling usará a versão padrão, a mais recente ou uma versão específica do modelo de execução ao expandir.

    2. [Somente configuração de execução] Escolha Switch to launch configuration (Alternar para configuração de execução) e escolha a configuração de execução criada.

  5. Selecione Next (Próximo).

    A página Configure settings (Definir configurações) será exibida, permitindo que você defina as configurações de rede e oferecendo opções para habilitar a diversificação nas instâncias sob demanda e spot de vários tipos de instância (se você escolher um modelo de execução).

  6. [Somente modelo de execução] Mantenha a opção Purchase options and instance types (Opções de compra e tipos de instância) definida como Adhere to the launch template (Adotar o modelo de execução) para usar o tipo de instância do EC2 e a opção de compra especificados no modelo de execução.

  7. Em Rede, escolha a VPC usada para o load balancer. Se você escolher a VPC padrão, ela será configurada automaticamente para fornecer conectividade com a Internet às instâncias. Essa VPC inclui uma sub-rede pública em cada zona de disponibilidade na região.

  8. Para Sub-rede, escolha uma ou mais sub-redes de cada zona de Disponibilidade que você deseja incluir, com base nas zonas de disponibilidade onde se encontra o load balancer.

  9. Selecione Next (Próximo).

  10. Na página Configure advanced options (Configurar opções avançadas), em Load balancing (Balanceamento de carga), escolha Enable load balancing (Habilitar balanceamento de carga).

  11. Execute um destes procedimentos:

    1. Escolha Application Load Balancer or Network Load Balancer (Application Load Balancer ou Network Load Balancer) e escolha seu grupo de destino.

    2. Escolha Classic Load Balancers e escolha o load balancer.

  12. (Opcional) Para usar as verificações de integridade do Elastic Load Balancing, em Health checks (Verificações de integridade), escolha ELB em Health check type (Tipo de verificação de integridade).

  13. Quando terminar de configurar o grupo do Auto Scaling, escolha Skip to review (Pular para revisão).

  14. Na página Review (Revisar), examine os detalhes de seu grupo do Auto Scaling. Você pode escolher Editar para fazer alterações. Ao concluir, selecione Create Auto Scaling group (Criar grupo do &AS;).

Depois que criar o grupo do Auto Scaling com o load balancer anexado, o load balancer registrará automaticamente as novas instâncias à medida que ficarem online. Você tem somente uma instância no momento, então não há muito para registrar. No entanto, agora é possível adicionar outras instâncias atualizando a capacidade desejada do grupo. Para obter instruções detalhadas, consulte Escalabilidade manual.

(Opcional) Verificar se o load balancer está anexado

Como verificar se o load balancer está anexado (console)

  1. Na página Grupos do Auto Scaling, marque a caixa de seleção ao lado do seu grupo do .Auto Scaling

  2. Na guia Details (Detalhes), o Load balancing (Balanceamento de carga) mostra os grupo de destino do load balancer ou os Classic Load Balancers anexados.

  3. Na guia Gerenciamento de instâncias, em Instâncias, é possível verificar se as instâncias foram executadas com êxito. Inicialmente, suas instâncias estão no estado Pending. Depois que uma instância estiver pronta para receber tráfego, seu estado será InService. A coluna Health status (Status de integridade) mostra o resultado das verificações de integridade do Amazon EC2 Auto Scaling em suas instâncias. Embora uma instância possa ser marcada como íntegra, o load balancer só enviará tráfego para instâncias que passarem nas verificações de integridade do load balancer.

  4. Verifique se suas instâncias estão registradas no load balancer. No painel de navegação do console do EC2, em BALANCEAMENTO DE CARGA, escolha Grupos de destino. Selecione o grupo de destino e escolha a guia Destinos. Se o estado das suas instâncias for initial, é provável que elas ainda estejam no processo de registro ou não tenham passado pelo número mínimo de verificações de integridade para serem consideradas íntegras. Quando o estado de suas instâncias for healthy, elas estarão prontas para uso.

Implantar seu aplicativo (AWS CLI)

As seções a seguir o orientam no processo de implantação do aplicativo.

Criar um modelo de execução

Se você já tem uma configuração de ativação que gostaria de usar, ignore esta etapa.

Para criar o modelo de execução

Use o seguinte comando create-launch-template e transmita um arquivo JSON que contenha as informações para criar o modelo de execução.

aws ec2 create-launch-template --launch-template-name my-launch-template --version-description my-version-description \ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"Groups":["sg-903004f8"],"DeleteOnTermination":true}],"ImageId":"ami-01e24be29428c15b2","InstanceType":"t2.micro"}'

Criar uma configuração de execução

Se você já tem uma configuração de ativação que gostaria de usar, ignore esta etapa.

Para criar a configuração de ativação

Use o seguinte comando create-launch-configuration:

aws autoscaling create-launch-configuration --launch-configuration-name my-launch-config \ --image-id ami-01e24be29428c15b2 --instance-type t2.micro --security-groups sg-903004f8

Criar um grupo do Auto Scaling com um load balancer

Você pode associar um load balancer existente a um grupo do Auto Scaling ao criar o grupo. Você pode usar uma configuração ou um modelo de execução para configurar automaticamente as instâncias executadas pelo seu grupo do Auto Scaling.

Para criar um grupo do Auto Scaling com um Classic Load Balancer associado

Use o seguinte comando create-auto-scaling-group com a opção --load-balancer-names para criar um grupo do Auto Scaling com um Classic Load Balancer associado.

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-configuration-name my-launch-config \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --load-balancer-names "my-load-balancer" \ --max-size 5 --min-size 1 --desired-capacity 2

Para criar um grupo do Auto Scaling com um grupo de destino associado para um Balanceador de carga de aplicações ou um Load balancer de rede

Use o seguinte comando create-auto-scaling-group com a opção --target-group-arns para criar um grupo do Auto Scaling com um grupo de destino associado.

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-template "LaunchTemplateName=my-launch-template,Version=1" \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --target-group-arns "arn:aws:elasticloadbalancing:region:123456789012:targetgroup/my-targets/1234567890123456" \ --max-size 5 --min-size 1 --desired-capacity 2

Próximas etapas

Agora que você concluiu este tutorial, é possível aprender mais:

  • É possível configurar o grupo de Auto Scaling para usar uma política de dimensionamento para aumentar ou diminuir automaticamente o número de instâncias à medida que a demanda nas instâncias for alterada. Isso permite que o grupo lide com alterações na quantidade de tráfego que o aplicativo recebe. Para obter mais informações, consulte Políticas de escalabilidade de rastreamento de destino.

  • Se quiser saber como criar programações automatizadas para escalabilidade, o Escalabilidade programada fornece uma introdução à programação de um grupo do Auto Scaling para dimensionar usando ações de escalabilidade únicas ou recorrentes.

  • É possível configurar o grupo do Auto Scaling para usar verificações de integridade do Elastic Load Balancing. Se você habilitar as verificações de integridade do load balancer e houver falha nas verificações de integridade de uma instância, o grupo de Auto Scaling considerará a instância como não íntegra e a substituirá. Para obter mais informações, consulte Adicionar verificações de integridade do ELB.

  • É possível expandir o aplicativo para uma zona de disponibilidade adicional na mesma região da AWS para aumentar a tolerância a falhas em caso de interrupção do serviço. Para obter mais informações, consulte Como adicionar uma Zona de disponibilidade.

Limpar recursos da AWS

Você concluiu com êxito o tutorial. Para evitar cobranças desnecessárias em sua conta por recursos que não está usando, limpe os recursos que você criou apenas para este tutorial. Para obter instruções detalhadas, consulte Excluir a infraestrutura doAuto Scaling.