Começando com o AWS EC2 Autoscaling

Executar um site ou aplicativo não precisa ser custoso. Na verdade, existem maneiras de economizar dinheiro em recursos enquanto ainda oferece aos usuários uma ótima experiência. Um exemplo é através do AWS EC2 Autoscaling.

O Auto Scaling do EC2 é um serviço que pode ajudar a escalar automaticamente a capacidade do seu Amazon EC2 para cima ou para baixo de acordo com as condições que você define. E neste tutorial, você aprenderá como configurar e aplicar uma configuração básica de Auto Scaling do EC2 na AWS para suas aplicações.

Continue lendo e garanta que sua aplicação sempre tenha recursos sem pagar mais do que o necessário!

Pré-requisitos

Este tutorial inclui demonstrações práticas. Para acompanhar, você precisará de uma conta AWS e uma conta gratuita do nível básico será suficiente.

Criando um Modelo de Lançamento

Antes de mergulhar no Auto Scaling do AWS EC2, você primeiro precisa de uma maneira de lançar uma instância EC2, um modelo de lançamento (similar à configuração de lançamento). Um modelo de lançamento contém todas as informações necessárias para lançar uma instância EC2, como tipo de instância, sub-rede e grupos de segurança.

A AWS recomenda o uso de um modelo de lançamento, oferecendo mais flexibilidade e recursos avançados do que uma configuração de lançamento. O Auto Scaling do EC2 utiliza um modelo de lançamento para lançar novas instâncias ao escalar para cima.

Para criar um modelo de lançamento:

1. Abra o seu navegador favorito e faça login no AWS Management Console.

2. Procure por modelos de lançamento EC2 na barra de pesquisa e selecione Modelos de Lançamento nos resultados em Recursos. Isso abrirá a página de modelos de lançamento do EC2.

Opening the launch templates page

3. Em seguida, selecione uma região no menu suspenso (canto superior direito) e clique em Criar modelo de lançamento para iniciar a criação de um modelo de lançamento.

Você pode usar o dimensionamento automático em qualquer região que suporte o EC2 Auto Scaling, mas este tutorial usa US East (N. Virginia).

Initiating creating a launch template

4. Agora, configure o nome e a descrição do novo modelo de lançamento com o seguinte:

  • Nome do modelo de lançamento – obrigatório – Forneça um nome para o seu modelo de lançamento (ec2-autoscaling-template-demo). O nome deve ser exclusivo dentro da região, não ter mais de 128 caracteres e não conter caracteres especiais além de hífens (-), underscores (_), e pontos (.).
  • Descrição da versão do modelo – Insira uma descrição para o seu modelo de lançamento (ec2 autoscaling template demo), com no máximo 255 caracteres.
  • Orientação sobre Auto Scaling – Marque a opção Fornecer orientação para me ajudar a configurar um modelo que posso usar com o EC2 Auto Scaling para habilitar a orientação de auto-scaling. Esta opção facilita a criação de um modelo de inicialização compatível com o EC2 Auto Scaling.
Configuring a launch template

5. Role até a seção de Conteúdos do modelo de inicialização e escolha as imagens de aplicativo e sistema operacional para o seu modelo de inicialização com o seguinte:

  • Imagens de Aplicativo e Sistema Operacional (Amazon Machine Image) – Selecione uma imagem de inicialização para o seu modelo, mas este tutorial usa uma AMI do Amazon Linux 2. Suas instâncias EC2 serão lançadas com base na imagem de inicialização selecionada.

Você pode selecionar qualquer imagem de inicialização de sua preferência, mas uma AMI do Amazon Linux 2 é recomendada, pois é elegível para o nível gratuito.

  • Arquitetura – Selecione uma arquitetura para o seu modelo, mas este tutorial usa x86-64 (64 bits).
Providing launch template contents

6. Em seguida, defina o tipo de instância e o par de chaves (login) para o seu modelo de inicialização da seguinte maneira:

  • Tipo de instância – Selecione o tipo de instância para o seu modelo. Mas a escolha deste tutorial é t2.micro, pois é elegível para o nível gratuito.

Considere outros fatores ao selecionar um tipo de instância, como requisitos de CPU e memória, pois alguns tipos de instância custam mais do que outros.

  • Par de chaves (login) – Selecione Não incluir no modelo de inicialização pois isso não é necessário para auto-scaling.

Quando um par de chaves é especificado, o EC2 Auto Scaling lança suas instâncias com o par de chaves.

