Caution
This mini project simulates an environment and its architecture might lack some best practices. It is advised against using it for production environments.
- AWS account (Create one)
- Valid domain
- Terraform cli setup with admin privileges (tf setup)
- AWS cli in us-east-1 with admin privileges (aws setup)
- Fundamental knowledge of IaC, Git, DNS, and AWS
/terraform
- terraform configuration files/terraform/modules
- terraform modules for the infrastructure- Application repo link
AWS (also known as Amazon Web Services) is the largest Cloud Service Provider in the market. It offers a wide range of services including Data Analytics, Machine learning, and so on. Read more about AWS on their website
We will be provisioning the majority of our infrastructure using Terraform. Terraform is an Infrastructure-as-Code tool that we can use to deploy our infrastructure in a repeatable and version-controlled way. There is an AWS-native IaC tool called CloudFormation, but we will be using Terraform in this project due to its agnosticity across multiple CSPs. Refer to the Terraform documentation.
On the infrastructure that we created, we will deploy a simple 'Hello World' Node.js application. About Node.js.
For the DNS service, we will be using CloudFlare in conjunction with AWS Route 53. What is CloudFlare?
I have written a Medium article about this project. You can read the article here and make sure to give claps if you find it useful.