現時点で必要最低限のファイル構成を記載しています。
他にも便利な定義ファイルがあるようですが、いったん入門編ということで。
ファイル名 | 説明 | 備考 |
---|---|---|
backend.tf | 実行結果の状態を記録先(stateファイル)を定義する。 stateファイルの出力先はlocalやS3が選べる。 | 複数人で共有する場合はS3としておくと容易に共有可能。 |
main.tf | リソースの定義ファイル | リソースが大量な場合は、別途.tfファイルに分割できるので 主要リソースはmain.tfに記載 |
output.tf | Terraformが作成したリソース情報を指定して出力する。 | terraform outputで出力結果を読み込んだり terraformremotestateで別プロジェクトから読み込み可能 |
provider.tf | 構築するリソースのプロバイダー情報を記載します。 | AWSならprovider “aws”といった記載 profileを指定することで、利用するAWSCLIのprofileも指定可能。 |
variables.tf | main.tfで利用する変数を定義する。 |
backend.tf、provider.tfのサンプルです。
main.tf、output.tf、variables.tfは関連性が強いので別ページに記載します。
terraform { backend "s3" { bucket = "s3バケット名" region = "s3バケットのリージョン名" key = "プロジェクト/環境/リソース名/tfstate" encrypt = true profile = "AWSCLIプロファイル名" } }
provider "aws" { region = "main.tfのリソース作成先のリージョン名" profile = "AWSCLIプロファイル名" }