Terraformを使ってEC2インスタンスを立ち上げる方法|初めてのTerraform

初めてTerraformを使ったのでメモを残しておきます。

前提

  • mac
  • homebrew インストール済み
  • AWS CLIのインストール+設定が終わっている

AWS CLIは以下を実行してバージョンが表示されればOK

aws --version

開始

terraformをインストール

brew install terraform
terraform --version

tfenvをインストール

tfenvはterraformのバージョンを管理するためのツールです。

brew install tfenv

ここで発生したエラー

何やらエラーを吐かれました

Error: Cannot install tfenv because conflicting formulae are installed.
terraform: because tfenv symlinks terraform binaries

Please brew unlink terraform before continuing.

原因

tfenvはTerraformのバージョン管理ツールであり、インストールするとシンボリックリンクを使ってterraformコマンドを提供します。

しかし、既にterraformがHomebrewでインストールされているため、シンボリックリンクが競合しているようです。

解決方法

brew unlink terraform

再度以下を実行

brew install tfenv

僕の場合はこれで解決しました!

terraformのファイルを作成

好きなフォルダ内にtest.tfを作成し以下を記入

#Amazon Linux2のAMIベースにt2.microのEC2を作成
resource "aws_instance" "test" {
    ami = "ami-04ef3193cda2ac9d4" #Amazon Linux 2023 AMI
    instance_type = "t2.micro"
}

コマンドラインでtest.tfを作成したフォルダまで移動し以下を実行

terraform init

発生したエラー

またまたエラーを吐かれました

cat: /opt/homebrew/Cellar/tfenv/3.0.0/version: No such file or directory
Version could not be resolved (set by /opt/homebrew/Cellar/tfenv/3.0.0/version or tfenv use )

原因

terraformのバージョンを指定しないといけなかったっぽい

解決策

以下を実行して最新バージョンを指定します

tfenv use 1.9.7

再度以下を実行

terraform init

僕の場合はこれで解決しました

EC2インスタンスを立ち上げる

そして以下を実行

terraform plan
terraform apply

EC2インスタンスができていれば成功!

EC2インスタンス名を追加

ec2インスタンス名を追加するためにtagsを追加

#Amazon Linux2のAMIベースにt2.microのEC2を作成
resource "aws_instance" "test" {
    ami = "ami-04ef3193cda2ac9d4" #Amazon Linux 2023 AMI
    instance_type = "t2.micro"

    tags = {
        Name: "test created by terraform"
    }
}

再度以下を実行

terraform apply

マネジメントコンソールでEC2インスタンスを確認して名前が追加されて入れば成功です!

コメント

タイトルとURLをコピーしました