- Terraformを初めて触るので、ひとまず簡単なもので確認したい
- 普段AWSを使用しているので、S3をTerraformからdeployしてみる
- 実施memo
- 前提
実施手順
- ①作業ディレクトリの作成
- ②構成ファイル(main.tf)の作成
- ③作業ディレクトリの初期化(terraform init)
- ④実行計画の作成(terraform plan)
- ⑤リソースの作成(terraform apply)
- ⑥リソース作成の確認
①作業ディレクトリの作成
- Terraform実行時に複数のファイルが作成される
- Terraform実行ディレクトリとしてディレクトリを用意する
- 名前はなんでも良い
- 今回は
terraform-s3-example
とした
②構成ファイル(main.tf)の作成
provider "aws" {
region = "ap-northeast-1" # 使用するAWSリージョン
}
resource "aws_s3_bucket" "s3-terraform-test" {
bucket = "【バケット名】" # ユニークなS3バケット名
}
resource "aws_s3_bucket" "s3-terraform-test" {}
について
- リソースの設定を記述する
aws_s3_bucket
- リソースの種類の設定値、今回はS3のため
aws_s3_bucket
- 別のリソースの場合は別の名称になる
s3-terraform-test
- tfファイルでの定義名。任意の値でOK
- プログラムコードで設定する関数名や変数名のイメージ
bucket = "【バケット名】"
- バケット名を設定。この名称でデプロイされる
- 中心となる構成ファイルを「main.tf」とするのは慣例ではあるが、mainの名称ではなくても問題ない
- 〇〇.tfであれば、任意の名前でOK
- Terraformは、ディレクトリ内のすべてのtfファイルを自動的に読み込み、統合して1つの構成として扱うため
③作業ディレクトリの初期化(terraform init)
- main.tfと同じディレクトリ階層でコマンド
terraform init
を実行
- main.tfが無いとエラーになるため、main.tf作成後にコマンドを実行する
- ↑tfファイルが無いとエラーになるという意味です(ファイルの名前は任意です)
Terraform has been successfully initialized!
と表示されたらOK
④実行計画の作成(terraform plan)
- コマンド
terraform plan
の実行
- tfファイルと同じディレクトリ階層で実行
- AWS側にリソースがないため、S3バケットが新しく追加される旨が表示される
- planの段階ではリソースは作成されない
⑤リソースの作成(terraform apply)
- コマンド
terraform apply
- tfファイルと同じディレクトリ階層で実行
- planで提示された変更内容(今回はS3バケットの新規作成)を適用するか聞かれるので
Yes
と入力
⑥リソース作成の確認
- AWSコンソールにアクセスして、S3バケットが設定した名前で作成されていれば成功
コメント