More Related Content
Similar to AWSをテラフォーミングする会(Terraformハンズオン) (20)
AWSをテラフォーミングする会(Terraformハンズオン)
- 40. Subnet
subnet.tf
resource "aws_subnet" "terraform_handson_public_subnet_a" {
vpc_id = "${aws_vpc.terraform_handson_vpc.id}"
availability_zone = "ap-northeast-1a"
cidr_block = "10.100.1.0/24"
tags {
Name = "terraform_handson_subnet_a"
}
}
resource "aws_subnet" "terraform_handson_public_subnet_c" {
vpc_id = "${aws_vpc.terraform_handson_vpc.id}"
availability_zone = "ap-northeast-1c"
cidr_block = "10.100.2.0/24"
tags {
Name = "terraform_handson_subnet_c"
}
}
- 41. RouteTable
routetable.tf
resource "aws_route_table" "terraform_handson_public_rt" {
vpc_id = "${aws_vpc.terraform_handson_vpc.id}"
route {
cidr_block = "0.0.0.0/0"
gateway_id = "${aws_internet_gateway.terraform_handson_igw.id}"
}
tags {
Name = "terraform_handson_public_rt"
}
}
resource "aws_route_table_association" "terraform_handson_public_rtassoc_a" {
subnet_id = "${aws_subnet.terraform_handson_public_subnet_a.id}"
route_table_id = "${aws_route_table.terraform_handson_public_rt.id}"
}
resource "aws_route_table_association" "terraform_handson_public_rtassoc_c" {
subnet_id = "${aws_subnet.terraform_handson_public_subnet_c.id}"
route_table_id = "${aws_route_table.terraform_handson_public_rt.id}"
}
- 44. SecurityGroup
security_group.tf
resource "aws_security_group" "terrafom_handson_instance_sg" {
name = "terraform_handson_instance_sg"
description = "TerraformHandson: instance"
vpc_id = "${aws_vpc.terraform_handson_vpc.id}"
ingress {
protocol = "tcp"
from_port = 22
to_port = 22
cidr_blocks = ["0.0.0.0/0"]
}
ingress {
protocol = "tcp"
from_port = 80
to_port = 80
cidr_blocks = ["0.0.0.0/0"]
}
egress {
protocol = "-1"
from_port = 0
to_port = 0
cidr_blocks = ["0.0.0.0/0"]
}
tags {
Name = "terraform_handson_instance_sg"
}
}
- 45. resource "aws_security_group" "terraform_handson_elb_sg" {
name = "terraform_handson_elb_sg"
description = "TerraformHandson: elb"
vpc_id = "${aws_vpc.terraform_handson_vpc.id}"
ingress {
protocol = "tcp"
from_port = 80
to_port = 80
cidr_blocks = ["0.0.0.0/0"]
}
egress {
protocol = "-1"
from_port = 0
to_port = 0
cidr_blocks = ["0.0.0.0/0"]
}
tags {
Name = "terraform_handson_elb_sg"
}
}
- 46. EC2
ec2.tf
resource "aws_instance" "terraform_handson_instance_a" {
ami = "ami-374db956"
instance_type = "t2.micro"
key_name = "terraform"
vpc_security_group_ids = ["${aws_security_group.terrafom_handson_instance_sg.id}"]
subnet_id = "${aws_subnet.terraform_handson_public_subnet_a.id}"
associate_public_ip_address = true
root_block_device {
volume_type = "gp2"
volume_size = 8
}
tags {
Name = "terraform_handson_instance_a"
}
user_data = <<EOF
#!/bin/bash
yum install nginx -y
uname -n > /usr/share/nginx/html/index.html
service nginx start
EOF
}
- 47. resource "aws_instance" "terraform_handson_instance_c" {
ami = "ami-374db956"
instance_type = "t2.micro"
key_name = "terraform"
vpc_security_group_ids = ["${aws_security_group.terrafom_handson_instance_sg.id}"]
subnet_id = "${aws_subnet.terraform_handson_public_subnet_c.id}"
associate_public_ip_address = true
root_block_device {
volume_type = "gp2"
volume_size = 8
}
tags {
Name = "terraform_handson_instance_c"
}
user_data = <<EOF
#!/bin/bash
yum install nginx -y
uname -n > /usr/share/nginx/html/index.html
service nginx start
EOF
}
- 48. ELB
elb.tf
resource "aws_elb" "terraform_handson_elb" {
name = "terraform-handson-elb"
subnets = [
"${aws_subnet.terraform_handson_public_subnet_a.id}",
"${aws_subnet.terraform_handson_public_subnet_c.id}"
]
security_groups = ["${aws_security_group.terraform_handson_elb_sg.id}"]
listener {
instance_port = 80
instance_protocol = "http"
lb_port = 80
lb_protocol = "http"
}
health_check {
healthy_threshold = 3
unhealthy_threshold = 3
timeout = 10
target = "HTTP:80/"
interval = 30
}
instances = [
"${aws_instance.terraform_handson_instance_a.id}",
"${aws_instance.terraform_handson_instance_c.id}"
]
cross_zone_load_balancing = true
idle_timeout = 60
connection_draining = true
connection_draining_timeout = 300
tags {
Name = "terraform_handson_elb"
}
}