Terraform repository for AWS infrastructure deployment (CSYE6225). Uses modular design for reproducibility, scalability, and AWS best practices.
Core components:
- VPC and Networking: Custom VPCs, public/private subnets, routing tables, internet gateways
- Compute Resources: EC2 instances and services
- Security: Security groups, IAM roles, policies
- State Management: AWS S3 remote state, DynamoDB state locking
tf-aws-infra/ ├── modules/ # Reusable Terraform modules │ ├── vpc/ # VPC configurations │ ├── ec2/ # EC2 configurations │ └── security/ # Security configs ├── environments/ # Environment configs │ ├── dev/ │ └── prod/ ├── main.tf # Main configuration ├── variables.tf # Variables ├── outputs.tf # Outputs ├── terraform.tfvars # Variable values └── README.md
- Terraform v1.0+
- Configured AWS CLI
- AWS Account permissions (VPC, EC2, S3, DynamoDB)
- Clone repository:
git clone https://github.com/yourusername/tf-aws-infra.git
cd tf-aws-infra- Initialize Terraform:
bashCopyterraform init- Configure variables in terraform.tfvars:
hclCopyaws_region = "us-east-1"
environment = "dev"To import your third-party SSL certificate (from Namecheap or another vendor) into AWS Certificate Manager (ACM), run:
aws acm import-certificate \
--certificate file://path/to/certificate.pem \
--private-key file://path/to/private-key.pem \
--certificate-chain file://path/to/certificate-chain.pem \
--region <AWS_REGION>Use the returned Certificate ARN in your load balancer configuration.
- Plan and apply:
terraform plan -var-file="terraform.tfvars"
terraform apply -var-file="terraform.tfvars"terraform validate
terraform plan