はじめに
Terraform入門しました!Iacかなり便利ですね!そこで今回はTerraformのセットアップを記事にしました。
Terraformのバージョン管理はasdfです。セットアップ後、動作確認としてEC2インスタンスを作成します。
環境
MacBook Pro intel
macOS Monterey バージョン12.6
asdfのインストール
asdfを使用することで、アプリごとにTerraformのバージョンを管理できます。
公式ドキュメントに環境ごとのインストール、設定方法が記載されています。私は「Bash & Homebrew (macOS)」のパターンでインストールしました。
$ asdf version
v0.11.3-0adc6c1
Terraformのインストール
asdfでTerraformをインストールします。
$ asdf plugin add terraform
Terraformのセットアップ
作業ディレクトリに.tool.versionsというファイルを作成します。このファイルに、使用するTerraformのバージョンを記載し、asdf installします。
$ ls -a
. .. .tool-versions
# インストール可能なバージョン
$ asdf list all terraform
~省略~
1.4.5
1.4.6
1.5.0-alpha20230405
1.5.0-alpha20230504
1.5.0-beta1
1.5.0-beta2
1.5.0-rc1
1.5.0-rc2
# 使用するバージョンを記載
$ cat .tool-versions
terraform 1.4.5
# インストール
$ asdf install
# バージョン確認
$ terraform -v
Terraform v1.4.5
on darwin_amd64
プロバイダの設定
Terraformの設定を行なっていきます。プロバイダの設定を記述するtfファイルを作成します。
(プロバイダとはTerraformに対応しているクラウドサービスです。GCP、Azureなど)
$ ls -a
. .. .tool-versions main.tf
設定を記述します。
terraform {
# 使用するTerraformのバージョン
required_version = "1.4.5"
required_providers {
# プロバイダの指定(今回はAWS)
aws = {
source = "hashicorp/aws"
# awsプロバイダのバージョン
version = "~> 4.0"
}
}
}
provider "aws" {
# AWSの認証情報、記述しない場合はdefaultが設定される
profile = "terraform_user"
# 使用するリージョン
region = "ap-northeast-1"
}
AWSプロバイダのバージョン
公式ドキュメントのプルダウンからバージョンを確認できます。
profile
terraformにはAWSの認証情報(AWS CLIの設定)が必須です。
設定は以上です!
動作確認
Terraformの設定が終わったのでEC2インスタンスを立てて動作確認をします。
app.tfを新規に作成し、EC2インスタンスの設定を記述します。(今回はTerraformセットアップがメインの為、記述方法の詳細は省きます。)
resource "aws_instance" "hoge_ec2" {
ami = "ami-07c2a88388bb80eb0"
instance_type = "t2.micro"
tags = {
Name = "HelloWorld"
}
}
# Terraformの初期化
terraform init
# インフラの構築状態を確認
terraform plan
# tfファイルの内容を反映
terraform apply
~省略~
aws_instance.hoge_ec2: Creating...
aws_instance.hoge_ec2: Still creating... [10s elapsed]
aws_instance.hoge_ec2: Still creating... [20s elapsed]
aws_instance.hoge_ec2: Still creating... [30s elapsed]
aws_instance.hoge_ec2: Creation complete after 37s [id=i-0b5232saxdssa98e85rd]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
AWSマネジメントコンソールから東京リージョンでEC2インスタンスが起動していることを確認できました!Terraformの設定に問題はなさそうです!
おわりに
これでインフラを構築する最低限の設定はできたと思います。今後もtfstateファイルの管理方法などTerraformに関する記事を作成予定です。