[00:00] Fazemos parte do time de develops em uma empresa. Essa empresa por sua vez tem uma aplicação que é montada em Python e tem uma biblioteca chamada de Django para responder as requisições. Para cuidar dessa aplicação, existem dois times, um time de produção e um time de desenvolvimento.
[00:16] E esse time de produção pediu para nós, de develops, por uma infraestrutura elástica, ou seja, uma infraestrutura que pode crescer com a demanda e encolher quando a demanda diminuir. Assim, conseguimos ter um custo menor, já que essa quantidade necessária de máquinas vai estar ligadas quando precisarmos.
[00:32] Então como essa infraestrutura elástica vai funcionar? Durante a noite, por exemplo, quando tivermos poucas requisições, vamos ter só uma ou duas máquinas ligadas. Já durante o dia, quando começarmos a ter mais requisições, vão sendo criadas máquinas automaticamente para comportar essas requisições que estamos colocando na nossa aplicação.
[00:48] Assim não temos o problema da nossa aplicação ficar fora do ar e ao mesmo tempo conseguimos responder rapidamente novos clientes, novas pessoas que estão fazendo novas requisições para a aplicação, tornando a nossa aplicação mais rápida e mais interativa.
[00:59] Vamos ver como podemos fazer isso na AWS através do Terraform. Vamos mexer na infraestrutura, já que queremos transformar nossa infraestrutura em elástica.
[01:09] Então vamos na nossa pasta de infra, entrar no nosso “main.tf”, que é onde descrevemos toda a nossa infraestrutura, e começar a mexendo no recurso de instância, porque não queremos mais criar uma instância, queremos que as instâncias sejam criadas automaticamente.
[01:24] Então não vamos ter esse recurso de instância, mas eu vou usá-lo, porque o que vamos criar no lugar é bem parecido com o que já temos escrito nesse curso. Então ao invés de aws_instance, a instância AWS, vamos criar um launch template, que é um template de máquina, um template que vamos criar nossas máquinas com base nele.
[01:45] Então vou tirar o instance, então ”aws_launch_template”. Temos o launch_template. Outra mudança que eu vou fazer é trocar o nome lógico dentro do Terraform, de ”app_server”, para “máquina”, para ficar fácil de entendermos que houve essa mudança.
[02:08] E agora vamos mexer nas configurações dele. O que vai precisar mexer? O launch_template não tem ami, ele tem uma coisa que substitui o ami, que vai ter a mesma configuração, que vai ser o nosso número de ami, então ami-03d5, assim por diante, mas não é esse campo chamado ami, chama image_id, mas ele tem a mesma função, então não precisamos ficar nos preocupando com isso.
[02:35] Ele precisa do tipo de instância, que já temos definido. E caso quisermos acessá-lo via SSH, vamos precisar de um key_name e uma chave, que já temos definida também. Eu também vou deixar a nossa tag, que é para aparecer no nosso console da AWS. Então quando nossa máquina for criada, vai aparecer “Terraform Ansible Python”, para sabermos as tecnologias que estamos utilizando nessa máquina.
[02:58] Com isso terminamos o nosso launch template. Ele está pronto, mas é importante lembrarmos que nesse momento temos uma descrição de uma máquina, que vamos utilizar depois para construir uma máquina.
[03:09] Não temos mais uma instância da S2, não conseguimos mais ir no Terraform Apply e ver que temos uma instância. Se quisermos usar o Terraform Apply agora, ele vai criar essa template da AWS, mas não vai criar nenhuma instância para nós. Mas vamos usar esse template mais para frente, para as máquinas subirem automaticamente.