🏗️📦☁️ Repositório da aula de VPC do curso Arquitetura de Containers na AWS da LINUXTips - ministrado pelo Matheus Fidelis
Este repositório contém os arquivos de configuração Terraform para a criação e gerenciamento de uma VPC
na AWS
, desenvolvidos durante o day-1 do curso.
Antes de começar, certifique-se de ter os seguintes programas instalados:
- Terraform Switcher (tfswitch): Facilita a alternância entre diferentes versões do Terraform;
- AWS CLI: Interface de linha de comando para gerenciar os serviços da AWS.
- Criação do Usuário AWS: Crie um usuário com permissões de administrador na conta AWS;
- Geração das Credenciais: Gere as chaves de acesso (Access Key ID e Secret Access Key) para configurar a CLI e permitir que o Terraform interaja com a AWS.
Antes de executar o Terraform, você precisa configurar os arquivos de variáveis específicas do ambiente. Para isso, copie o arquivo terraform.tfvars.example
e cole na pasta renomeando para terraform.tfvars
. Em seguida preencha os campos com as informações necessárias.
Siga o mesmo procedimento para o arquivo backend.tfvars.example
e gere o arquivo backend.tfvars
com as informações necessárias.
O projeto foi desenvolvido para implementar uma infraestrutura de rede segura e escalável na AWS
, utilizando o Terraform
. A estrutura abrange:
- VPC: Virtual Private Cloud que isola os recursos de rede;
- Subnets: Subnets privadas e públicas para separar o tráfego e aumentar a segurança;
- Internet Gateway: Permite a comunicação entre a VPC e a Internet;
- NAT Gateway: Proporciona acesso à Internet para instâncias nas subnets privadas;
- Routing Tables: Define o roteamento dentro da VPC;
- Parameter Store: Armazenamento seguro de parâmetros de configuração, como segredos e variáveis sensíveis;
- Outputs: Exposição dos valores importantes após a execução do Terraform, como IDs de VPC, Subnets, etc.
Imagem copiada do Repositório do Alex Soares.
Após a criação de cada recurso, é recomendável acessar a AWS Management Console
para verificar se os recursos foram configurados corretamente.
- AWS: Plataforma de serviços em nuvem utilizada para hospedar a VPC e os demais recursos;
- Terraform: Ferramenta de IaC (Infrastructure as Code) usada para automatizar a criação e gestão da infraestrutura.
Para padronizar a indentação dos arquivos Terraform, execute:
terraform fmt --recursive
Para aplicar as configurações e criar os recursos na AWS, use:
terraform apply --auto-approve -var-file=environment/dev/terraform.tfvars
Se precisar excluir os recursos criados, execute:
terraform destroy --auto-approve -var-file=environment/dev/terraform.tfvars
Nesta seção, você encontrará links úteis que complementam a implementação deste projeto de VPC
na AWS
utilizando Terraform
. Esses recursos são essenciais para quem deseja aprofundar seu conhecimento sobre o tema, oferecendo uma compreensão mais abrangente das melhores práticas e das decisões arquitetônicas envolvidas.
- Exemplo de Documentação: Este link leva a um exemplo detalhado de documentação de um projeto semelhante. Ele pode servir como uma referência para estruturar sua própria documentação, garantindo que todos os aspectos críticos do projeto sejam claramente comunicados e facilmente compreendidos;
- Motivação para Implementação da VPC: Aqui você encontrará um exemplo prático que explica a motivação por trás da implementação de uma VPC com esta estrutura específica. Este recurso pode ser especialmente útil para justificar as escolhas de design do projeto e fornecer um contexto mais amplo sobre as vantagens e desafios envolvidos;
- Estrutura de Arquitetura por Camadas: esse projeto que detalha a implementação da aplicação em camadas na AWS. A arquitetura inclui camadas de rede (VPC e sub-redes), dados (armazenamento), e computação (execução de aplicações), tudo gerenciado via Terraform. É uma ótima referência para entender a modularidade e escalabilidade em ambientes de infraestrutura como código.
Projeto desenvolvido por Klecianny Melo 😁