Terraform の開始方法: AWS CDK および AWS CloudFormation エキスパート向けガイダンス - AWS 規範ガイダンス

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

Terraform の開始方法: AWS CDK および AWS CloudFormation エキスパート向けガイダンス

Steven Guggenheimer、Amazon Web Services (AWS)

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

クラウドリソースのプロビジョニングの経験が の領域のみにある場合 AWS、 AWS Cloud Development Kit (AWS CDK)および 以外のコードとしてのインフラストラクチャ (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。簡潔にするために、このガイドでは通常、 AWS IaC プロセスを CloudFormation 用語で参照しますが、比較は と同じです 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 プロバイダーについて
テンプレート 設定ファイル すべて