Image

Motivation

One of the first components I created on AWS cloud was an EC2 instance by watching hands-on tutorials. Little did I know about the infrastructure bits that went behind that. In this repository, I have the terraform code to create two AWS EC2 instances using infrastructure as code approach.
I have supporting documentation on my note at: create-aws-ec2-using-terraform

Prerequisites

I installed terraform before I worked on this repository. Installation information is available in the install guide.
I used the access_key and the secret_key of an IAM user that had permission to create all the resources managed via this terraform code.
I created a terraform.tfvars file to store them.

Usage

Ensure that the IAM user whose credentials are being used in this configuration has permission to create and manage all the resources that are included in this repository.
Review the code, especially the ec2.tf file and update the ingress cidr_blocks to allow access from your local network.
To find your IP address, open command prompt and key in: curl ifconfig.me
The value is your local machine's IP address. If you want to restrict access to only your machine, update teh ingress cidr_blocks with that value and append a /32 to it. Else, you could also go up the range and enable access from a wider set of machines.
Next run terraform init
Then run terraform plan
And finally run terraform apply

Interesting use-cases

If you want to have fun, try the following:
Update the security group and see how it impacts your web access: remove the egress block.
Update the route table and see how it impacts your web access: remove the 0.0.0.0/0 route.