Uso de Terraform como herramienta de IaC para Nube de AWS - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de Terraform como herramienta de IaC para Nube de AWS

HashiCorp Terraform es una herramienta de infraestructura como código (IaC) que le ayuda a administrar su infraestructura de nube. Con Terraform, puede definir los recursos locales y en la nube en archivos de configuración que puede versionar, reutilizar y compartir. A continuación, puede utilizar un flujo de trabajo coherente para aprovisionar y gestionar toda su infraestructura a lo largo de su ciclo de vida.

Los desarrolladores utilizan un lenguaje de configuración de alto nivel denominado lenguaje Terraform. La sintaxis nativa de bajo nivel del lenguaje Terraform es el lenguaje de HashiCorpconfiguración (HCL). El lenguaje Terraform está diseñado para que los humanos puedan leer y escribir fácilmente. Utiliza el lenguaje Terraform para describir el estado final deseado de la infraestructura local o en la nube. Luego, Terraform genera un plan para alcanzar ese estado final y usted ejecuta el plan para aprovisionar la infraestructura.

Ventajas de usar Terraform:

  • Terraform es independiente de la plataforma. Puede usarlo con cualquier proveedor de servicios en la nube. Puede configurar, probar e implementar la infraestructura en AWS muchos otros proveedores de nube. Si su organización utiliza varios proveedores de nube, Terraform puede ser una solución única, unificada y coherente para administrar la infraestructura de la nube. Para obtener más información sobre la compatibilidad con múltiples nubes, consulte el aprovisionamiento de nubes múltiples en el sitio web de Terraform.

  • Terraform no tiene agentes. No requiere la instalación de ningún software en la infraestructura gestionada.

  • Los módulos Terraform son una forma eficaz de reutilizar el código y cumplir con el principio de no repetirlo (DRY). Por ejemplo, puede tener una configuración específica para una aplicación que contenga una instancia de Amazon Elastic Compute Cloud (Amazon EC2), volúmenes de Amazon Elastic Block Store (Amazon EBS) y otros recursos agrupados de forma lógica. Si necesita crear varias copias de esta configuración o aplicación, puede empaquetar los recursos en un módulo de Terraform y crear varias instancias del módulo en lugar de copiar todo el código varias veces. Estos módulos pueden ayudarlo a organizar, encapsular y reutilizar las configuraciones. También proporcionan coherencia y garantizan las mejores prácticas.

  • Terraform puede detectar y gestionar la desviación (entrada del blog de Terraform) en su infraestructura. Por ejemplo, si los recursos gestionados por Terraform se modifican fuera de Terraform, puede detectar la desviación y restaurarlos al estado deseado mediante la CLI de Terraform.

Desventajas de usar Terraform:

  • Es posible que no esté disponible el soporte para nuevas funciones o nuevos recursos relacionados con cualquier proveedor de nube.

  • Terraform no administra automáticamente su estado de la misma manera AWS CloudFormation. Se almacena de forma predeterminada en un archivo local, pero también puede almacenarlo de forma remota en un bucket de Amazon S3 o a través de Terraform Enterprise.

  • El estado de Terraform puede contener datos confidenciales, como contraseñas de bases de datos, lo que puede plantear problemas de seguridad. Se recomienda cifrar el archivo de estado, almacenarlo de forma remota, habilitar el control de versiones de los archivos y utilizar el mínimo de privilegios para las operaciones de lectura y escritura en él. Para obtener más información, consulte Proteger los datos confidenciales mediante Terraform AWS Secrets Manager. HashiCorp

  • En agosto de 2023, Hashicorp anunció que dejaría de tener una licencia de código abierto bajo la licencia pública de Mozilla. En cambio, ahora está licenciado bajo la licencia Business Source.