Este repositorio crea la infraestructura necesaria para el despliegue de la aplicación mediante terraform.
- Crear un bucket con versionamiento y encriptación en la infraestructura de AWS que permita soportar los ficheros ".tfsate" de terraform.
- Añadir nombre de bucket en fichero remote_state.tf. (bucket = "nombre_bucket")
- Crear usuario de IAM y credenciales de AWS. "Access key - Programmatic access - Enabled".
- Setear AccessKey y SecretAccessKey en ficheros "config", "credentials" del directorio ~/.aws/ desde donde se realizara el despligue.
- Validar datos para despliegue centralizado en fichero terraform.tfvars (Nombre Proyecto, Account, Region)....
- Command: terraform init
- Command: terraform apply --auto-approve --target module.network
- Añadir CNAME Records al proveedor DNS (CPANEL/GoDaddy...). El CNAME se extrae del servicio. AWS Certificate Manager/Certificates/*.sudominio/Domains (1). Formato Name/Value -> Cambia dependiendo del deploy
- Command: terraform apply --auto-approve --target module.ec2
- Command: terraform apply --auto-approve --target module.database
- Command: terraform apply --auto-approve --target module.backend
- Command: terraform apply --auto-approve --target module.frontend
- Crear CNAME para apuntar registro DNS a CNAME del ALB -> Cambia dependiendo del deploy
- Command: terraform output:
Cloudfront_S3 = "d11jcxqxxxxx.cloudfront.net"
DB_Endpoint = "cluster-aurora-mysql.cluster-cpg28xxxxx.us-east-1.rds.amazonaws.com"
DNS_Alb = "alb-production-backend-iac-285xxxx.us-east-1.elb.amazonaws.com"
repository_url = "761265xxxx.dkr.ecr.us-east-1.amazonaws.com/fundacionbolivar"
- aws ec2 describe-instances --filters "Name=tag:Name,Values=ec2-bastion"
--query 'Reservations[].Instances[].{Instance:InstanceId,Name:Tags[?Key==Name
]|[0].Value}'
--output text - aws ssm start-session --target i-0078a11e6d98b64ee -> Cambia dependiendo del deploy