Está cansado de monitorar a carga das suas instâncias AWS e o tráfego que elas recebem? Por que não automatizar tudo implantando Grupos de Dimensionamento Automático do Terraform? O dimensionamento automático permite que alguns servidores fiquem inativos durante cargas baixas e adiciona mais servidores durante cargas altas, economizando nos custos de eletricidade para as empresas.
Neste tutorial, você aprenderá como construir e executar uma configuração do Terraform para criar Grupos de Dimensionamento Automático e implantá-los com o Terraform.
Continue lendo e obtenha zero tempo de inatividade em suas instâncias!
Pré-requisitos
Esta postagem será um tutorial passo a passo. Se você quiser acompanhar, certifique-se de ter o seguinte:
- Uma conta da Amazon Web Service (AWS).
- A code editor – Even though you can use any text editor to work with Terraform configuration files, consider using Visual Studio (VS) Code as it understands the HCL Terraform language well.
- Terraform – Este tutorial usa o Terraform v1.1.5 em execução no Ubuntu 20.04 LTS, mas qualquer sistema operacional com Terraform deve funcionar.
Construindo a Configuração do Terraform para um Grupo de Dimensionamento Automático da AWS
Antes de executar comandos Terraform para construir e implantar a infraestrutura, você deve criar os arquivos de configuração do Terraform. Você criará uma configuração do Terraform para criar um grupo de dimensionamento automático AWS em sua conta da AWS.
1. Faça login em sua máquina usando seu cliente SSH favorito.
2. Em seguida, crie uma pasta chamada ~/terraform-autoscaling-demo, e depois altere (cd
) o diretório de trabalho para essa pasta. Esta pasta conterá todos os arquivos de configuração em que você estará trabalhando neste tutorial.
3. Abra seu editor de código favorito, copie/cole a seguinte configuração e salve o arquivo como main.tf no diretório ~/terraform-autoscaling-demo. Este arquivo main.tf é a configuração do Terraform para o grupo de dimensionamento automático.
O código abaixo cria uma configuração de lançamento de dimensionamento automático (web_config
) e provisiona um grupo de dimensionamento automático (autoscalegroup
). O grupo de dimensionamento automático também inclui seus componentes (aws_autoscaling_schedule
e aws_autoscaling_policy
).
4. Crie outro arquivo em ~/terraform-autoscaling-demo chamado provider.tf, e preencha o conteúdo abaixo. O arquivo provider.tf define provedores como AWS, Oracle, Azure, e assim por diante. Este arquivo de configuração permite conectar o Terraform aos serviços em nuvem corretos.
O tutorial estará criando recursos na região us-east-1. Mas você pode encontrar a lista de regiões que a AWS suporta.
5. Por último, execute o comando tree
abaixo para verificar se todos os arquivos necessários estão presentes na pasta do seu projeto (~/terraform-autoscaling-demo
).

Criando o grupo de escalonamento automático da AWS com uma Configuração do Terraform
Agora que você tem o arquivo de configuração do Terraform e os arquivos de variáveis configurados corretamente, é hora de iniciar o Terraform e criar o grupo de escalonamento automático da AWS.
Para provisionar o grupo de escalonamento automático da AWS, assim como todas as outras configurações do Terraform, o Terraform utiliza três comandos em sequência (terraform init
, terraform plan
, e terraform apply
).
1. Execute o comando terraform init
no diretório ~/terraform-autoscaling-demo. O comando inicializa os plugins e provedores necessários para trabalhar com recursos.
Se tudo correr bem, você verá a mensagem que diz que o Terraform foi inicializado com sucesso na saída, como mostrado abaixo.

2. Em seguida, execute o comando terraform plan
para garantir que a sintaxe dos arquivos de configuração esteja correta e lhe dê um plano dos recursos que serão provisionados em sua infraestrutura.
Se for bem-sucedido, você deverá ver uma mensagem que mostra o Plano como o abaixo.