Selecting an Instance type, and Key par (login)

7. Em Configurações de Rede, escolha a opção Selecionar grupo de segurança existente e especifique uma configuração de Grupos de Segurança para suas instâncias EC2. Fazendo isso, o EC2 Auto Scaling lançará suas instâncias com este grupo de segurança.

Observe que você pode escolher a opção Criar grupo de segurança se desejar criar um novo grupo de segurança para suas instâncias EC2.

Selecting an existing security groups

8. Mantenha as outras configurações padrão e clique em Criar modelo de lançamento (canto inferior direito) na lista de alternância Resumo para criar seu modelo de lançamento.

Creating the new launch template

9. Por fim, clique em Criar grupo de Auto Scaling na seção Criar um grupo de Auto Scaling a partir do seu modelo para continuar.

Não feche a página do modelo de lançamento, pois você criará seu grupo de Auto Scaling na próxima seção, um de cada vez.

Initiating creating an Auto Scaling group

Criando um Grupo de Auto Scaling do AWS EC2

Agora que você tem um modelo de lançamento EC2, você precisará criar um grupo de Auto Scaling do AWS EC2 para conter sua instância EC2. O AWS EC2 Auto Scaling possui recursos que permitem que você use substituições de verificação de saúde e políticas de dimensionamento.

Você pode criar um grupo de Auto Scaling com várias instâncias, se desejar. Mas neste tutorial, você criará um grupo de Auto Scaling de instância única para demonstrar como o Auto Scaling funciona.

1. Configure o grupo de Auto Scaling com o seguinte enquanto ainda estiver na página Criar modelo de lançamento:

  • **Nome do grupo de Auto Scaling** – Insira um nome para o seu grupo de Auto Scaling (ec2-autoscaling-group-demo). O nome deve ser único dentro da sua Região AWS e ter no máximo 255 caracteres de comprimento.
  • **Modelo de lançamento** – Selecione o seu modelo de lançamento EC2 na lista suspensa (ec2-autoscaling-template-demo).

  • Clique em Avançar para continuar.
Naming the AWS EC2 Auto Scaling group

2. Em seguida, deixe todas as configurações padrão como estão, mas selecione uma VPC e uma sub-rede existentes para o seu grupo de Auto Scaling, e clique em Avançar para continuar.

A especificação dessas configurações permite que o seu grupo de Auto Scaling saiba onde lançar as suas instâncias EC2.

Selecting an existing VPC and subnet for your Auto Scaling group

3. Mantenha as configurações padrão e clique em Avançar para continuar.

Leaving other default settings

4. Agora, configure o tamanho do grupo do seu Auto Scaling com o seguinte:

Capacity Limit Details
Desired 1 Set the number of instances you want in your Auto Scaling group. The desired capacity must be greater than or equal to the minimum capacity and less than or equal to the maximum capacity.
Minimum 1 Set the minimum number of instances in your Auto Scaling group. The value must be greater than or equal to 1 and less than or equal to the maximum capacity.
Maximum 1 Set the maximum number of instances you want in your Auto Scaling group.
Specifying the Auto Scaling group’s capacity

5. Role para baixo, mantenha as configurações padrão e clique em Ignorar para revisão para continuar.

  • **Políticas de dimensionamento** – Mantenha a opção Nenhum selecionada, já que você usará uma política de dimensionamento simples. Esta política aumenta a capacidade desejada do seu grupo de Auto Scaling em uma instância EC2 quando a instância mais antiga do grupo foi terminada.

  • **Proteção contra escala de entrada de instâncias** – Mantenha esta opção desativada, já que você não precisa dela neste tutorial. Habilitar esta opção permite que você controle se o seu grupo de Auto Scaling pode terminar sua instância ao reduzir a escala.

Keeping details settings for scaling policies and instance scale-in protection

6. Por fim, revise as configurações do seu grupo de Auto Scaling e clique em Criar grupo de Auto Scaling (canto inferior direito) para criar o seu grupo de Auto Scaling.

Creating the Auto Scaling group

Uma vez criado, você verá seu grupo de dimensionamento automático listado, conforme mostrado abaixo.

Verifying the newly-created Auto Scaling group

Testando um Grupo de Dimensionamento Automático AWS EC2

Ótimo! Você conseguiu criar um grupo de dimensionamento automático AWS EC2 para conter sua instância EC2. Mas como você sabe se seu grupo de dimensionamento automático está funcionando?

