📚 Pré-requisitos Teóricos: este projeto aplica conceitos ensinados em Módulo 13: DevOps e Cloud. Recomendado revisar antes de começar.
v1.0 — Engenharia de Software & Práticas Profissionais
Trilha de Especialização Pedagógica
- Tecnologias: Terraform, AWS, IaC, LocalStack, ECS Fargate, RDS PostgreSQL, VPC
- Arquivo Principal:
main.tf
Provisionamento automatizado de infraestrutura na nuvem AWS via Terraform: VPC, Subnets públicas/privadas, Cluster ECS Fargate e Banco RDS PostgreSQL gerenciado.
provider "aws" {
region = "us-east-1"
}
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
enable_dns_hostnames = true
tags = {
Name = "Portal-Production-VPC"
}
}
No seu editor/IDE, abra a pasta deste projeto (File > Open Folder) ou navegue via terminal:
cd infra_terraform_05_iac_aws
terraform init && terraform plan
# ou docker-compose up -d
[!TIP] Dica para execução a partir da raiz do repositório: Se você abriu o repositório completo no VS Code, basta navegar até a pasta antes de executar: cd catalogo_projetos/infra_terraform_05_iac_aws
O diagrama abaixo ilustra a topologia de componentes, balanceamento, esteiras de automação e observabilidade na subpasta infra-terraform/:
flowchart TD
subgraph Config["Configuração & IaC"]
C1["Manifestos Declarativos"] --> C2["Variáveis & Segredos"]
end
subgraph Orquestracao["Orquestração & Redes"]
O1["Load Balancer / Ingress"] --> O2["Pods / Contêineres de Serviço"]
end
subgraph Observabilidade["Observabilidade & Segurança"]
M1["Telemetria Prometheus / k6"] --> M2["Scanners SAST & Dashboards"]
end
subgraph Qualidade["Homologação & Qualidade"]
Q1["Automação CI/CD"] --> Q2["Checkpoints CP-01..05 PASS"]
end
Config --> Orquestracao
Orquestracao --> Observabilidade
Observabilidade --> Qualidade
style Config fill:#e3f2fd,stroke:#1976d2,stroke-width:1.5px
style Orquestracao fill:#fffde7,stroke:#fbc02d,stroke-width:1.5px
style Observabilidade fill:#e8f5e9,stroke:#388e3c,stroke-width:1.5px
style Qualidade fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px
| ID | Persona | História de Usuário | Critério de Aceite | Prioridade |
|---|---|---|---|---|
| US-01 | Arquiteto Cloud | Desejo provisionar VPC com subnets públicas e privadas via Terraform | Topologia de rede segura com Internet Gateway e tabelas de rotas declaradas | Alta |
| US-02 | Engenheiro DevOps | Desejo Security Groups com regras de entrada e saída de menor privilégio | Liberação estrita de portas 80/443 públicas e portas de banco internas | Alta |
| US-03 | Administrador de Infra | Desejo provisionar instâncias EC2 e Application Load Balancer (ALB) | Distribuição de tráfego entre instâncias distribuídas em zonas de disponibilidade (AZs) | Alta |
| US-04 | Especialista em Confiabilidade | Desejo gerenciar estado remoto no S3 com locking via DynamoDB | Prevenção de execuções concorrentes com terraform apply simultâneo | Média |
| US-05 | Auditor de Segurança | Desejo validação com terraform fmt, validate e checagem de conformidade | Linters de IaC e testes automatizados de sintaxe sem custos de nuvem | Média |
| ID | Descrição do Requisito | Criticidade |
|---|---|---|
| RF-01 | Módulos Terraform para provisionamento de VPC, Subnets e Gateways | Alta |
| RF-02 | Recursos aws_security_group com regras granulares de tráfego | Alta |
| RF-03 | Provisionamento de instâncias com user_data automatizado e ALB | Alta |
| RF-04 | Configuração de variáveis (variables.tf), outputs e backend de estado | Média |
| RF-05 | Scripts de validação estática e plano de execução (terraform plan) | Média |
| ID | Especificação Arquitetural | Criticidade |
|---|---|---|
| RNF-01 | Idempotência completa: execuções repetidas não alteram estado convergente | Alta |
| RNF-02 | Zero credenciais hardcoded, usando variáveis de ambiente AWS padrão | Alta |
| RNF-03 | Compatibilidade com Terraform 1.5+ e AWS Provider v5+ | Alta |
| RNF-04 | Organização modular dos arquivos .tf na pasta infra-terraform/ | Alta |
| RNF-05 | Documentação clara de passos de inicialização e destruição de recursos | Média |
| User Story | Requisito Funcional | Requisito Não-Funcional | Módulo / Artefato de Código | Status de Homologação |
|---|---|---|---|---|
| US-01 | RF-01 |
RNF-01, RNF-04 |
infra-terraform/main.tf |
Testado |
| US-02 | RF-02 |
RNF-02, RNF-04 |
infra-terraform/main.tf |
Testado |
| US-03 | RF-03 |
RNF-01, RNF-03 |
infra-terraform/main.tf |
Testado |
| US-04 | RF-04 |
RNF-01, RNF-02 |
infra-terraform/backend.tf |
Testado |
| US-05 | RF-05 |
RNF-03, RNF-05 |
infra-terraform/test_plan.sh |
Testado |
| Checkpoint | Escopo da Validação | Artefato Verificado | Status |
|---|---|---|---|
| CP-01 | Configuração Declarativa do Ambiente | infra-terraform/ |
PASS ✅ |
| CP-02 | Provisionamento & Orquestração | Deployments / Services |
PASS ✅ |
| CP-03 | Redes, Proxies & Segurança de Borda | Ingress / Security Groups |
PASS ✅ |
| CP-04 | Observabilidade, Métricas & SAST | Metrics / Scanners |
PASS ✅ |
| CP-05 | Homologação com Suíte de Testes | Test Suite / CI Gate |
PASS ✅ |