Você está cansado de monitorar a carga de suas instâncias AWS e o tráfego que elas recebem? Por que não automatizar tudo, implantando Grupos de Autoescalabilidade do Terraform? A autoescalabilidade permite que alguns servidores descansem durante cargas baixas e adiciona mais servidores durante cargas altas, economizando nos custos de eletricidade para as empresas.
Neste tutorial, você aprenderá como criar e executar uma configuração do Terraform para construir Grupos de Autoescalabilidade e implantá-los com o Terraform.
Continue lendo e alcance zero tempo de inatividade em suas instâncias!
Pré-requisitos
Este post será um tutorial passo a passo. Se você quiser acompanhar, certifique-se de ter o seguinte em vigor:
- Uma conta 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 utiliza o Terraform v1.1.5 em execução no Ubuntu 20.04 LTS, mas qualquer sistema operacional com o Terraform deve funcionar.
Construindo a Configuração do Terraform para um Grupo de Autoescalabilidade AWS.
Antes de executar os comandos do 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 o diretório de trabalho para essa pasta (cd
). Essa 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, etc. Este arquivo de configuração permite que você conecte o Terraform aos serviços de nuvem corretos.
O tutorial criará recursos na região us-east-1. Mas você pode encontrar a lista de regiões suportadas pela AWS.
5. Por fim, execute o comando tree
abaixo para verificar se todos os arquivos necessários estão presentes em sua pasta de projeto (~/terraform-autoscaling-demo
).

Criando o grupo de Autoscaling da AWS com uma Configuração Terraform
Agora que você configurou corretamente o arquivo de configuração do Terraform e os arquivos de variáveis, é hora de iniciar o Terraform e criar o grupo de Autoscaling da AWS.
Para provisionar o grupo de Autoscaling da AWS, assim como em 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 fornecer um esboço dos recursos que serão provisionados em sua infraestrutura.
Se 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 de AutoScaling da AWS.
O comando diz ao Terraform para 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 de AutoScaling da AWS 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 de AutoScaling da AWS no AWS Cloud
Neste ponto, você deverá ter criado o grupo de AutoScaling da AWS e componentes relacionados com o Terraform. Mas como você sabe que eles existem em sua nuvem AWS? Verifique o grupo de 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, procure e clique em ‘EC2’ para acessar o painel do EC2.
Clique no item de menu Grupo de Auto dimensionamento da AWS no painel do EC2 para gerenciar seus grupos de Auto dimensionamento.
A quantidade desejada de instâncias AWS EC2 será lançada na Nuvem AWS no painel do EC2 com o Auto dimensionamento abaixo.

3. Por fim, clique em Configuração de Lançamento do Auto dimensionamento da AWS no painel do EC2. Você verá sua configuração de lançamento de auto dimensionamento (web_config) conforme mostrado abaixo.

Auto dimensionando a instância EC2 com Teste de Carga
Agora que você verificou que o grupo/política de Auto dimensionamento e os componentes relacionados estão configurados corretamente, é hora de testar se as funcionalidades de Auto dimensionamento funcionam. Como? Adicionando carga na instância lançada recentemente com o grupo de Auto dimensionamento.
1. Abra a instância AWS EC2 lançada com o grupo de Auto dimensionamento 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 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 opções:
--cpu
– Indica o número de núcleos nos quais a carga será gerada.
-v
– Ativa o modo detalhado (verbose).
--timeout
– Especifica o tempo durante o qual a carga deve ser gerada.

4. Agora, execute o comando top
assim que gerar a carga para mostrar os processos do Linux.
Abaixo, você pode ver que a CPU sobe após a geração da carga na instância.

5. Vá para o serviço AWS CloudWatch na AWS Cloud. Você notará que um Alarme é gerado quando a CPU ultrapassa (10%). O Alarme notificou o grupo de dimensionamento automático para aumentar 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 da AWS EC2.
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 atividades do 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 este novo conhecimento, enlouqueça e implemente o Dimensionamento Automático com outros serviços da AWS sem se preocupar com a carga nos servidores!
Source:
https://adamtheautomator.com/terraform-autoscaling-group/