Saltar al contenido principal
El repositorio Lerian Terraform Foundation contiene plantillas de Terraform para la infraestructura en la que se ejecuta Midaz: la red, el clúster de Kubernetes y los almacenes de datos. Es compatible con AWS, GCP y Azure. El repositorio usa la Elastic License 2.0.

Qué crean las plantillas


En GCP, las plantillas no crean una base de datos compatible con MongoDB ni un bróker RabbitMQ. En Azure, no crean un bróker RabbitMQ. Aprovisiona tú mismo estos servicios en esas nubes.
Trata las clases de instancia de los archivos de ejemplo como un punto de partida, no como un plan de capacidad. Antes de un despliegue en producción, revisa las clases de instancia, el almacenamiento y los límites de conexión según tu volumen de transacciones. Después lee la sección de información importante del README del repositorio.

AWS


En AWS, ejecutas las plantillas con Terraform y la CLI aws. Cada stack en examples/aws/ es una raíz de Terraform separada, con su propio estado, y aplicas los stacks uno a la vez. La sección de AWS del README del repositorio trae cada comando. Necesitas Terraform 1.9.0 o posterior y la CLI aws. Los pasos después del clúster también necesitan kubectl y helm. El despliegue de un entorno aplica estos stacks en este orden:
  1. bootstrap: el bucket de estado y la tabla de bloqueo. Aplícalo una vez por entorno.
  2. infra-base: la VPC y después el clúster EKS.
  3. Los stacks de Midaz en examples/aws/products/midaz/: postgres, documentdb, valkey y rabbitmq.
Cada stack de Midaz exporta helm_values, los ajustes del chart que el stack puede completar. Ninguna salida contiene una contraseña. Cada stack de almacén de datos guarda su contraseña en AWS Secrets Manager y exporta el nombre del secreto. External Secrets Operator, que tú instalas, copia la contraseña en un Secret de Kubernetes. Su rol de IAM viene del stack lerian-platform/eso.
Amazon MQ acepta solo conexiones AMQPS. Si escribes los valores tú mismo, define RABBITMQ_URI como amqps.

GCP y Azure


En GCP y Azure, un script interactivo ejecuta las plantillas. Cada directorio de componente tiene sus propios archivos backend.tf y midaz.tfvars. Necesitas Terraform y la CLI de tu proveedor de nube: gcloud para GCP o az para Azure.
1

Crea el bucket de estado

GCP:
Azure:
2

Configura cada componente

Reemplaza los marcadores de posición de backend.tf con los datos de tu bucket de estado. Después reemplaza los marcadores de posición de midaz.tfvars con tus valores.
3

Ejecuta el script

Desde la raíz del repositorio, ejecuta:
Selecciona el proveedor de nube y la acción: deploy o destroy.
El script se detiene antes de ejecutar Terraform si un archivo backend.tf todavía contiene un marcador de posición. Despliega cada componente en un orden fijo y se detiene en la primera falla. Un destroy se ejecuta en el orden inverso.

Autentícate en tu proveedor de nube


Usa las herramientas de autenticación de la CLI de tu proveedor de nube en lugar de credenciales en bruto:
Sigue las indicaciones de tu proveedor de nube: No hagas commit de credenciales en el control de versiones.

Instala Midaz


Cuando la infraestructura esté lista, instala Midaz en el clúster con Helm. En AWS, usa el archivo de valores que escribe la herramienta. En GCP y Azure, lee los endpoints con terraform output y defínelos en tu archivo de valores. Para el chart y sus valores, consulta Desplegar con Helm.

Consejos de seguridad


Para mantener segura la infraestructura de Midaz, sigue estas recomendaciones:
  • Usa clústeres de Kubernetes privados para limitar la exposición pública. Las plantillas no crean una VPN.
  • Configura y aplica RBAC (Role-Based Access Control) para administrar los permisos de los usuarios.
  • Guarda todos los secretos en el servicio de administración de secretos del proveedor de nube.
  • Da a las cuentas de servicio solo los permisos que necesitan.

¿Necesitas ayuda?