[A-00144]TerraformでEC2を作成してみる
terraformを使ってaws上にec2インスタンスを作成したいと思います。
awsでterraformを利用できるようにする設定はこちら
・Terraformの作成/実行
provider "aws" {
region = "ap-northeast-1"
}
resource "aws_vpc" "default" {
cidr_block ="10.0.0.0/16"
enable_dns_hostnames = true
}
resource "aws_subnet" "default" {
vpc_id = aws_vpc.default.id
cidr_block = "10.0.1.0/24"
availability_zone = "ap-northeast-1a"
map_public_ip_on_launch = true
}
resource "aws_internet_gateway" "default" {
vpc_id = aws_vpc.default.id
}
resource "aws_route_table" "default" {
vpc_id = aws_vpc.default.id
route {
cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.default.id
}
}
resource "aws_route_table_association" "default" {
subnet_id = aws_subnet.default.id
route_table_id = aws_route_table.default.id
}
resource "aws_security_group" "default" {
name = "test-sg"
vpc_id = aws_vpc.default.id
ingress {
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
resource "aws_instance" "default" {
ami = "ami-09d28faae2e9e7138"
instance_type = "t2.micro"
subnet_id = aws_subnet.default.id
vpc_security_group_ids = [aws_security_group.default.id]
user_data = <<EOF
#!/bin/bash
sudo yum install -y httpd
sudo systemctl start httpd
sudo systemctl enable httpd
EOF
}
上記ファイルを作成した下記のterraformコマンドを実行します。
terraform init
terraform plan
terraform apply
完了後、下記のようにEC2インスタンスが作成されます。

確認が完了したら後片付けをします。
terraform destroy
・Appendix
参考文献はこちら
https://blog.dcs.co.jp/aws/20210401-terraformaws.html
コメントを残す