Skip to content

YU88John/codepipeline-tf-websec

Repository files navigation

Deploying Secure and Robust application on AWS

Caution

This mini project simulates an environment and its architecture might lack some best practices. It is advised against using it for production environments.

Prerequisites

  • 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

Architecture Overview

Architecture

Project Hierarchy

  • /terraform - terraform configuration files
  • /terraform/modules - terraform modules for the infrastructure
  • Application repo link

Technologies

AWS

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

Terraform

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.

Node.js

On the infrastructure that we created, we will deploy a simple 'Hello World' Node.js application. About Node.js.

CloudFlare

For the DNS service, we will be using CloudFlare in conjunction with AWS Route 53. What is CloudFlare?

Documentation

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.