Este módulo permite la creación y gestión de zonas hospedadas de Route 53 (públicas y privadas) siguiendo las mejores prácticas y estándares de Pragma CloudOps.
✅ Creación de zonas hospedadas públicas y privadas
✅ Soporte para múltiples zonas en una sola aplicación del módulo
✅ Etiquetado estandarizado con soporte para etiquetas adicionales
✅ Validación de parámetros de entrada
✅ Nomenclatura estandarizada para recursos
✅ Ejemplos de implementación incluidos
cloudops-ref-repo-aws-route53-terraform/
├── data.tf # Data sources
├── locals.tf # Variables locales
├── main.tf # Recursos principales
├── outputs.tf # Salidas del módulo
├── providers.tf # Configuración de proveedores
├── variables.tf # Variables de entrada
└── sample/ # Directorio con ejemplos de uso
└── route53/ # Ejemplo específico para Route 53
├── data.tf # Data sources para los ejemplos
├── main.tf # Configuración principal de los ejemplos
├── outputs.tf # Salidas de los ejemplos
├── providers.tf # Configuración de proveedores para los ejemplos
├── terraform.auto.tfvars.sample # Ejemplo de variables
└── variables.tf # Variables para los ejemplos
## Uso
### Ejemplo Básico
```hcl
module "route53_zones" {
source = "git::https://github.com/somospragma/cloudops-ref-repo-aws-route53-terraform.git"
providers = {
aws.project = aws.principal
}
client = "acme"
project = "dns"
environment = "dev"
route_53_config = {
"main" = {
name = "example.com"
comment = "Zona pública para example.com"
vpc_id = null # null para zona pública
application = "website"
ticket = "TICKET-123"
accessclass = "public"
additional_tags = {
purpose = "website-hosting"
}
}
}
}
module "route53_zones" {
source = "git::https://github.com/somospragma/cloudops-ref-repo-aws-route53-terraform.git"
providers = {
aws.project = aws.principal
}
client = "acme"
project = "dns"
environment = "dev"
route_53_config = {
# Zona pública
"public" = {
name = "example.com"
comment = "Zona pública para example.com"
vpc_id = null
application = "website"
ticket = "TICKET-123"
accessclass = "public"
additional_tags = {
purpose = "website-hosting"
team = "frontend"
}
},
# Zona privada
"private" = {
name = "internal.example.com"
comment = "Zona privada para servicios internos"
vpc_id = "vpc-12345678"
application = "internal-services"
ticket = "TICKET-124"
accessclass = "private"
additional_tags = {
purpose = "internal-services"
team = "backend"
}
}
}
}| Nombre | Descripción | Tipo | Requerido |
|---|---|---|---|
| client | Nombre del cliente asociado a las zonas Route 53 | string |
Sí |
| project | Nombre del proyecto asociado a las zonas Route 53 | string |
Sí |
| environment | Entorno en el que se desplegarán las zonas Route 53 (develop, dev, qa, pdn) | string |
Sí |
| route_53_config | Configuración de zonas hospedadas de Route 53 | map(object) |
Sí |
route_53_config = {
"key" = {
name = string # Nombre de la zona (ej: "example.com")
comment = string # Comentario descriptivo
vpc_id = string (opcional) # ID de la VPC para zonas privadas, null para zonas públicas
application = string # Nombre de la aplicación asociada
ticket = string # ID del ticket asociado
accessclass = string # "public" o "private"
additional_tags = map(string) # Etiquetas adicionales
}
}| Nombre | Descripción |
|---|---|
| route53_info | Mapa con información de las zonas Route 53 creadas |
- Uso de mapas de objetos para configuraciones de recursos
- Sistema de etiquetado estandarizado
- Validación de variables de entrada
- Nomenclatura estandarizada para recursos
- Documentación completa
- Para zonas privadas, es necesario especificar un
vpc_idválido - El campo
accessclassdebe coincidir con el tipo de zona (public/private) - Las etiquetas transversales se definen en el proveedor AWS usando
default_tags - El nombre de la zona debe ser un dominio válido (ej: example.com, sub.example.co, internal.local)
Este módulo ha sido desarrollado siguiendo los estándares de Pragma CloudOps, garantizando una implementación segura, escalable y optimizada que cumple con todas las políticas de la organización. Pragma CloudOps recomienda revisar este código con su equipo de infraestructura antes de implementarlo en producción.