A Terraform configuration that provisions the following infrastructure:
A VPC with:
- Public subnets for external resources.
- Private subnets for internal resources.
EC2 instances:
- Deployed within the private subnets.
- Running a web server that displays the hostname of the instance which received the request.
Requirements:
Autoscaling:
Configure the EC2 instances to scale based on demand using AWS Auto Scaling Groups.
Expose the web application:
Make the web application reachable from the internet while keeping the EC2 instances in the private subnets.
A VPC with:
- Public subnets for external resources.
- Private subnets for internal resources.
EC2 instances:
- Deployed within the private subnets.
- Running a web server that displays the hostname of the instance which received the request.
Requirements:
Autoscaling:
- Configure the EC2 instances to scale based on demand using AWS Auto Scaling Groups.
Expose the web application:
- Make the web application reachable from the internet while keeping the EC2 instances in the private subnets.
Environment
SETUP | ENV |
---|---|
Provider | [AWS] |
Region | [eu-west-1] [eu-west-1a] [eu-west-1b] |
VPC cidr_block | [192.168.0.0/16] |
Public-Subnet | [192.168.0.0/24] |
Private-Subnet | [192.168.1.0/24] |
Route NAT Gateway | [cidr_block = “0.0.0.0/0”] |
Bastion ec2 | [t2.micro] |
Nginx | [t2.micro] |
docker image | [https://hub.docker.com/r/nginxdemos/hello/] |
Security groups | [tcp/22 – http/80] |
CertManager | [NO] |
Route53 | [NO] |
References
Resource | URL |
---|---|
Terraform Autoscaling Module | https://registry.terraform.io/modules/terraform-aws-modules/autoscaling/aws/latest |
Terraform Autoscaling Policy | https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/autoscaling_policy |
Terraform Fargate | https://registry.terraform.io/modules/almirosmanovic/fargate/aws/latest/examples/autoscaling |
Explanation from the Readme.md file on the Git Repository