Introducción a Terraform: orientación para expertos en AWS CDK y AWS CloudFormation - 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.

Introducción a Terraform: orientación para expertos en AWS CDK y AWS CloudFormation

Steven Guggenheimer, Amazon Web Services ()AWS

Marzo de 2024 (historial del documento)

Si su experiencia con el aprovisionamiento de recursos en la nube se basa exclusivamente en el ámbito de AWS, es posible que tenga una experiencia limitada con las herramientas de infraestructura como código (IaC) más allá de lo convencional. AWS Cloud Development Kit (AWS CDK)AWS CloudFormation De hecho, es posible que no conozcas por completo herramientas similares, como Hashicorp Terraform. Sin embargo, cuanto más te adentres en tu viaje a la nube, más inevitable será que te encuentres con Terraform. No cabe duda de que será una ventaja para usted estar familiarizado con sus conceptos básicos.

Si bien Terraform AWS CDK, the y Terraform CloudFormation alcanzan objetivos similares y comparten muchos conceptos básicos, existen bastantes diferencias. Es posible que no estés preparado para estas diferencias si te acercas a Terraform por primera vez. Al fin AWS CDK y al cabo, todas las CloudFormation pilas se basan en uno mismo Cuentas de AWS, por lo que tienen una relación directa con la mayoría de los recursos que mantienen. Terraform no se basa en el entorno de un único proveedor de servicios en la nube. Esto le da la flexibilidad necesaria para dar soporte a varios proveedores diferentes, pero debe mantener los recursos desde una ubicación remota.

Esta guía ayuda a desmitificar los conceptos básicos de Terraform para ayudarle a afrontar cualquier desafío relacionado con la IaC que se le presente. Se centra en cómo Terraform utiliza conceptos, como proveedores, módulos y archivos de estado, para aprovisionar recursos. También contrasta los conceptos de Terraform con la forma en que AWS CDK CloudFormation realiza operaciones similares.

nota

AWS CDK Esto ayuda a los desarrolladores a implementar CloudFormation pilas mediante lenguajes de codificación programática. Después de ejecutarlocdk synth, el código se convierte en CloudFormation plantillas. A partir de ese momento, el proceso es idéntico entre AWS CDK y CloudFormation. En aras de la brevedad, esta guía generalmente se refiere al proceso AWS IaC en CloudFormation términos, pero las comparaciones son igualmente adecuadas para el. AWS CDK

CloudFormation y terminología de Terraform

Al comparar Terraform con AWS CDK y CloudFormation, conciliar los conceptos básicos de la IaC puede resultar difícil debido a la terminología incoherente que se utiliza para describirlos. Los siguientes son estos términos y cómo se referirá a ellos en esta guía:

  • Pila : una pila es un iAC que se implementa en una canalización de CI/CD y se puede rastrear como una sola unidad.Aunque este término es común en Terraform CloudFormation, en realidad, no lo usa. Una pila de Terraform es un módulo raíz desplegado con todos sus módulos secundarios. Sin embargo, para evitar confusiones con el término módulo, en esta guía se utiliza el término pila para describir una implementación única para ambas herramientas.

  • Estado: el estado incluye todos los recursos rastreados actualmente y sus configuraciones actuales dentro de una pila de implementación de IaC. Como se describe en la Comprensión de los estados y los backends de Terraform sección, Terraform usa el término estado más que. CloudFormation Esto se debe a que el mantenimiento del estado es más visible en Terraform, pero el seguimiento y la actualización del estado son igualmente importantes para ellos. CloudFormation

  • Archivo iAC: un archivo iAC es un archivo único que contiene la infraestructura como lenguaje de código (IaC). CloudFormation hace referencia a un único CloudFormation archivo como plantilla. Sin embargo, las plantillas y los archivos de plantillas en Terraform son algo completamente diferente. El equivalente a una CloudFormation plantilla en Terraform se denomina archivo de configuración. Para minimizar la confusión en esta guía, el término archivo o archivo IaC se utiliza para referirse tanto a las CloudFormation plantillas como a los archivos de configuración de Terraform.

En la siguiente tabla se compara la terminología utilizada para Terraform CloudFormation y Terraform. La intención de esta tabla es mostrar similitudes. No se trata de one-to-one comparaciones. Cada concepto difiere al menos ligeramente entre Terraform CloudFormation y Terraform. Los conceptos se explican en profundidad en las secciones pertinentes de esta guía.

CloudFormation término Término de Terraform Sección de esta guía
Interfaces CDK (como iBucket) Origen de datos Comprensión de las fuentes de datos de Terraform
Conjunto de cambios Plan Descripción de los módulos de Terraform
Funciones de condiciones Expresiones condicionales Comprensión de las funciones, expresiones y metaargumentos de Terraform
Atributo DependsOn depends_onmetaargumento Comprensión de las funciones, expresiones y metaargumentos de Terraform
Funciones intrínsecas Funciones Comprensión de las funciones, expresiones y metaargumentos de Terraform
Módulos Módulos Descripción de los módulos de Terraform
Salidas Valores de salida Comprensión de las variables, los valores locales y los resultados de Terraform
Parámetros Variables Comprensión de las variables, los valores locales y los resultados de Terraform
Registro Proveedores Entendiendo a los proveedores de Terraform
Plantilla Archivo de configuración Todos