Este repositório contém a definição da infraestrutura AWS usando o Terraform para configurar uma aplicação containerizada com ECS, uma rede VPC privada, um repositório ECR, um balanceador de carga ALB, um cluster ElastiCache Redis, entre outros recursos.
- Conta AWS configurada
- Terraform instalado localmente
- Chave de acesso AWS configurada localmente
A arquitetura da infraestrutura consiste nos seguintes componentes:
- ECR Repository: Repositório para armazenar imagens Docker.
- VPC e Subnets: Rede privada com três subnets em diferentes zonas de disponibilidade.
- Internet Gateway e Route Table: Gateway e tabela de roteamento para permitir acesso à internet.
- Security Group: Grupo de segurança para controlar o tráfego de entrada e saída.
- ECS Cluster: Cluster ECS para executar os containers.
- Launch Template: Modelo de lançamento para configurar instâncias EC2 no cluster ECS.
- Auto Scaling Group: Grupo de escalabilidade automática para gerenciar instâncias EC2.
- Capacity Providers: Provedores de capacidade para gerenciar a capacidade do cluster ECS.
- Load Balancer: Balanceador de carga para distribuir o tráfego para os containers.
- ElastiCache Redis Cluster: Cluster ElastiCache Redis para armazenamento em cache.
- Clone este repositório em sua máquina local.
- Configure suas credenciais AWS.
- Personalize as variáveis no arquivo
variables.tf
conforme necessário. - Execute
terraform init
para inicializar o diretório. - Execute
terraform plan
para visualizar as alterações propostas. - Execute
terraform apply
para aplicar as alterações e criar a infraestrutura.
Para evitar custos indesejados, é recomendável remover a infraestrutura quando não estiver mais em uso. Execute terraform destroy
para remover todos os recursos criados por este script.
Observação: A remoção da infraestrutura é irreversível e resultará na perda de dados armazenados nos serviços da AWS.