resource "aws_vpc" "vpc-dev" {
cidr_block = "10.0.0.0/16"
tags = {
"Name" = "vpc-dev"
}
}resource "aws_subnet" "vpc-dev-public-subnet-1" {
vpc_id = aws_vpc.vpc-dev.id
cidr_block = "10.0.1.0/24"
availability_zone = "us-east-1a"
map_public_ip_on_launch = true
}resource "aws_internet_gateway" "vpc-dev-igw" {
vpc_id = aws_vpc.vpc-dev.id
}resource "aws_route_table" "vpc-dev-public-route-table" { vpc_id = aws_vpc.vpc-dev.id }
resource "aws_route" "vpc-dev-public-route" { route_table_id = aws_route_table.vpc-dev-public-route-table.id destination_cidr_block = "0.0.0.0/0" gateway_id = aws_internet_gateway.vpc-dev-igw.id }
resource "aws_route_table_association" "vpc-dev-public-route-table-associate" { route_table_id = aws_route_table.vpc-dev-public-route-table.id subnet_id = aws_subnet.vpc-dev-public-subnet-1.id }
resource "aws_security_group" "dev-vpc-sg" { name = "dev-vpc-default-sg" description = "Dev VPC Default Security Group" vpc_id = aws_vpc.vpc-dev.id
ingress { description = "Allow Port 22" from_port = 22 to_port = 22 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] }
ingress { description = "Allow Port 80" from_port = 80 to_port = 80 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] }
egress { description = "Allow all IP and Ports Outbound" from_port = 0 to_port = 0 protocol = "-1" cidr_blocks = ["0.0.0.0/0"] } }
resource "aws_instance" "my-ec2-vm" { ami = "ami-047a51fa27710816e" ## Amazon Linux instance_type = "t2.micro" key_name = "terraform-key" subnet_id = aws_subnet.vpc-dev-public-subnet-1.id vpc_security_group_ids = [aws_security_group.dev-vpc-sg.id] ##user_data = file("apache-install.sh") user_data = <<-EOF ##!/bin/bash sudo yum update -y sudo yum install httpd -y sudo systemctl enable httpd sudo systemctl start httpd echo "
" > /var/www/html/index.html EOF tags = { "Name" = "myec2vm" }}
resource "aws_eip" "my-eip" { instance = aws_instance.my-ec2-vm.id vpc = true
depends_on = [aws_internet_gateway.vpc-dev-igw] }