outputs.tf
と .tfstate
ファイルは、Terraformプロジェクトの異なる側面を反映しているため、それぞれ異なる役割と特性を持っています。以下に、それぞれのファイルの主な違いと役割を説明します。
outputs.tf
1. **定義ファイル**: outputs.tf
はTerraformの設定ファイルの一部で、特定のリソースや値の出力を定義します。
2. **ユーザー定義**: outputs.tf
には、ユーザーが明示的に定義した出力変数が含まれます。これにより、Terraformのapply
操作の終了時やterraform output
コマンドの実行時に表示される情報を指定することができます。
3. **静的定義**: このファイルは、実行前のTerraformコードに基づいて定義されます。実際のリソースの作成や変更には影響を受けません。
.tfstate (Terraform State File)
1. **状態ファイル**: .tfstate
ファイルは、Terraformが管理するリソースの現在の状態を反映するJSON形式のファイルです。
2. **自動生成**: terraform apply
が成功した後、Terraformは実際のクラウドインフラの状態を .tfstate
ファイルに自動的に記録します。
3. **現在の状態**: このファイルは、Terraformが次回のplan
やapply
操作を行う際に、既存のリソースの状態を知るための主要な参照点として使用します。
4. **機密情報の含有**: .tfstate
ファイルには、リソースの属性に関する情報や潜在的に機密な情報も含まれることがあるため、適切な取り扱いが必要です。
まとめ
- outputs.tf
はユーザーが定義する出力変数を指定するためのもので、その情報をユーザーに表示する目的があります。
- .tfstate
ファイルはTerraformが自動的に生成し管理するもので、現在のインフラ状態のスナップショットを保存します。この状態は、次回のTerraform操作でのリソースの変更や管理に不可欠です。