Terraform の開始方法: AWS CDK と AWS CloudFormation の専門家向けのガイダンス - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Terraform の開始方法: AWS CDK と AWS CloudFormation の専門家向けのガイダンス

Amazon Web Services (AWS)、Steven Guggenheimer

2024 年 3 月 (ドキュメント履歴)

クラウドリソースのプロビジョニングの経験が の領域のみにある場合 AWS、 AWS Cloud Development Kit (AWS CDK)および 以外の Infrastructure as Code (IaC) ツールの使用経験が限られている可能性がありますAWS CloudFormation。実際、Hashicorp Terraform などの同様のツールにはまったく慣れていない場合があります。ただし、クラウドジャーニーをより深く進めるほど、Terraform に遭遇することが避けられないようになります。その中核となる概念に精通することが決定します。

Terraform、 AWS CDK、および CloudFormation は同様の目標を達成し、多くの主要な概念を共有しますが、いくつかの違いがあります。Terraform に初めて近づいている場合は、これらの違いに備えていない可能性があります。結局のところ、 AWS CDK スタックと CloudFormation スタックはすべて 内をベースとしているため、その方法では AWS アカウント、維持するほとんどのリソースと直接的な関係があります。Terraform は、単一のクラウドプロバイダーの環境には基づいていません。これにより、さまざまなプロバイダーを柔軟にサポートできますが、リモートロケーションまでリソースを維持する必要があります。

このガイドは、Terraform の背後にある主要な概念をわかりやすく説明し、発生する IaC チャレンジの処理に役立ちます。Terraform がプロバイダー、モジュール、状態ファイルなどの概念を使用してリソースをプロビジョニングする方法に焦点を当てています。また、Terraform の概念と、 AWS CDK および CloudFormation が同様のオペレーションを実行する方法とは対照的です。

注記

は、開発者がプログラムによるコーディング言語を使用して CloudFormation スタックをデプロイする AWS CDK のに役立ちます。を実行するとcdk synth、コードは CloudFormation テンプレートに変換されます。その時点から、プロセスは AWS CDK と CloudFormation の間で同じです。簡潔にするために、このガイドは通常 CloudFormation 用語の AWS IaC プロセスを参照しますが、比較は に似ています AWS CDK。

CloudFormation と Terraform の用語

Terraform と AWS CDK および CloudFormation を比較する場合、IaC コア概念の説明に使用される用語が一貫していないため、IaC コア概念の照合が困難になる可能性があります。以下に、これらの用語と、このガイドでそれらの用語がどのように参照されるかを示します。

  • スタックスタックは CI/CD パイプラインにデプロイされ、単一のユニットとして追跡可能な IaC ですこの用語は CloudFormation で一般的ですが、Terraform はこの用語を実際には使用しません。Terraform スタックは、すべての子モジュールを含むデプロイされたルートモジュールです。ただし、モジュールという用語との混同を避けるために、このガイドではスタックという用語を使用して両方のツールの単一のデプロイを記述します。

  • 状態 - 状態は、現在追跡されているすべてのリソースと、IaC デプロイスタック内の現在の設定ですTerraform の状態とバックエンドについて セクションで説明されているように、Terraform は CloudFormation よりも 状態という用語を使用します。これは、状態の維持は Terraform でより目立つが、状態の追跡と更新は CloudFormation にとって同様に重要であるためです。

  • IaC ファイル – IaC ファイルは、Infrastructure as Code (IaC) 言語を含む単一のファイルですCloudFormation は、単一の CloudFormation ファイルをテンプレートとして参照します。ただし、Terraform のテンプレートテンプレートファイルはまったく異なります。Terraform の CloudFormation テンプレートに相当するものは、設定ファイルと呼ばれます。このガイドの混乱を最小限に抑えるために、 ファイルまたは IaC ファイルという用語は、CloudFormation テンプレートと Terraform 設定ファイルの両方を参照するために使用されます。

次の表は、CloudFormation と Terraform で使用される用語を比較したものです。このテーブルの目的は、類似点を表示することです。これらは one-to-one の比較ではありません。各概念は、CloudFormation と Terraform で少なくともわずかに異なります。概念については、このガイドの関連するセクションで詳しく説明します。

CloudFormation 用語 Terraform 用語 このガイドのセクション
CDK インターフェイス (IBucket など) データソース Terraform データソースについて
[変更セット] プラン Terraform モジュールについて
条件関数 条件式 Terraform 関数、式、メタ引数について
DependsOn 属性 depends_on メタ引数 Terraform 関数、式、メタ引数について
組み込み関数 関数 Terraform 関数、式、メタ引数について
モジュール モジュール Terraform モジュールについて
アウトプット 出力値 Terraform 変数、ローカル値、出力について
パラメータ [変数] Terraform 変数、ローカル値、出力について
レジストリ プロバイダー Terraform プロバイダーについて
テンプレート 設定ファイル すべて