TerraformでVPCを作成・削除してみた

  •  
 
MAXIMUM が に投稿

タグ

Terraformを使ってAWSのVPCとサブネットを作成し、削除まで一連の流れを試してみましたので、やり方を後から追えるように記事として残します。

0. 前提

今回の操作では、AWSとTerraformを使用します。 環境設定方法は前回記事を参照してください。

1. Terraformの設定ファイルを作成

main.tfには、AWS ProviderとVPC、サブネットを定義しました。

terraform {
  # 使用するProviderを設定
  required_providers {
    aws = {
      # AWS Providerを使用
      source = "hashicorp/aws"
      # AWS Providerのバージョンを指定
      version = "~> 6.0"
    }
  }
}
provider "aws" {
  # 東京リージョンを使用
  region = "ap-northeast-1"
}
resource "aws_vpc" "study" {
  # VPCで使用するIPアドレスの範囲
  cidr_block = "10.0.0.0/16"
  tags = {
    Name = "terraform-study-vpc"
  }
}
resource "aws_subnet" "study" {
  # 作成したVPCにサブネットを関連付け
  vpc_id = aws_vpc.study.id
  # サブネットで使用するIPアドレスの範囲
  cidr_block = "10.0.1.0/24"
  # 東京リージョンのAZを指定
  availability_zone = "ap-northeast-1a"
  tags = {
    Name = "terraform-study-subnet"
  }
}

今回は下記構成になります。

VPC
└─ サブネット

VPCはAWS上に作成する仮想ネットワークで、サブネットはVPC内のネットワークを分割したものです。
次回作成するEC2は、このサブネット内に配置します。

2. VPCとサブネットを作成

最初にTerraformを初期化します。

terraform init

続いて、作成されるリソースを確認します。

terraform plan

今回は下記結果になりました。

Plan: 2 to add, 0 to change, 0 to destroy.

それぞれ、追加するリソースが2個、変更するリソースが0個、削除するリソースが0個という意味です。
今回はVPCとサブネットを新しく作成するため、2 to addとなっています。
問題がなかったため、AWSへ反映します。

terraform apply

確認画面でyesを入力すると、VPCとサブネットが作成されました。

Apply complete! Resources: 2 added, 0 changed, 0 destroyed.

AWSコンソールからも、作成されたVPCを確認できました。

サブネットも作成され、VPCにterraform-study-vpcが設定されていることを確認できました。

3. VPCとサブネットを削除

最後に、今回作成したリソースを削除します。

terraform destroy

確認画面でyesを入力すると削除されました。

Destroy complete! Resources: 2 destroyed.

これは、Terraformで管理しているリソースが2個削除されたことを表しています。
AWSコンソールからも、VPCとサブネットが削除されていることを確認できました。

4. まとめ

今回はTerraformを使って、VPCとサブネットの作成、削除までを試してみました。
基本的な流れは下記になります。

terraform init(前準備)
↓
terraform plan(確認)
↓
terraform apply(実行)
↓
terraform destroy(削除)

また、サブネットでは下記のようにVPCを参照しています。※main.tf

vpc_id = aws_vpc.study.id

このようにTerraformでは、作成したリソース同士を関連付けて管理できます。
次回は、今回作成したVPCとサブネットを利用してEC2の構築を試してみたいと思います。

コメントを追加

プレーンテキスト

  • HTMLタグは利用できません。
  • 行と段落は自動的に折り返されます。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。
CAPTCHA
この質問はあなたが人間の訪問者であるかどうかをテストし、自動化されたスパム送信を防ぐためのものです。
画像
VPC
サブネット