AWS EC2 – Parte 2.1: Mão na massa com EC2 Auto Scaling Service

Tempo de leitura: 9 minutos

E aí galera!

Prontos pra sujar a mão novamente?

Nunca esqueçam que a melhor maneira de aprender algo novo é colocando em prática os conceitos teóricos estudados.

Nesse artigo aqui, falei sobre os conceitos teóricos por trás do serviço do EC2 Auto Scaling. Agora, chegou a hora de colocar a mão na massa para aplicarmos esses conceitos..

É muito importante que você tenha passado pelos seguintes requisitos:

  • Ter uma conta ativa na AWS. Caso não tenha, é bem fácil configurar uma. Siga os passos aqui;
  • Ter feito a leitura do artigo introdutório do Amazon EC2 Auto Scaling.

A partir de agora, iremos descobrir como usar o serviço Amazon EC2 Auto Scaling.

Trabalharemos os seguintes tópicos:

  • Revisando os conceitos iniciais sobre Amazon EC2 Auto Scaling;
  • Criando um modelo de execução;
  • Criando um Grupo do Auto Scaling;
  • Verificando nosso Grupo do Auto Scaling;
  • Testando nossa solução de Auto Scaling.

Esse artigo faz parte de uma série de artigos sobre o Amazon EC2. Para ver o índice completo, clique aqui!

Revisando os conceitos iniciais sobre Amazon EC2 Auto Scaling

Grupos do Auto Scaling

O Amazon EC2 Auto Scaling é um serviço da AWS que nos permite executar automaticamente instâncias EC2 de acordo com certas condições definidas durante a configuração do serviço.

Nesse laboratório criaremos grupos de instâncias EC2 que ficam agrupadas no que chamamos de Grupo do Auto Scaling.

Nesses grupos, podemos definir o número mínimo e o número máximo de instâncias que serão executadas. 

Com isso, o Grupo do Auto Scaling garantirá que nunca serão executadas menos instâncias que o número mínimo definido ou mais instâncias que o número máximo definido.

Outra configuração importante é a capacidade desejada. Se ela for definida, o Grupo Auto Scaling garantirá que sempre teremos um número fixo de instâncias sendo executadas.

Podemos especificar políticas de escalabilidade para o Grupo do Auto Scaling. Essas políticas serão levadas em consideração na decisão de inicializar novas instâncias ou terminar instâncias existentes.

Modelos de Execução

Você deve lembrar que, quando inicializamos uma instância EC2, definimos uma série de parâmetros, como a imagem (AMI), o tipo de instância, os grupos de segurança, etc.

Se você ainda não viu o artigo que escrevi sobre como executar uma instância EC2, dá uma olhada aqui depois.

Os Modelos de execução nos ajudam a armazenar parâmetros de inicialização para instâncias EC2. Assim, não precisaremos configurar novamente, a cada inicialização de uma nova instância, esses parâmetros.

IMPORTANTE: não existe cobrança extra para a utilização do EC2 Auto Scaling. A cobrança é feita baseada nas instâncias EC2 que estão sendo executadas.

Criando um modelo de execução

O primeiro passo para a configuração de um Grupo de Autoscaling é criar um Modelo de Execução.

1 Para isso, vá para o console do EC2 e, no menu à esquerda, clique em Instâncias | Modelos de execução:

Obs: Não esqueça de habilitar o novo console do EC2 indicado pela seta na imagem acima.

2 Clique no botão Criar modelo de execução;

3 Faça as configurações conforme instruções abaixo:

Nome do modelo de execução: Laboratorio-Blog-Victor

Descrição da versão do modelo: versao 1

Selecione a opção “Fornecer orientação para me ajudar . . .”.

 4 Descendo um pouco a página, na seção Imagens de aplicativo e sistema operacional, iremos selecionar a imagem de nosso modelo.

Escolha a opção Amazon Linux, normalmente ela é a primeira a aparecer. Caso não a encontre, utilize a pesquisa para fazer uma busca por Amazon Linux:

5 Escolha a AMI Amazon Linux 2 AMI (HVM):

6 Siga para a próxima seção na página, Tipo de Instância, para selecionar o tipo de instância e escolha a t2.micro:

7 Vá direto para a seção Configurações de rede e, na sub-seção Firewall (grupos de segurança), deixe a opção Selecionar grupo de segurança existente selecionada e, então, no combo Grupos de segurança, selecione o grupo GS Web Server:

IMPORTANTE: Esse grupo de segurança, o GS Web Server, foi configurado anteriormente quando executamos nossa primeira instância nesse artigo aqui.

Caso não tenha executado os passos do artigo anterior, selecione a opção Criar grupo de segurança e crie um novo grupo habilitando o acesso externo na porta 80.

8 Feito isso, revise suas configurações e clique no botão Criar modelo de execução, à direita:

Pronto! Seu Modelo de Execução foi criado com sucesso. Clique em Visualizar modelos de execução para visualizar os modelos configurados em sua conta.

Criando um grupo do Auto Scaling

