【AWS】Terraformで初めてのIaC

今回は、「【AWS】Terraformで初めてのIaC」というテーマです。
IaC未経験者がサクッと経験を積めるようになる記事に仕上げました。
ぜひこの記事を読みながら、実際に手を動かしてIaCを体験してみてください!

前提条件

  • AWSアカウントが作成されていること
  • macbookを使用していること
  • この記事は、2024年5月26日に書いています。
  • 本記事に記載のコマンドを実行するにあたって生じた不具合等については、筆者は責任を負いません。

Terraformのインストール

Terraformをマシンにインストール!

brew install terraform

terraform

今回のテストプロジェクトのディレクトリを作成

私はこんな感じで作りました。

# pwd
/Users/masatakashida/workspaces/test-terraform-aws

テストプロジェクトにterraformのファイルを追加

main.tf を新規作成します。

touch main.tf

tree コマンドで確認します。

# tree
.
└── main.tf

1 directory, 1 file

main.tfを書いていきます。

初めてということで、ファイル分割は一切考えずベタ書きで。

Terraform Blockを書く

terraform {
  required_version = ">= 0.14"
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 3.0"
    }
  }
}

Terraform Settings - Configuration Language | Terraform | HashiCorp Developer

Providerを書く

# terraform blockの続き

provider "aws" {
  region = "ap-northeast-1"
}

Terraform Registry

AWSのVPCリソースを書く

# provider clockの続き

resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
}

Terraform Registry

AWSのSubnetリソースを書く

# aws_vpc resource blockの続き

resource "aws_subnet" "private" {
  vpc_id            = aws_vpc.main.id
  cidr_block        = "10.0.1.0/24"
  availability_zone = "ap-northeast-1c"

  tags = {
    Name = "example-private-subnet"
  }
}

Terraform Registry

main.tf が完成しました!
さあ、terraformコマンドを実行してコード通りにAWSのVPCとSubnetリソースが構築される瞬間を見届けましょう!

TerraformでAWSリソースを構築する

terraform initを実行する

初期化します。

terraform init

Command: init | Terraform | HashiCorp Developer

terraform planを実行する

これから構築する変更点をコンソールに出力してくれます。
何が作成され、何が変更され、何が削除されるのかがわかります。

terrraform plan

Command: plan | Terraform | HashiCorp Developer

terraform applyを実行する

このコマンドを実行すると、先ほど terraform plan を実行した時に出力された変更点が実際に適用されます。

terraform apply

Command: apply | Terraform | HashiCorp Developer

terraform apply が正常終了しましたか?
AWS Consoleを見にいきましょう!
VPCとSubnetリソースが作成されているはずです。

つまずいたら、コメントで教えてください!

これであなたもIaC経験者です!
おつかれさまでした!