AWS EC2 Terraform Configuration

Job ID: 38007500

Budget: $30 – $250 USD

I need a Terraform configuration to provision my EC2 resources on AWS.
This configuration should allow me to deploy the EC2 instances and also bring-down when needed.

Key Requirements:
An EC2 t2.medium instance with Security group, Keypair, VPC components, CloudWatch logs and WAF integration.
The EC2 will be launched in Private Subnet, with ALB and no direct traffic allowed to the instance.
A Bastion/jump server for SSH to EC2.
EC2 connects to the internet using NAT-gateway.
WAF to be integrated with ALB, and ALB only listens on HTTPS.
Security groups are restricted with limited access.
Allocate and associate an elastic IP to the instance.
The EC2 instance will run Ubuntu and serve as application server.
I can provide AMI image of the web-app. It is a Python FastAPI/Nginx app.
No other service is needed like RDS or S3 etc.
Docker or Kubernetes are not needed, and the app is not using any Databases.
It is a Single Region Deployment.
Related categories: System Admin Amazon Web Services Ubuntu Terraform