Este repositório contém a infraestrutura como código (IaC) utilizando Terraform para provisionamento na AWS e Ansible para configuração de um ambiente Django. Todos os recursos utilizados neste projeto estão dentro do Free Tier da AWS, permitindo que sejam testados sem custos adicionais.
- O Terraform cria uma VPC, subnets, um grupo de segurança, uma instância EC2 e um banco de dados PostgreSQL.
- O Ansible configura a instância EC2 instalando dependências e inicializando um projeto Django.
- Todos os recursos utilizados estão dentro do Free Tier da AWS.
Antes de utilizar este projeto, certifique-se de ter instalado:
Altere a chave SSH na linha 65 do arquivo Terraform para a sua chave:
key_name = "SUA_CHAVE_SSH"Execute os seguintes comandos para criar a infraestrutura na AWS:
terraform init
terraform apply -auto-approveAo final, será criada uma instância EC2 e um banco de dados PostgreSQL na AWS.
Após a infraestrutura estar provisionada, use o Ansible para configurar o ambiente Django na instância EC2.
Crie um arquivo inventory.ini e adicione o IP da instância EC2 criada pelo Terraform:
[terraform-ansible]
SEU_IP_EC2 ansible_user=ubuntu ansible_ssh_private_key_file=SUA_CHAVE_SSH.pemansible-playbook -i inventory.ini playbook.ymlEste comando instalará o Python, Django e iniciará um projeto Django no servidor.
- VPC: 10.0.0.0/16
- Subnets:
- 10.0.1.0/24 (us-east-1a)
- 10.0.2.0/24 (us-east-1b)
- Grupo de Segurança: Acesso ao PostgreSQL (porta 5432) e comunicação geral.
- Instância EC2: Ubuntu com chave SSH configurável.
- Banco de Dados PostgreSQL:
db.t4g.microna AWS.
- Por segurança, altere a configuração
cidr_blocks = ["0.0.0.0/0"]no grupo de segurança para restringir o acesso ao banco de dados. - Altere
ALLOWED_HOSTS = ["*"]no Django para restringir os domínios permitidos.
Para remover todos os recursos criados, execute:
terraform destroy -auto-approveEste projeto está licenciado sob a licença MIT.
Desenvolvido para automação de infraestrutura e configuração de aplicações Django na AWS. 🚀