0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Terraformのセットアップ

Last updated at Posted at 2023-06-07

はじめに

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

設定を記述します。

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プロバイダのバージョン
公式ドキュメントのプルダウンからバージョンを確認できます。

スクリーンショット 2023-06-07 18.54.15.png

profile
terraformにはAWSの認証情報(AWS CLIの設定)が必須です。

設定は以上です!

動作確認

Terraformの設定が終わったのでEC2インスタンスを立てて動作確認をします。
app.tfを新規に作成し、EC2インスタンスの設定を記述します。(今回はTerraformセットアップがメインの為、記述方法の詳細は省きます。)

app.tf
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に関する記事を作成予定です。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?