Guida introduttiva a Terraform: linee guida per AWS CDK e esperti AWS CloudFormation - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Guida introduttiva a Terraform: linee guida per AWS CDK e esperti AWS CloudFormation

Steven Guggenheimer, Amazon Web Services ()AWS

Marzo 2024 (cronologia del documento)

Se la tua esperienza con il provisioning di risorse cloud rientra esclusivamente nell'ambito di AWS, potresti avere un'esperienza limitata con gli strumenti Infrastructure as Code (IaC) oltre la Rand. AWS Cloud Development Kit (AWS CDK)AWS CloudFormation In effetti, strumenti simili, come Hashicorp Terraform, potrebbero esserti del tutto sconosciuti. Tuttavia, più approfondisci il tuo percorso verso il cloud, più inevitabile diventa che incontrerai Terraform. Sarà decisamente a tuo vantaggio conoscerne i concetti fondamentali.

Sebbene Terraform, the AWS CDK, CloudFormation raggiungano obiettivi simili e condividano molti concetti fondamentali, ci sono alcune differenze. Potresti non essere preparato a queste differenze se ti avvicini a Terraform per la prima volta. Dopotutto, AWS CDK gli CloudFormation stack sono tutti basati all'interno Account AWS, quindi in questo modo hanno una relazione diretta con la maggior parte delle risorse che mantengono. Terraform non si basa sull'ambiente di nessun singolo provider di cloud. Ciò gli offre la flessibilità necessaria per supportare diversi provider, ma deve mantenere le risorse da una posizione remota.

Questa guida aiuta a demistificare i concetti fondamentali alla base di Terraform per aiutarti a gestire qualsiasi sfida IaC che ti si presenta. Si concentra su come Terraform utilizza concetti, come provider, moduli e file di stato, per fornire risorse. Inoltre, contrappone i concetti di Terraform al modo in cui AWS CDK ed CloudFormation esegue operazioni simili.

Nota

AWS CDK Aiuta gli sviluppatori a distribuire gli CloudFormation stack utilizzando linguaggi di codifica programmatici. Dopo l'esecuzionecdk synth, il codice viene convertito in modelli. CloudFormation Da quel momento in poi, il processo è identico tra AWS CDK e CloudFormation. Per motivi di brevità, questa guida di solito si riferisce al processo AWS IaC in CloudFormation termini, ma i confronti sono altrettanto adatti per. AWS CDK

CloudFormation e terminologia Terraform

Quando si confronta Terraform con AWS CDK and CloudFormation, riconciliare i concetti fondamentali di IaC può essere difficile a causa della terminologia incoerente utilizzata per descriverli. Di seguito sono riportati questi termini e il modo in cui questa guida si riferirà ad essi:

  • Stack : uno stack è un IAC distribuito in una pipeline CI/CD e tracciabile come singola unità.Sebbene questo termine sia comune in, Terraform non lo usa realmente CloudFormation. Uno stack Terraform è un modulo root distribuito con tutti i suoi moduli figlio. Tuttavia, per evitare confusione con il termine modulo, questa guida utilizza il termine stack per descrivere una singola implementazione per entrambi gli strumenti.

  • Stato: lo stato indica tutte le risorse attualmente monitorate e le relative configurazioni correnti all'interno di uno stack di distribuzione IaC. Come descritto nella Comprensione degli stati e dei backend di Terraform sezione, Terraform usa il termine stato più di. CloudFormation Questo perché il mantenimento dello stato è più visibile in Terraform, ma il monitoraggio e l'aggiornamento dello stato sono altrettanto importanti per. CloudFormation

  • File IaC: un file IaC è un singolo file che contiene il linguaggio Infrastructure as Code (IaC). CloudFormation si riferisce a un singolo CloudFormation file come modello. Tuttavia, i modelli e i file modello in Terraform sono qualcosa di completamente diverso. L'equivalente di un CloudFormation modello in Terraform è chiamato file di configurazione. Per ridurre al minimo la confusione in questa guida, il termine file o file IAc viene utilizzato per riferirsi sia ai CloudFormation modelli che ai file di configurazione Terraform.

La tabella seguente confronta la terminologia utilizzata per Terraform e Terraform. CloudFormation L'intento di questa tabella è mostrare le somiglianze. Non si tratta di confronti one-to-one . Ogni concetto differisce almeno leggermente tra CloudFormation e Terraform. I concetti sono spiegati in modo approfondito nelle sezioni pertinenti di questa guida.

CloudFormation termine Termine Terraform Sezione di questa guida
Interfacce CDK (come iBucket) Origine dati Comprensione delle fonti di dati Terraform
Cambia set Pianificazione Comprensione dei moduli Terraform
Funzioni di condizione Espressioni condizionali Comprensione delle funzioni, delle espressioni e dei meta-argomenti di Terraform
Attributo DependsOn depends_onmeta-argomento Comprensione delle funzioni, delle espressioni e dei meta-argomenti di Terraform
Funzioni intrinseche Funzioni Comprensione delle funzioni, delle espressioni e dei meta-argomenti di Terraform
Modules Modules Comprensione dei moduli Terraform
Output Valori di output Comprensione delle variabili Terraform, dei valori locali e degli output
Parametri Variables Comprensione delle variabili Terraform, dei valori locali e degli output
Registro Provider Comprendere i fornitori Terraform
Modello File di configurazione Tutti