Um Grupo de Auto Scaling contém um conjunto de instâncias EC2 com características similares e são tratadas, dentro da infra-estrutura da AWS, como um recurso único no escopo do gerenciamento de escalabilidade.

Por meio desse serviço, podemos configurar nossa aplicação em múltiplas instâncias EC2. Isso nos permite aumentar o número de instâncias naquele grupo com o objetivo de melhorar a performance da aplicação ou diminuir o número delas a fim de diminuir custos, quando a demanda estiver baixa.

Para configurar nosso Grupo do Auto Scaling, faremos o seguinte:

1 No console do EC2, na parte de baixo do menu de navegação à esquerda, clique em Auto Scaling -> Grupos Auto Scaling:

2 Clique no botão Criar o grupo do Auto Scaling:

3 Agora vamos configurar nosso Grupo do Auto Scaling com as seguintes informações:

Nome do Grupo do Auto Scaling: Grupo-Laborario-Blog-Victor

Modelo de execução: escolha o modelo de execução que configuramos anteriormente

Clique em Próximo

4 Na seção Rede, iremos escolher a VPC padrão (Default VPC) e selecionar todas as sub-redes disponíveis:

Clique em Próximo

5 Na seção Configurar opções avançadas, faremos as seguintes configurações:

Mantenha a seção Balanceamento de carga da mesma forma e siga para a seção Verificações de integridade. Nela iremos modificar o Período de tolerância da verificação de integridade para 60:

Além disso, iremos Habilitar a coleta de métricas de grupo no CloudWatch:

Clique em Próximo.

6 Na seção Configurar políticas de escalabilidade e tamanho do grupo, faremos as seguintes configurações:

  • Capacidade desejada: 1
  • Capacidade mínima: 1
  • Capacidade máxima: 2

Todas as outras subseções deverão permanecer com seus valores padrão.

Clique em Próximo até chegar à página de revisão. Revise as configurações e, depois, finalize clicando em Criar o grupo do Auto Scaling.

Com isso, você terá criado seu Grupo do Auto Scaling com sucesso:

Verificando nosso grupo do Auto Scaling

Agora que criamos nosso Grupo do Auto Scaling, iremos verificar se ele, de fato, está inicializando automaticamente as instâncias EC2 que configuramos.

1 Clique no Grupo do Auto Scaling que você criou anteriormente, na aba Detalhes você consegue visualizar as configurações que fizemos:

2 A parte mais interessante está na aba Atividade. Nela podemos visualizar o histórico de atividades do nosso Grupo do Auto Scaling indicando a inicialização de uma instância EC2 com sucesso:

3 Na aba Gerenciamento de instâncias, podemos visualizar as instâncias inicializadas pelo nosso Grupo do Auto Scaling:

Nela, temos algumas informações interessantes como: em que fase do Ciclo de vida, no contexto do Auto Scaling Service, a instância está, a Zona de disponibilidade em que ela está sendo executada e o Status de integridade da instância.

Obs: Para maiores informações sobre o ciclo de vida de uma instância EC2 inicializada por um Grupo do Auto Scaling, clique aqui!

4 Na aba de Monitoramento podemos visualizar métricas tanto do Auto Scaling quanto do EC2.

Testando nossa solução de Auto Scaling

O passo final de nosso laboratório será visualizar o Grupo do Auto Scaling trabalhando para garantir a disponibilidade de nossa instância EC2.

Vocês devem lembrar que a capacidade mínima do nosso Grupo do Auto Scaling é de uma instância, ou seja, se, por algum motivo, a instância atual não estiver saudável ou disponível, o serviço do Auto Scaling deverá inicializar uma nova instância.

1 Vá para a aba Gerenciamento de instâncias e clique no ID de instância. É um código semelhante a esse aqui: i-0a4788a6c84c0e56a.

Ao clicar nesse ID, uma nova aba será aberta no navegador redirecionando você para a página de gerenciamento dessa instância, no console do EC2,.

 2 Clique no botão Estado da instância e selecione Encerrar instância:

3 Clique no botão Encerrar

4 Volte para o console do Grupo do Auto Scaling, clicando em Grupos Auto Scaling, no menu de navegação à esquerda, e selecione o Grupo do Auto Scaling que configuramos.

5 Eu repeti esse processo de encerramento de instâncias três vezes. Assim, ao acessar a aba Atividade e o Histórico de atividades, é possível visualizar os encerramentos efetuados e a inicialização de uma nova instância no final para garantir a disponibilidade.

A ordem das atividades executadas é de baixo para cima:

Interessante, não é mesmo? Espero que tenham gostado.

Com isso, vimos na prática como um Grupo do Auto Scaling funciona garantindo uma disponibilidade mínima para nossa aplicação em caso de falha nas instâncias que fazem parte do grupo.

IMPORTANTE: não esqueça de excluir o Grupo do Auto Scaling configurado para evitar cobranças indevidas em sua conta.

Abraços!

Referências

https://amazon.qwiklabs.com/focuses/29777?catalog_rank=%7B%22rank%22%3A1%2C%22num_filters%22%3A0%2C%22has_search%22%3Atrue%7D&parent=catalog&search_id=15613195

https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroupLifecycle.html

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *