Commencer à utiliser Terraform : conseils pour les experts d'AWS CDK et d'AWS CloudFormation - AWS Directives prescriptives

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Commencer à utiliser Terraform : conseils pour les experts d'AWS CDK et d'AWS CloudFormation

Steven Guggenheimer, Amazon Web Services ()AWS

Mars 2024 (historique du document)

Si votre expérience en matière de provisionnement de ressources cloud se situe exclusivement dans le domaine de AWS, vous avez peut-être une expérience limitée avec les outils d'infrastructure en tant que code (IaC) au-delà de la AWS Cloud Development Kit (AWS CDK)limite. AWS CloudFormation En fait, des outils similaires, tels que Hashicorp Terraform, peuvent vous être totalement inconnus. Cependant, plus vous vous engagez dans votre transition vers le cloud, plus il devient inévitable que vous rencontriez Terraform. Il sera certainement à votre avantage de vous familiariser avec ses concepts fondamentaux.

Bien que Terraform AWS CDK, les et CloudFormation atteignent des objectifs similaires et partagent de nombreux concepts fondamentaux, il existe de nombreuses différences. Vous n'êtes peut-être pas préparé à ces différences si vous contactez Terraform pour la première fois. Après tout, comme AWS CDK les CloudFormation piles sont toutes basées sur l'intérieur Comptes AWS, elles entretiennent ainsi une relation directe avec la plupart des ressources qu'elles gèrent. Terraform n'est basé sur aucun environnement de fournisseur de cloud. Cela lui donne la flexibilité nécessaire pour prendre en charge différents fournisseurs, mais il doit maintenir ses ressources à partir d'un site distant.

Ce guide aide à démystifier les concepts de base de Terraform pour vous aider à relever tous les défis IaC qui se présentent à vous. Il se concentre sur la manière dont Terraform utilise des concepts, tels que les fournisseurs, les modules et les fichiers d'état, pour provisionner des ressources. Il met également en contraste les concepts de Terraform avec la manière dont les AWS CDK et CloudFormation exécutent des opérations similaires.

Note

AWS CDK Cela aide les développeurs à déployer des CloudFormation piles en utilisant des langages de codage programmatiques. Après l'exécutioncdk synth, votre code est converti en CloudFormation modèles. À partir de ce moment, le processus est identique entre le AWS CDK et CloudFormation. Par souci de concision, ce guide fait généralement référence au processus AWS IaC en CloudFormation termes, mais les comparaisons sont tout aussi pertinentes pour le AWS CDK.

CloudFormation et terminologie Terraform

Lorsque l'on compare Terraform avec AWS CDK et CloudFormation, il peut être difficile de concilier les concepts fondamentaux d'IaC en raison de la terminologie incohérente utilisée pour les décrire. Voici ces termes et la façon dont ce guide les désignera :

  • Pile Une pile est un IaC déployé dans un pipeline CI/CD et traçable en tant qu'unité unique.Bien que ce terme soit courant dans CloudFormation, Terraform ne l'utilise pas vraiment. Une pile Terraform est un module racine déployé avec tous ses modules enfants. Toutefois, afin d'éviter toute confusion avec le terme module, ce guide utilise le terme stack pour décrire un déploiement unique pour les deux outils.

  • État - L'état correspond à toutes les ressources actuellement suivies et à leurs configurations actuelles au sein d'une pile de déploiement IaC. Comme décrit dans la Comprendre les états et les backends de Terraform section, Terraform utilise le terme état plus que. CloudFormation En effet, le maintien de l'état est plus visible dans Terraform, mais le suivi et la mise à jour de l'état sont tout aussi importants pour. CloudFormation

  • Fichier IaC — Un fichier IaC est un fichier unique qui contient le langage d'infrastructure en tant que code (IaC). CloudFormation fait référence à un seul CloudFormation fichier en tant que modèle. Cependant, les modèles et les fichiers de modèles dans Terraform sont complètement différents. L'équivalent d'un CloudFormation modèle dans Terraform s'appelle un fichier de configuration. Pour éviter toute confusion dans ce guide, le terme fichier ou fichier iAC est utilisé pour désigner à la fois les CloudFormation modèles et les fichiers de configuration Terraform.

Le tableau suivant compare la terminologie utilisée pour Terraform CloudFormation et Terraform. Le but de ce tableau est de montrer les similitudes. Il ne s'agit pas de one-to-one comparaisons. Chaque concept diffère au moins légèrement entre Terraform CloudFormation et Terraform. Les concepts sont expliqués en détail dans les sections pertinentes de ce guide.

CloudFormation terme Terme Terraform Section de ce guide
Interfaces CDK (telles que iBucket) Source de données Comprendre les sources de données Terraform
Modifier le set Plan Comprendre les modules Terraform
Fonctions de condition Expressions conditionnelles Comprendre les fonctions, expressions et méta-arguments de Terraform
Attribut DependsOn depends_onméta-argument Comprendre les fonctions, expressions et méta-arguments de Terraform
Fonctions intrinsèques Fonctions Comprendre les fonctions, expressions et méta-arguments de Terraform
Modules Modules Comprendre les modules Terraform
Outputs Valeurs de sortie Comprendre les variables, les valeurs locales et les sorties Terraform
Paramètres Variables Comprendre les variables, les valeurs locales et les sorties Terraform
Registre Fournisseurs Comprendre les fournisseurs de Terraform
Modèle Fichier de configuration Tous