😺
Cloud9環境でTerraformを使用してAWSリソース(VPC, サブネット, EC2)をデプロイ
Cloud9環境でTerraformを使用してAWSリソースをデプロイ
VPC, サブネット, EC2をTerraformを使用して作成する
Terraformと依存ツールのセットアップ
Cloud9環境上で以下のコマンドを実行し、必要なツールをインストールする。
Cloud9の環境はAmazon Linux2
環境設定
-
AWS CLIとGitのバージョンを確認する
aws --version git --version
-
tfenv(Terraformバージョン管理ツール)をインストールする
git clone https://github.com/tfutils/tfenv.git ~/.tfenv sudo ln -s ~/.tfenv/bin/* /usr/local/bin
-
tfenvのバージョンを確認する
tfenv -v
-
利用可能なTerraformバージョンをリスト表示する
tfenv list-remote
-
Terraform 1.5.7をインストールする
tfenv install 1.5.7
-
インストールされたTerraformバージョンをリスト表示する
tfenv list
-
使用するTerraformバージョンを1.5.7に設定する
tfenv use 1.5.7
-
使用するTerraformバージョンを確認する
terraform -v
-
新しいフォルダを作成して移動します。
mkdir test-terraform && cd test-terraform
Terraformコードの作成
次に、Terraformの設定ファイル(main.tf)を作成する。
cat << 'EOF' > main.tf
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.51.0"
}
}
}
provider aws {
region = "ap-northeast-1"
}
resource "aws_vpc" "my_vpc" {
cidr_block = "10.0.0.0/16"
enable_dns_support = true
enable_dns_hostnames = true
tags = {
"Name" = "my_vpc"
}
}
resource "aws_subnet" "my_public_subnet" {
cidr_block = "10.0.1.0/24"
vpc_id = aws_vpc.my_vpc.id
map_public_ip_on_launch = true
availability_zone = "ap-northeast-1a"
tags = {
"Name" = "my_public_subnet"
}
}
resource aws_instance ec2 {
ami = "ami-0bba69335379e17f8"
instance_type = "t2.micro"
subnet_id = aws_subnet.my_public_subnet.id
tags = {
Name = "tf-test"
}
}
EOF
リソースのデプロイと削除
以下のコマンドでTerraformの初期化、プラン作成、適用(デプロイ)、削除を行う。
-
Terraform初期化
terraform init #または terraform init -reconfigure
-
プランの作成と確認
terraform plan
-
インスタンスのデプロイ
terraform apply
実行確認で
yes
を入力する # Enter a value: yesVPCとサブネットとEC2が実際に作成されているか、マネジメントコンソールなどで確認する。
-
リソースの削除
terraform destroy
Discussion