This repository contains a Terraform configuration to create a Virtual Private Cloud (VPC) with public and private subnets, EC2 instances, and a security group in AWS.
- VPC: A VPC with CIDR block
10.0.0.0/16
. - Subnets:
- Public Subnet:
10.0.1.0/24
(with public IP assignment). - Private Subnet:
10.0.2.0/24
.
- Public Subnet:
- Internet Gateway: Allows internet access to the VPC.
- Route Tables: Configures routes for the public subnet.
- Security Group: Allows SSH (port 22) to EC2 instances.
- EC2 Instances:
- Public EC2 Instance: In the public subnet with public IP.
- Private EC2 Instances: Two instances in the private subnet without public IP.
- main.tf: Contains the core resources (VPC, Subnets, Instances).
- output.tf: Outputs the IDs and public IPs of the created EC2 instances.
- variables.tf: Defines input variables such as subnet AZs, instance types, and AMI IDs.
public_subnet_az
: Availability zone for the public subnet (default:ap-south-1a
).private_subnet_az
: Availability zone for the private subnet (default:ap-south-1b
).instance_type
: EC2 instance type (default:t2.micro
).public_ami
: AMI ID for the public EC2 instance.private_ami
: AMI ID for the private EC2 instances.
-
Clone the repository:
git clone https://github.com/your-username/terraform-aws-vpc-ec2.git cd terraform-aws-vpc-ec2
-
Initialize Terraform:
terraform init
-
Apply the configuration:
terraform apply
-
View the output:
terraform output
-
destroy the resources:
terraform destroy
This setup provides a basic VPC with public and private subnets, EC2 instances, and a security group in AWS. It serves as a foundation for more advanced cloud architectures.