Comece a usar o Terraform: orientação para especialistas em CDK e AWS CloudFormation - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Comece a usar o Terraform: orientação para especialistas em CDK e AWS CloudFormation

Steven Guggenheimer, da Amazon Web Services ()AWS

Março de 2024 (histórico do documento)

Se sua experiência com o provisionamento de recursos de nuvem estiver exclusivamente dentro do domínio de AWS, você pode ter experiência limitada com ferramentas de infraestrutura como código (IaC) além do normal. AWS Cloud Development Kit (AWS CDK)AWS CloudFormation Na verdade, ferramentas semelhantes, como o Hashicorp Terraform, podem ser completamente desconhecidas para você. No entanto, quanto mais você se aprofunda em sua jornada na nuvem, mais inevitável se torna que você encontre o Terraform. Definitivamente, será vantajoso para você se familiarizar com seus conceitos fundamentais.

Embora o Terraform AWS CDK, o e CloudFormation alcancem objetivos semelhantes e compartilhem muitos conceitos básicos, existem algumas diferenças. Talvez você não esteja preparado para essas diferenças se estiver abordando o Terraform pela primeira vez. Afinal, AWS CDK as CloudFormation pilhas são todas baseadas internamente Contas da AWS, então, dessa forma, elas têm uma relação direta com a maioria dos recursos que mantêm. O Terraform não está baseado no ambiente de nenhum único provedor de nuvem. Isso lhe dá a flexibilidade de oferecer suporte a vários provedores diferentes, mas deve manter recursos do que equivale a um local remoto.

Este guia ajuda a desmistificar os principais conceitos por trás do Terraform para ajudá-lo a lidar com qualquer desafio de IaC que surja em seu caminho. Ele se concentra em como o Terraform usa conceitos, como provedores, módulos e arquivos de estado, para provisionar recursos. Também compara os conceitos do Terraform com a forma como o AWS CDK e CloudFormation executam operações semelhantes.

nota

AWS CDK Isso ajuda os desenvolvedores a implantar CloudFormation pilhas usando linguagens de codificação programática. Depois de executadocdk synth, seu código é convertido em CloudFormation modelos. Desse ponto em diante, o processo é idêntico entre AWS CDK CloudFormation e. Por uma questão de brevidade, este guia geralmente se refere ao processo de AWS IaC em CloudFormation termos, mas as comparações são igualmente adequadas para o. AWS CDK

CloudFormation e terminologia do Terraform

Ao comparar o Terraform com o AWS CDK and CloudFormation, reconciliar os conceitos básicos do IaC pode ser difícil devido à terminologia inconsistente usada para descrevê-los. A seguir estão esses termos e como este guia se referirá a eles:

  • Pilha Uma pilha é IaC que é implantada em um pipeline de CI/CD e rastreável como uma única unidade.Embora esse termo seja comum em CloudFormation, o Terraform realmente não usa esse termo. Uma pilha do Terraform é um módulo raiz implantado com todos os seus módulos secundários. No entanto, para evitar confusão com o termo módulo, este guia usa o termo pilha para descrever uma única implantação para ambas as ferramentas.

  • Estado - O estado é composto por todos os recursos atualmente rastreados e suas configurações atuais em uma pilha de implantação de IaC. Conforme descrito na Entendendo os estados e back-ends do Terraform seção, o Terraform usa o termo estado mais do que CloudFormation. Isso ocorre porque manter o estado é mais visível no Terraform, mas rastrear e atualizar o estado é igualmente importante para CloudFormation.

  • Arquivo IaC — Um arquivo IaC é um arquivo único que contém a linguagem de infraestrutura como código (IaC). CloudFormation se refere a um único CloudFormation arquivo como modelo. No entanto, modelos e arquivos de modelo no Terraform são algo completamente diferente. O equivalente a um CloudFormation modelo no Terraform é chamado de arquivo de configuração. Para minimizar a confusão neste guia, o termo arquivo ou arquivo IaC é usado para se referir aos CloudFormation modelos e aos arquivos de configuração do Terraform.

A tabela a seguir compara a terminologia usada para CloudFormation e o Terraform. A intenção dessa tabela é mostrar semelhanças. Essas não são one-to-one comparações. Cada conceito difere pelo menos um pouco entre o Terraform CloudFormation e o Terraform. Os conceitos são explicados detalhadamente nas seções relevantes deste guia.

CloudFormation termo Termo Terraform Seção deste guia
Interfaces CDK (como iBucket) Fonte de dados Entendendo as fontes de dados do Terraform
Conjunto de alterações Planejamento Entendendo os módulos do Terraform
Funções de condição Expressões condicionais Entendendo as funções, expressões e meta-argumentos do Terraform
Atributo DependsOn depends_onmeta-argumento Entendendo as funções, expressões e meta-argumentos do Terraform
Funções intrínsecas Funções Entendendo as funções, expressões e meta-argumentos do Terraform
Modules Modules Entendendo os módulos do Terraform
Outputs Valores de saída Compreendendo as variáveis, valores locais e saídas do Terraform
Parâmetros Variáveis Compreendendo as variáveis, valores locais e saídas do Terraform
Registro Provedores Entendendo os fornecedores do Terraform
Modelo Arquivo de configuração Todos