Começando com AWS EC2 Autoscaling

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

O EC2 Auto Scaling é um serviço que pode ajudar a escalar automaticamente sua capacidade do 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 seus aplicativos.

Continue lendo e garanta que seu aplicativo sempre tenha recursos sem pagar mais do que precisa!

Pré-requisitos

Este tutorial inclui demonstrações práticas. Para acompanhar, você precisará de uma conta AWS e uma conta gratuita da camada gratuita será suficiente.

Criando um Modelo de Lançamento

Antes de entrar no AWS EC2 Auto Scaling, você primeiro precisa de uma maneira de lançar uma instância EC2, um modelo de lançamento (semelhante a 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 o tipo de instância, sub-rede e grupos de segurança.

A AWS recomenda o uso de um modelo de lançamento, fornecendo mais flexibilidade e recursos avançados do que uma configuração de lançamento. O Auto Scaling do EC2 usa 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 da web favorito e faça login no Console de Gerenciamento da AWS.

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

Opening the launch templates page

3. Em seguida, selecione uma região na lista suspensa (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 a região Leste dos EUA (Norte da Virgínia).

Initiating creating a launch template

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

  • 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 único dentro da região, não mais longo que 128 caracteres e não pode conter caracteres especiais, exceto hifens (-), 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), e não mais longa que 255 caracteres.
  • Guia de Auto Scaling – Marque a opção Fornecer orientações para me ajudar a configurar um modelo que posso usar com o EC2 Auto Scaling para habilitar orientações de auto-scaling. Essa 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 para baixo até a seção Conteúdos dos modelos de inicialização, e escolha aplicativos e imagens do sistema operacional para o seu modelo de inicialização com o seguinte:

  • Aplicativos e Imagens do Sistema Operacional (Amazon Machine Image) – Selecione uma imagem de inicialização para o seu modelo, mas este tutorial usa uma AMI 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 que preferir, mas uma AMI 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 forma:

  • 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, já que 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 o 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 outras configurações padrão e clique em Criar modelo de lançamento (canto inferior direito) sob a 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 seção seguinte, um de cada vez.

Initiating creating an Auto Scaling group

Criando um Grupo de Auto Scaling AWS EC2

Agora que você tem um modelo de lançamento EC2, precisará criar um grupo de Auto Scaling AWS EC2 para conter sua instância EC2. O EC2 Auto Scaling da AWS tem recursos que permitem que você use substituições de verificação de integridade 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 de Criar modelo de lançamento:

  • Nome do grupo Auto Scaling – Insira um nome para o seu grupo Auto Scaling (ec2-autoscaling-group-demo). O nome deve ser único dentro da sua região AWS, com no máximo 255 caracteres de comprimento.
  • Modelo de lançamento – Selecione seu modelo de lançamento EC2 na lista suspensa (ec2-autoscaling-template-demo).
  • Clique em Próximo 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 Auto Scaling e clique em Próximo para continuar.

A especificação dessas configurações faz com que seu grupo Auto Scaling saiba onde iniciar 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 Próximo para continuar.

Leaving other default settings

4. Agora, configure o tamanho do grupo do seu grupo 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 revisar para continuar.

  • Políticas de escalonamento – Mantenha a opção Nenhuma selecionada, pois você usará uma política de escalonamento simples. Essa política aumenta a capacidade desejada do seu grupo Auto Scaling em uma instância EC2 quando a instância mais antiga do grupo foi encerrada.
  • Proteção contra redução de escala da instância – Mantenha esta opção desativada, pois você não precisa dela neste tutorial. Habilitar esta opção permite que você controle se seu grupo Auto Scaling pode encerrar sua instância durante a redução de escala.
Keeping details settings for scaling policies and instance scale-in protection

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

Creating the Auto Scaling group

Assim que 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 do AWS EC2

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

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

1. Marque a caixa de seleção 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 Lançando 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 no próximo passo.

Viewing your activity history.

2. Navegue até o painel do 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 significa que a instância está disponível para lidar com solicitações.
  • A coluna Status de Saúde – Você pode ver que o status da 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 o grupo de dimensionamento automático ainda mais encerrando a instância EC2 dentro dele. Lembre-se, encerrar uma instância no grupo faz com que o grupo de dimensionamento automático inicie automaticamente uma nova instância EC2 como substituição.

Em casos da vida real, você usaria um grupo de dimensionamento automático para escalar 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 ficar indisponível.

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

1. Navegue até 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 → Encerrar instância para encerrar a instância selecionada.

Terminating an EC2 instance

2. Em seguida, clique em Encerrar quando solicitado para confirmar o encerramento 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 de espera padrão para um grupo de dimensionamento automático é de 300 segundos (5 minutos), o que significa que o grupo de dimensionamento automático levará pelo menos cinco minutos para iniciar uma nova instância após você encerrar a antiga.

Verifying successful instance termination

3. Por fim, verifique o histórico de atividades no grupo de dimensionamento automático 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 dimensionamento automático está funcionando conforme o esperado.

Checking a new EC2 instance is launched automatically

Conclusão

Lidar com a carga para 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 os padrões de tráfego em mudança.

E neste tutorial, você aprendeu como criar um grupo de dimensionamento automático, lançar instâncias no grupo e dimensionar o grupo em resposta às condições em mudança. Neste ponto, você agora pode criar com confiança grupos de dimensionamento automático do AWS EC2 para suas aplicações.

Com esse novo conhecimento, por que não criar grupos de dimensionamento automático com o AWS CloudFormation para ainda mais conveniência? Você vai agradecer a si mesmo depois quando sua carga aumentar e você não tiver que se preocupar com o provisionamento manual de mais recursos!

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