init
This commit is contained in:
249
terraform/tf-datasaker/dmz.tf
Normal file
249
terraform/tf-datasaker/dmz.tf
Normal file
@@ -0,0 +1,249 @@
|
||||
|
||||
output "sbn_dmz_a_id" {
|
||||
value = aws_subnet.sbn-dmz-a.id
|
||||
}
|
||||
|
||||
output "sbn_dmz_b_id" {
|
||||
value = aws_subnet.sbn-dmz-b.id
|
||||
}
|
||||
|
||||
output "sbn_dmz_c_id" {
|
||||
value = aws_subnet.sbn-dmz-c.id
|
||||
}
|
||||
|
||||
|
||||
|
||||
resource "aws_subnet" "sbn-dmz-a" {
|
||||
availability_zone = "ap-northeast-2a"
|
||||
cidr_block = "172.21.0.0/28"
|
||||
enable_resource_name_dns_a_record_on_launch = true
|
||||
private_dns_hostname_type_on_launch = "resource-name"
|
||||
tags = {
|
||||
"Name" = "sbn-dmz-a.datasaker"
|
||||
"SubnetType" = "Public"
|
||||
"kubernetes.io/cluster/datasaker" = "owned"
|
||||
"kubernetes.io/role/elb" = "1"
|
||||
"kubernetes.io/role/internal-elb" = "1"
|
||||
}
|
||||
vpc_id = aws_vpc.vpc-datasaker.id
|
||||
}
|
||||
|
||||
resource "aws_subnet" "sbn-dmz-b" {
|
||||
availability_zone = "ap-northeast-2b"
|
||||
cidr_block = "172.21.0.16/28"
|
||||
enable_resource_name_dns_a_record_on_launch = true
|
||||
private_dns_hostname_type_on_launch = "resource-name"
|
||||
tags = {
|
||||
"Name" = "sbn-dmz-b.datasaker"
|
||||
"SubnetType" = "Public"
|
||||
"kubernetes.io/cluster/datasaker" = "owned"
|
||||
"kubernetes.io/role/elb" = "1"
|
||||
"kubernetes.io/role/internal-elb" = "1"
|
||||
}
|
||||
vpc_id = aws_vpc.vpc-datasaker.id
|
||||
}
|
||||
|
||||
resource "aws_subnet" "sbn-dmz-c" {
|
||||
availability_zone = "ap-northeast-2c"
|
||||
cidr_block = "172.21.0.32/28"
|
||||
enable_resource_name_dns_a_record_on_launch = true
|
||||
private_dns_hostname_type_on_launch = "resource-name"
|
||||
tags = {
|
||||
"Name" = "sbn-dmz-c.datasaker"
|
||||
"SubnetType" = "Public"
|
||||
"kubernetes.io/cluster/datasaker" = "owned"
|
||||
"kubernetes.io/role/elb" = "1"
|
||||
"kubernetes.io/role/internal-elb" = "1"
|
||||
}
|
||||
vpc_id = aws_vpc.vpc-datasaker.id
|
||||
}
|
||||
|
||||
|
||||
|
||||
resource "aws_route_table_association" "rta-dmz-a" {
|
||||
route_table_id = aws_route_table.rt-datasaker-pub.id
|
||||
subnet_id = aws_subnet.sbn-dmz-a.id
|
||||
}
|
||||
|
||||
resource "aws_route_table_association" "rta-dmz-b" {
|
||||
route_table_id = aws_route_table.rt-datasaker-pub.id
|
||||
subnet_id = aws_subnet.sbn-dmz-b.id
|
||||
}
|
||||
|
||||
resource "aws_route_table_association" "rta-dmz-c" {
|
||||
route_table_id = aws_route_table.rt-datasaker-pub.id
|
||||
subnet_id = aws_subnet.sbn-dmz-c.id
|
||||
}
|
||||
|
||||
|
||||
|
||||
resource "aws_security_group" "sg-dmz-datasaker" {
|
||||
description = "Security group dmz-datasaker"
|
||||
name = "secg-dmz-datasaker"
|
||||
tags = {
|
||||
"Name" = "sg-dmz-datasaker"
|
||||
}
|
||||
vpc_id = aws_vpc.vpc-datasaker.id
|
||||
}
|
||||
|
||||
# resource "aws_security_group_rule" "sgr-from-0-0-0-0--0-ingress-tcp-22to22-dmz-datasaker-io" {
|
||||
# cidr_blocks = ["0.0.0.0/0"]
|
||||
# from_port = 22
|
||||
# protocol = "tcp"
|
||||
# security_group_id = aws_security_group.sg-dmz-datasaker.id
|
||||
# to_port = 22
|
||||
# type = "ingress"
|
||||
# }
|
||||
|
||||
resource "aws_security_group_rule" "sgr-from-115-178-73-2--32-ingress-tcp-22to22-dmz-datasaker-io" {
|
||||
cidr_blocks = ["115.178.73.2/32"]
|
||||
from_port = 22
|
||||
protocol = "tcp"
|
||||
security_group_id = aws_security_group.sg-dmz-datasaker.id
|
||||
to_port = 22
|
||||
type = "ingress"
|
||||
}
|
||||
|
||||
resource "aws_security_group_rule" "sgr-from-115-178-73-91--32-ingress-tcp-22to22-dmz-datasaker-io" {
|
||||
cidr_blocks = ["115.178.73.91/32"]
|
||||
from_port = 22
|
||||
protocol = "tcp"
|
||||
security_group_id = aws_security_group.sg-dmz-datasaker.id
|
||||
to_port = 22
|
||||
type = "ingress"
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
# resource "aws_security_group_rule" "sgr-from-0-0-0-0--0-ingress-icmp-dmz-datasaker-io" {
|
||||
# cidr_blocks = ["0.0.0.0/0"]
|
||||
# from_port = 8
|
||||
# protocol = "icmp"
|
||||
# security_group_id = aws_security_group.sg-dmz-datasaker.id
|
||||
# to_port = 8
|
||||
# type = "ingress"
|
||||
# }
|
||||
|
||||
# resource "aws_security_group_rule" "sgr-to-0-0-0-0--0-egress-icmp-dmz-datasaker-io" {
|
||||
# cidr_blocks = ["0.0.0.0/0"]
|
||||
# from_port = 8
|
||||
# protocol = "icmp"
|
||||
# security_group_id = aws_security_group.sg-dmz-datasaker.id
|
||||
# to_port = 8
|
||||
# type = "egress"
|
||||
# }
|
||||
|
||||
resource "aws_security_group_rule" "sgr-from-0-0-0-0--0-engress-tcp-all-dmz-datasaker-io" {
|
||||
cidr_blocks = ["0.0.0.0/0"]
|
||||
from_port = 0
|
||||
protocol = "tcp"
|
||||
security_group_id = aws_security_group.sg-dmz-datasaker.id
|
||||
to_port = 65535
|
||||
type = "egress"
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
resource "aws_launch_template" "lt-dmz-bastion-datasaker" {
|
||||
block_device_mappings {
|
||||
device_name = "/dev/xvda"
|
||||
ebs {
|
||||
delete_on_termination = true
|
||||
encrypted = true
|
||||
iops = 3000
|
||||
throughput = 125
|
||||
volume_size = 20
|
||||
volume_type = "gp3"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
image_id = "ami-0ea5eb4b05645aa8a"
|
||||
instance_type = "t3.small"
|
||||
key_name = aws_key_pair.kp-bastion-datasaker.id
|
||||
lifecycle {
|
||||
create_before_destroy = true
|
||||
}
|
||||
metadata_options {
|
||||
http_endpoint = "enabled"
|
||||
http_protocol_ipv6 = "disabled"
|
||||
http_put_response_hop_limit = 3
|
||||
http_tokens = "required"
|
||||
}
|
||||
monitoring {
|
||||
enabled = false
|
||||
}
|
||||
name = "lt-dmz-bastion-datasaker"
|
||||
network_interfaces {
|
||||
associate_public_ip_address = true
|
||||
delete_on_termination = true
|
||||
ipv6_address_count = 0
|
||||
security_groups = [aws_security_group.sg-dmz-datasaker.id]
|
||||
}
|
||||
# tag_specifications {
|
||||
# resource_type = "instance"
|
||||
# tags = {
|
||||
# "Name" = "lt-dmz-bastion-datasaker"
|
||||
# }
|
||||
# }
|
||||
# tag_specifications {
|
||||
# resource_type = "volume"
|
||||
# tags = {
|
||||
# "Name" = "master-ap-northeast-2b.masters.ap-northeast-2.dev.datasaker.io"
|
||||
# }
|
||||
# }
|
||||
tags = {
|
||||
"Name" = "lt-dmz-bastion-datasaker"
|
||||
}
|
||||
# user_data = filebase64("${path.module}/data/aws_launch_template_master-ap-northeast-2b.masters.ap-northeast-2.dev.datasaker.io_user_data")
|
||||
}
|
||||
|
||||
resource "aws_autoscaling_group" "ag-dmz-bastion-datasaker" {
|
||||
enabled_metrics = ["GroupDesiredCapacity", "GroupInServiceInstances", "GroupMaxSize", "GroupMinSize", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
|
||||
launch_template {
|
||||
id = aws_launch_template.lt-dmz-bastion-datasaker.id
|
||||
version = aws_launch_template.lt-dmz-bastion-datasaker.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
name = "ag-dmz-bastion-datasaker"
|
||||
protect_from_scale_in = false
|
||||
|
||||
tag {
|
||||
key = "Name"
|
||||
propagate_at_launch = true
|
||||
value = "ag-dmz-bastion-datasaker"
|
||||
}
|
||||
vpc_zone_identifier = [aws_subnet.sbn-dmz-a.id,aws_subnet.sbn-dmz-b.id]
|
||||
}
|
||||
|
||||
|
||||
|
||||
resource "aws_eip" "eip-natgw-datasaker" {
|
||||
# instance = aws_instance.web1-ec2.id
|
||||
vpc = true
|
||||
|
||||
tags = {
|
||||
Name = "eip-natgw-datasaker"
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_nat_gateway" "natgw-datasaker" {
|
||||
allocation_id = aws_eip.eip-natgw-datasaker.id
|
||||
subnet_id = aws_subnet.sbn-dmz-a.id
|
||||
|
||||
tags = {
|
||||
Name = "natgw-datasaker"
|
||||
}
|
||||
|
||||
# To ensure proper ordering, it is recommended to add an explicit dependency
|
||||
# on the Internet Gateway for the VPC.
|
||||
depends_on = [aws_internet_gateway.igw-datasaker]
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user