diff options
Diffstat (limited to 'playground/ec2-instance-test/network.tf')
| -rw-r--r-- | playground/ec2-instance-test/network.tf | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/playground/ec2-instance-test/network.tf b/playground/ec2-instance-test/network.tf new file mode 100644 index 0000000..94cd9d9 --- /dev/null +++ b/playground/ec2-instance-test/network.tf @@ -0,0 +1,114 @@ +resource "aws_vpc" "my_vpc" { + cidr_block = "10.0.0.0/16" # Specify your CIDR block + enable_dns_support = true + enable_dns_hostnames = true + + tags = { + Name = "${var.environment}-my-vpc" + } +} + +resource "aws_internet_gateway" "my_igw" { + vpc_id = aws_vpc.my_vpc.id + + tags = { + Name = "${var.environment}-my-igw" + } +} + +resource "aws_subnet" "my_public_subnet" { + vpc_id = aws_vpc.my_vpc.id # Referencing the VPC + cidr_block = "10.0.1.0/24" # Specify your CIDR block for the subnet + availability_zone = "eu-central-1a" # Change to your desired AZ + map_public_ip_on_launch = true + + tags = { + Name = "${var.environment}-my-subnet" + } +} + +resource "aws_route_table" "my_route_table" { + vpc_id = aws_vpc.my_vpc.id + + route { + cidr_block = "0.0.0.0/0" + gateway_id = aws_internet_gateway.my_igw.id + } + + tags = { + Name = "${var.environment}-my-route-table" + } +} + +resource "aws_route_table_association" "a" { + subnet_id = aws_subnet.my_public_subnet.id + route_table_id = aws_route_table.my_route_table.id +} + +resource "aws_security_group" "allow_ssh" { + name = "allow_ssh" + description = "Allow SSH inbound traffic" + vpc_id = aws_vpc.my_vpc.id + + ingress { + from_port = 22 + to_port = 22 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + tags = { + Name = "${var.environment}-allow-ssh" + } +} + +resource "aws_security_group" "allow_http" { + name = "allow_http" + description = "Allow HTTP inbound traffic" + vpc_id = aws_vpc.my_vpc.id + + ingress { + from_port = 80 + to_port = 80 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + tags = { + Name = "${var.environment}-allow_http" + } +} + +resource "aws_security_group" "allow_https" { + name = "allow_https" + description = "Allow HTTPS inbound traffic" + vpc_id = aws_vpc.my_vpc.id + + ingress { + from_port = 443 + to_port = 443 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + tags = { + Name = "${var.environment}-allow-https" + } +} + +resource "aws_security_group" "allow_outbound" { + name = "allow_outbound" + description = "Allow outbound traffic" + vpc_id = aws_vpc.my_vpc.id + + egress { + from_port = 0 + to_port = 0 + protocol = "-1" # -1 means all protocols + cidr_blocks = ["0.0.0.0/0"] # Allows outbound traffic to all IP addresses + } + + tags = { + Name = "${var.environment}-allow-outnound" + } +} |