Você verificará se o grupo de dimensionamento automático AWS EC2 lançou uma instância EC2. Essa instância é aquela que você especificou (Capacidade desejada) no passo quatro da seção “Criando um Grupo de Dimensionamento Automático AWS EC2”.

1. Marque a caixa ao lado do seu grupo de dimensionamento automático recém-criado e clique na guia Atividade para ver todas as atividades em seu grupo de dimensionamento automático.

Na seção Histórico de atividades na parte inferior, você verá a Descrição do evento mais recente em seu grupo de dimensionamento automático. Neste caso, a descrição diz: Iniciando uma nova instância EC2, com o status Bem-sucedido e ID da instância (i-09b699064f6e06070).

Copie o ID da instância, pois você precisará dele para verificar sua instância na etapa seguinte.

Viewing your activity history.

2. Vá para o painel EC2 e compare o ID da instância que você copiou no primeiro passo com quaisquer instâncias em execução.

Ver ambos os IDs de instância correspondentes indica que seu grupo de dimensionamento automático lançou com sucesso uma instância EC2.

Comparing the instance ID

3. De volta à página do grupo de dimensionamento automático, clique na guia Gerenciamento de instâncias e você verá todas as informações sobre suas instâncias EC2 em um só lugar. A informação mais crítica nesta guia é:

  • A coluna Ciclo de Vida – Você pode ver que a instância EC2 em seu grupo de dimensionamento automático está no estado Em Serviço, o que indica que a instância está disponível para lidar com solicitações.
  • A coluna Status de Saúde – Você pode ver que o status de verificação de saúde de sua instância EC2 é Saudável, o que indica que a instância está passando em todas as verificações de saúde.

Encerrando uma Instância EC2

Agora que você verificou que seu grupo de dimensionamento automático está funcionando, você pode testar ainda mais o grupo de dimensionamento automático encerrando manualmente a instância EC2 dentro dele. Lembre-se, encerrar uma instância no grupo faz com que o grupo de dimensionamento automático lance automaticamente uma nova instância EC2 como substituição.

Em casos da vida real, você usaria um grupo de dimensionamento automático para aumentar automaticamente em resposta a condições em mudança. Quando? Por exemplo, um de seus servidores web NGINX está sobrecarregado com solicitações e corre o risco de falhar.

Mas por enquanto, você testará seu grupo de dimensionamento automático encerrando manualmente a instância EC2 para simular o que aconteceria se uma instância falhasse.

1. Vá para suas instâncias e marque a caixa ao lado da instância para selecioná-la.

Uma vez selecionada, clique no menu suspenso Estado da Instância → Terminar instância para encerrar a instância selecionada.

Terminating an EC2 instance

2. Em seguida, clique em Terminar quando solicitado para confirmar o término da instância.

Confirming instance termination.

Abaixo, você pode ver uma mensagem que indica que a instância EC2 foi encerrada com sucesso.

O período padrão de resfriamento para um grupo de Auto Scaling é de 300 segundos (5 minutos), o que significa que levará pelo menos cinco minutos para o grupo de Auto Scaling iniciar uma nova instância após o término da antiga.

Verifying successful instance termination

3. Por fim, verifique o histórico de atividades no grupo de Auto Scaling enquanto aguarda o lançamento da nova instância.

Como mostrado abaixo, você verá que uma nova instância EC2 foi lançada automaticamente. Esta saída confirma que seu grupo de Auto Scaling está funcionando conforme esperado.

Checking a new EC2 instance is launched automatically

Conclusão

Lidar com a carga de sua aplicação é uma parte essencial para mantê-la funcionando sem problemas. Felizmente, com o AWS EC2 Auto Scaling, você pode garantir que sua aplicação sempre tenha os recursos necessários para lidar com padrões de tráfego em constante mudança.

E neste tutorial, você aprendeu como criar um grupo de Auto Scaling, lançar instâncias no grupo e dimensionar o grupo em resposta a condições variáveis. Neste ponto, você pode criar com confiança grupos de Auto Scaling do AWS EC2 para suas aplicações.

Com esse conhecimento recém-adquirido, por que não criar grupos de auto scaling com o AWS CloudFormation para ainda mais comodidade? Você agradecerá mais tarde quando sua carga aumentar e você não precisar se preocupar em provisionar manualmente mais recursos!

Source:
https://adamtheautomator.com/ec2-autoscaling/