Giter Club home page Giter Club logo

aws_cloudformation-deploying_highly_available_webapp's Introduction


DEPLOY HIGHLY AVAILABLE WEB APP USING CLOUDFORMATION


Table of Contents
  1. About The Project
  2. Architecture Diagram
  3. Built With
  4. Files and Folder
  5. Getting Started
  6. Demo - Accessing the Website
  7. Contact

About The Project

In this project, I deployed a sample application to to the Apache Web Server running on EC2 instances inside a Private Subnet using the CloudFormation Template ie. Infrastructure as a Code. Some of the properties used in this project are as follows :

Property Value
Number of web servers 4-6
Region us-east-1 ie. North Virginia
Number of Availability Zones Used 2
Subnet 2 Private Subnets
Instance Type t2.micro
AMI Ubuntu18
Disk Space 10GB

(back to top)

Architecture Diagram

Following is the Architecture Diagram of the Infrastructure that was deployed using the CloudFormation Template ๐Ÿ‘‡ Website

(back to top)

Built With

  • AWS
  • HTML

(back to top)

Files and Folders

Name Purpose
/scripts This folder contains the scripts (windows as well as linux) to Create,Update and Delete the Cloudformation stack
network.yml This is the template file for the Network Stack
server.yml This is the template file for the Server Stack
parameters-network.json This file contains the key-value for all the variables that are used in the Network Template
parameters-server.json This file contains the key-value for all the variables values that are used in the Server Template
index.html This is the webpage used in the LaunchConfiguration

(back to top)

Getting Started

Here are the steps needed to successfully finish this project.

Prerequisites

  1. AWS account: You would require to have an AWS account to be able to build cloud infrastructure.
  2. AWS CLI - You need to have AWS CLI installed and profile configured in order to run the AWS commands. You can download the AWS-CLI here
  3. VS code editor: This editor is helpful to visualize image as well as the code. You can download VS Code editor here
  4. An account on LucidChart: In order to draw the Architecture Diagrams, you need to have a user account on Lucid Chart

How to run the scripts?

  1. Create Script
# Ensure that the AWS CLI is configured before running the command below
./create.sh stackName templateFile.yml variableFile.json
  1. Update Script
# Ensure that the AWS CLI is configured before running the command below
./update.sh stackName templateFile.yml variableFile.json
  1. Delete Script
# Ensure that the AWS CLI is configured before running the command below
./delete.sh stackName

Steps

  1. Creating Network Stack.
    Firstly, we create the Network stack using the following command :
# Ensure that the AWS CLI is configured before running the command below
./create.sh networkStack network.yml parameters-network.json

# This should give back the ARN of the created Stack
  1. Creating Server Stack.
    Once network stack is created, we then create the server stack which using some of the resources created in the Network Stack.
# Ensure that the AWS CLI is configured before running the command below
./create.sh serverStack servers.yml parameters-server.json

# This should give back the ARN of the created Stack

(back to top)

Demo-Accessing the Website

  • Once both the stacks are created, we can use the LoadBalancer DNS Name to access the website that is deployed on the EC2 instances in private subnets.
  • To demonstrate the working of LoadBalancer, I have displayed the Private IP of the webserver on the top of the page.
  • We can see that the IP address is changing which shows that the LoadBalancer is distributing the traffic across all the web servers ๐Ÿ‘‡ Demo

(back to top)

Contact

Name: Shubham Kandwal
Email: [email protected]
Project Link: Deploying_Highly_Available_WebApp_Using_CloudFormation

(back to top)

aws_cloudformation-deploying_highly_available_webapp's People

Contributors

shubham0297 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.