3. Por fim, execute o comando terraform apply
para remover as rodas de treinamento e invocar o Terraform para criar o grupo AWS AutoScaling.
O comando instrui o Terraform a ler cada configuração (*.tf) no diretório atual para compilar um estado enviado para a AWS. O Terraform então constrói o grupo AWS Autoscaling e outros componentes.
Não há cobrança adicional para o AWS Auto Scaling. Você paga apenas pelos recursos da AWS necessários para executar suas aplicações.

Verificando o Grupo AWS Autoscaling na Nuvem AWS
Neste momento, você deverá ter criado o grupo AWS Autoscaling e os componentes relacionados com o Terraform. Mas como você sabe que eles existem em sua nuvem AWS? Verifique o grupo Autoscaling verificando manualmente no Console de Gerenciamento da AWS.
1. Abra seu navegador da web favorito e faça login no Console de Gerenciamento da AWS.
2. Na página inicial do console, clique na caixa de pesquisa, pesquise e clique em ‘EC2’ para acessar o painel do EC2.
Clique no item de menu Grupo de dimensionamento automático da AWS no painel do EC2 para gerenciar seus grupos de dimensionamento automático.
O número desejado de instâncias do AWS EC2 será lançado na Nuvem AWS no painel do EC2 com o abaixo Autoscaling.

3. Por último, clique em Configuração de lançamento do AWS Auto Scaling no painel do EC2. Você verá sua configuração de lançamento de autoscaling (web_config) como mostrado abaixo.

Dimensionamento automático da instância EC2 com Teste de Carga
Agora que você verificou que o grupo/política de dimensionamento automático e os componentes relacionados estão configurados corretamente, é hora de testar se os recursos de dimensionamento automático funcionam. Como? Adicionando carga na instância lançada recentemente com o grupo de dimensionamento automático.
1. Abra a instância AWS EC2 lançada com o grupo de dimensionamento automático usando um cliente SSH.
2. Em seguida, abra o terminal e execute o comando abaixo para instalar
a ferramenta de estresse de carga (stress-ng
). A ferramenta de estresse permite definir e gerar o estresse na máquina Ubuntu.
Você também pode encontrar outras ferramentas de estresse de carga disponíveis no mercado.

3. Execute o comando stress-ng
abaixo para gerar a carga de estresse na instância.
Abaixo está o comando que contém as seguintes bandeiras:
--cpu
– Denota o número de núcleos nos quais a carga será gerada.
-v
– Ativa o modo verbose.
--timeout
– Especifica o tempo pelo qual a carga deve ser gerada.

4. Agora execute o comando top
abaixo assim que gerar a carga para mostrar os processos Linux.
Abaixo, você pode ver que a CPU aumenta após gerar a carga na instância.

5. Vá para o serviço AWS CloudWatch na AWS Cloud. Você notará que um Alarme é gerado conforme a CPU ultrapassa (10%). O Alarme notificou o grupo de dimensionamento automático para escalar o número de instâncias de uma para duas, conforme especificado no grupo de dimensionamento automático.

6. Finalmente, vá para suas Instâncias no painel EC2 para verificar as instâncias EC2 da AWS.
Você verá que mais uma instância foi iniciada, confirmando a configuração bem-sucedida do grupo de dimensionamento automático da AWS e seus componentes.

Você também pode verificar as atividades de dimensionamento automático no grupo de dimensionamento automático da AWS, conforme mostrado abaixo.

Conclusão
Neste tutorial, você aprendeu como usar o Terraform para implantar um Grupo de Dimensionamento Automático da AWS e seus componentes. Construir uma aplicação de dimensionamento automático com o Grupo de Dimensionamento Automático da AWS permite dimensionar conforme necessário e é uma tarefa rápida.
Agora, com esse conhecimento recém-adquirido, enlouqueça e implemente o Auto Scaling com outros serviços da AWS sem se preocupar com a carga nos servidores!
Source:
https://adamtheautomator.com/terraform-autoscaling-group/