

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à.

# Utilizzo di Terraform come strumento IaC per Cloud AWS
<a name="terraform"></a>

[HashiCorp Terraform](https://developer.hashicorp.com/terraform) è uno strumento di infrastruttura come codice (IaC) che ti aiuta a gestire la tua infrastruttura cloud. Utilizzando Terraform, puoi definire risorse cloud e locali in file di configurazione che puoi modificare, riutilizzare e condividere. È quindi possibile utilizzare un flusso di lavoro coerente per fornire e gestire tutta l'infrastruttura durante il suo ciclo di vita.

[Gli sviluppatori utilizzano un linguaggio di configurazione di alto livello chiamato linguaggio Terraform.](https://developer.hashicorp.com/terraform/language) La sintassi nativa di basso livello del linguaggio Terraform è [HashiCorpConfiguration](https://developer.hashicorp.com/terraform/language/syntax/configuration) Language (HCL). Il linguaggio Terraform è progettato per essere facile da leggere e scrivere per gli umani. Utilizzi il linguaggio Terraform per descrivere lo stato finale desiderato del cloud o dell'infrastruttura locale. Terraform genera quindi un piano per raggiungere quello stato finale e tu esegui il piano per il provisioning dell'infrastruttura.

**Vantaggi dell'utilizzo di Terraform:**
+ Terraform è indipendente dalla piattaforma. Puoi usarlo con qualsiasi provider di servizi cloud. Puoi configurare, testare e implementare l'infrastruttura tra AWS molti altri provider di cloud. Se la tua organizzazione utilizza più provider cloud, Terraform può essere un'unica soluzione unificata e coerente per gestire l'infrastruttura cloud. Per ulteriori informazioni sul supporto multi-cloud, consulta il [provisioning multi-cloud](https://www.terraform.io/use-cases/multi-cloud-deployment) sul sito Web Terraform.
+ Terraform è senza agenti. Non richiede l'installazione di alcun software sull'infrastruttura gestita.
+ I moduli Terraform sono un modo efficace per riutilizzare il codice e attenersi al principio *Don't Repeat Yourself (DRY)*. Ad esempio, potresti avere una configurazione specifica per un'applicazione che contiene un'istanza Amazon Elastic Compute Cloud (Amazon EC2), volumi Amazon Elastic Block Store (Amazon EBS) e altre risorse raggruppate logicamente. Se devi creare più copie di questa configurazione o applicazione, puoi impacchettare le risorse in un modulo Terraform e creare più istanze del modulo anziché copiare l'intero codice più volte. Questi moduli possono aiutarti a organizzare, incapsulare e riutilizzare le configurazioni. Garantiscono inoltre coerenza e garantiscono le migliori pratiche.
+ Terraform è in grado di [rilevare e gestire la deriva](https://www.hashicorp.com/blog/detecting-and-managing-drift-with-terraform) (post sul blog Terraform) nella tua infrastruttura. Ad esempio, se le risorse gestite da Terraform vengono modificate all'esterno di Terraform, è possibile rilevare la deriva e ripristinarle allo stato desiderato utilizzando la CLI Terraform.

**Svantaggi dell'utilizzo di Terraform:**
+ Il supporto per nuove funzionalità o nuove risorse relative a qualsiasi provider di servizi cloud potrebbe non essere disponibile.
+ Terraform non gestisce automaticamente il tuo stato come AWS CloudFormation. [È archiviato per impostazione predefinita in un file locale, ma puoi anche archiviarlo in remoto in un bucket [Amazon S3](https://developer.hashicorp.com/terraform/language/settings/backends/s3) o tramite Terraform Enterprise.](https://developer.hashicorp.com/terraform/enterprise)
+ Lo stato Terraform può contenere dati sensibili, come le password dei database, che possono comportare problemi di sicurezza. È consigliabile crittografare il file di stato, archiviarlo in remoto, abilitare il controllo delle versioni dei file su di esso e utilizzare i privilegi minimi per le operazioni di lettura e scrittura su di esso. Per ulteriori informazioni, consulta [Proteggere i dati sensibili utilizzando e](https://docs.aws.amazon.com/prescriptive-guidance/latest/secure-sensitive-data-secrets-manager-terraform/introduction.html) Terraform. Gestione dei segreti AWS HashiCorp
+ [Nell'agosto 2023, Hashicorp ha annunciato che non sarebbe più stato concesso in licenza come open source ai sensi della Mozilla Public License.](https://www.mozilla.org/en-US/MPL/) [Invece, ora è concesso in licenza con la Business Source License.](https://github.com/hashicorp/terraform/blob/b145fbcaadf0fa7d0e7040eac641d9aef2a26433/LICENSE)