terraform/ecc-aws-196-emr_master_nodes_no_public_ip/green/vpc.tf (249 lines of code) (raw):

resource "aws_vpc" "this" { cidr_block = "10.0.0.0/16" enable_dns_support = true tags = { Name = "196_vpc_green" } } resource "aws_subnet" "private" { vpc_id = aws_vpc.this.id cidr_block = "10.0.1.0/24" availability_zone = "us-east-1a" } resource "aws_subnet" "public" { availability_zone = "us-east-1a" cidr_block = "10.0.2.0/24" vpc_id = aws_vpc.this.id } resource "aws_security_group" "master_security_group" { name = "196_master_security_group_green" vpc_id = aws_vpc.this.id revoke_rules_on_delete = true ingress { from_port = 0 to_port = 0 protocol = "-1" self = true } ingress { from_port = 0 to_port = 65535 protocol = "udp" self = true } ingress { from_port = 0 to_port = 65535 protocol = "tcp" self = true } ingress { from_port = "-1" to_port = "-1" protocol = "icmp" self = true } ingress { from_port = 22 to_port = 22 protocol = "tcp" cidr_blocks = [aws_vpc.this.cidr_block] } egress { from_port = 0 to_port = 0 protocol = "-1" cidr_blocks = ["0.0.0.0/0"] } } resource "aws_security_group_rule" "master_sg_ingress1" { type = "ingress" from_port = 8443 to_port = 8443 protocol = "tcp" security_group_id = aws_security_group.master_security_group.id source_security_group_id = aws_security_group.service_access_security_group.id } resource "aws_security_group_rule" "master_sg_ingress2" { type = "ingress" from_port = 0 to_port = 0 protocol = "-1" security_group_id = aws_security_group.master_security_group.id source_security_group_id = aws_security_group.slave_security_group.id } resource "aws_security_group_rule" "master_sg_ingress3" { type = "ingress" from_port = 0 to_port = 65535 protocol = "tcp" security_group_id = aws_security_group.master_security_group.id source_security_group_id = aws_security_group.slave_security_group.id } resource "aws_security_group_rule" "master_sg_ingress4" { type = "ingress" from_port = "-1" to_port = "-1" protocol = "icmp" security_group_id = aws_security_group.master_security_group.id source_security_group_id = aws_security_group.slave_security_group.id } resource "aws_security_group_rule" "master_sg_ingress5" { type = "ingress" from_port = 0 to_port = 65535 protocol = "udp" security_group_id = aws_security_group.master_security_group.id source_security_group_id = aws_security_group.slave_security_group.id } resource "aws_security_group" "slave_security_group" { name = "196_slave_security_group_green" vpc_id = aws_vpc.this.id revoke_rules_on_delete = true ingress { from_port = 0 to_port = 0 protocol = "-1" self = true } ingress { from_port = 0 to_port = 65535 protocol = "udp" self = true } ingress { from_port = 0 to_port = 65535 protocol = "tcp" self = true } ingress { from_port = "-1" to_port = "-1" protocol = "icmp" self = true } ingress { from_port = 22 to_port = 22 protocol = "tcp" cidr_blocks = [aws_vpc.this.cidr_block] } egress { from_port = 0 to_port = 0 protocol = "-1" cidr_blocks = ["0.0.0.0/0"] } } resource "aws_security_group_rule" "slave_sg_ingress1" { type = "ingress" from_port = 8443 to_port = 8443 protocol = "tcp" security_group_id = aws_security_group.slave_security_group.id source_security_group_id = aws_security_group.service_access_security_group.id } resource "aws_security_group_rule" "slave_sg_ingress2" { type = "ingress" from_port = 0 to_port = 0 protocol = "-1" security_group_id = aws_security_group.slave_security_group.id source_security_group_id = aws_security_group.master_security_group.id } resource "aws_security_group_rule" "slave_sg_ingress3" { type = "ingress" from_port = 0 to_port = 65535 protocol = "tcp" security_group_id = aws_security_group.slave_security_group.id source_security_group_id = aws_security_group.master_security_group.id } resource "aws_security_group_rule" "slave_sg_ingress4" { type = "ingress" from_port = 0 to_port = 65535 protocol = "udp" security_group_id = aws_security_group.slave_security_group.id source_security_group_id = aws_security_group.master_security_group.id } resource "aws_security_group_rule" "slave_sg_ingress5" { type = "ingress" from_port = "-1" to_port = "-1" protocol = "icmp" security_group_id = aws_security_group.slave_security_group.id source_security_group_id = aws_security_group.master_security_group.id } resource "aws_security_group" "service_access_security_group" { name = "196_service_access_security_group_green" vpc_id = aws_vpc.this.id } resource "aws_security_group_rule" "service_access_sg_ingress" { type = "ingress" from_port = 9443 to_port = 9443 protocol = "tcp" security_group_id = aws_security_group.service_access_security_group.id source_security_group_id = aws_security_group.master_security_group.id } resource "aws_security_group_rule" "service_access_sg_egress1" { type = "egress" from_port = 8443 to_port = 8443 protocol = "tcp" security_group_id = aws_security_group.service_access_security_group.id source_security_group_id = aws_security_group.master_security_group.id } resource "aws_security_group_rule" "service_access_sg_egress2" { type = "egress" from_port = 8443 to_port = 8443 protocol = "tcp" security_group_id = aws_security_group.service_access_security_group.id source_security_group_id = aws_security_group.slave_security_group.id } resource "aws_internet_gateway" "this" { vpc_id = aws_vpc.this.id } resource "aws_eip" "this" { domain = "vpc" depends_on = [aws_internet_gateway.this] } resource "aws_nat_gateway" "this" { allocation_id = aws_eip.this.id subnet_id = aws_subnet.public.id depends_on = [aws_eip.this] } resource "aws_route_table" "route_table_internet_gateway" { vpc_id = aws_vpc.this.id route { cidr_block = "0.0.0.0/0" gateway_id = aws_internet_gateway.this.id } depends_on = [ aws_vpc.this, aws_internet_gateway.this ] } resource "aws_route_table_association" "route_table_internet_gateway" { subnet_id = aws_subnet.public.id route_table_id = aws_route_table.route_table_internet_gateway.id } resource "aws_route_table" "route_table_nat_gateway" { vpc_id = aws_vpc.this.id route { cidr_block = "0.0.0.0/0" nat_gateway_id = aws_nat_gateway.this.id } depends_on = [ aws_vpc.this, aws_nat_gateway.this ] } resource "aws_route_table_association" "route_table_nat_gateway" { subnet_id = aws_subnet.private.id route_table_id = aws_route_table.route_table_nat_gateway.id }