módulos de Terraform: arquitectura de dos niveles

módulos de terraform

Implementación de una arquitectura de dos niveles de AWS mediante módulos de Terraform

En este proyecto, su gerente quiere que implemente una arquitectura de dos niveles de alta disponibilidad utilizando módulos de terraform. ¡El poder de la automatización y las metodologías de ahorro de costos se muestran en este proyecto!

Para este proyecto, puede tener todo su código en un solo archivo main.tf (conocido como monolito) con datos codificados.

Qué necesitarás:

  1. Cuenta AWS
  2. Nube de AWS9
  3. GitHub para enviar tu código a
  4. Documentación de Terraform, segunda documentación

Objetivos:

  1. Implemente una VPC con CIDR 10.0.0.0/16 con 2 subredes públicas con CIDR 10.0.1.0/24 y 10.0.2.0/24. Cada subred pública debe estar en una AZ diferente para una alta disponibilidad.
  2. Cree 2 subredes privadas con CIDR ‘10.0.3.0/24’ y ‘10.0.4.0/24’ con una instancia RDS MySQL (micro) en una de las subredes públicas. Cada subred privada debe estar en una AZ diferente. Tenga en cuenta que no desea que el tamaño de su RDS sea demasiado grande o demasiado pequeño, ya que llevará más tiempo implementarlo.
  3. Un equilibrador de carga que dirigirá el tráfico a las subredes públicas.
  4. Implemente 1 instancia EC2 t2.micro en cada subred pública.

¿Qué es Terraform?

Terraform es una herramienta de infraestructura como código que se usa comúnmente para construir, manipular y versionar la infraestructura de manera segura y eficiente.

Terraform, como verá más adelante con este proyecto, se utiliza para implementar automáticamente recursos en la nube, como los servicios de AWS (instancias ec2, nube privada virtual, etc.), lo que ahorra a las empresas tiempo y dinero con el tiempo.

Los archivos de configuración de Terraform se pueden usar para implementar recursos en la nube según los necesite un desarrollador/ingeniero.


¡Empecemos!

Paso 1: inicie sesión en la cuenta de AWS y abra AWS Cloud9

Escriba el siguiente script que contiene todos nuestros recursos de AWS necesarios para implementar nuestra arquitectura de dos niveles.

Mi código se puede encontrar en mi repositorio de GitHub para una mejor legibilidad

Asegúrese de nombrar el archivo del editor de texto en el que está trabajando como main.tf

contiene instancias ec2 y creación de código rds

equilibrador de carga adjunto a nuestras instancias

Paso 2: ¡Terraformemos las cosas!

En su AWS Cloud9 CLI, ejecute el siguiente comando:

terraform init
  • terraform init: inicializa el archivo de configuración. Prepara todo para la producción.

¡Una inicialización verde exitosa es una buena señal!

Paso 3: ejecutar el plan de terraformación

El “plan de terraformación” enumerará todas las acciones necesarias para implementar la infraestructura.

terraform plan 

Paso 4: Ejecute terraform validar

validación de terraformación” revisará el código de terraformación y verificará si contiene algún error que impida que la infraestructura se implemente correctamente.

terraform validate 

Paso 5: Ejecute terraform apply

terraform apply” desplegará oficialmente nuestra infraestructura.

terraform apply 

Ingrese sí para tener todo implementado oficialmente

Despliegue de infraestructura

Despliegue de infraestructura

Se agregó un módulo para la creación de instancias ec2.

módulos de Terraform
Se agregó un módulo para el balanceador de carga.

  • Nota: Me encontré con una serie de errores en mi implementación inicial, razón por la cual ve múltiples implementaciones de recursos.

Paso 6: Verificar el despliegue exitoso de la Infraestructura

  • Base de datos RDS MySQL:

módulos de Terraform

  • VPC:

módulos de Terraform

  • Subredes privadas/públicas para nuestra VPC:

módulos de Terraform

  • Equilibrador de carga:

módulos de Terraform

  • Instancias EC2:

módulos de Terraform


¡Felicitaciones, ha implementado con éxito una arquitectura de dos niveles utilizando módulos Terraform!

Asegúrese de eliminar todos los recursos que se crearon en este proyecto.

Ejecute el siguiente comando para que todos los recursos que se crearon se eliminen automáticamente:

terraform destroy

Gracias por llegar hasta aquí, si encuentras esto útil no olvides aplaudir 👍🏼suscribirse para recibir más contenido.

Si le interesa, puede echar un vistazo a algunos de los otros artículos que he escrito recientemente sobre AWS y Laravel:

Recent Post