Skip to content

gitanushka/ResilientWeb-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 

Repository files navigation

ResilientWeb+

ResilientWeb+ is a robust web application deployed on Amazon Web Services (AWS) with a primary focus on achieving high availability, scalability, fault tolerance, security, and cost optimization. This project aims to ensure that the web application remains accessible and operational even in the face of hardware failures, network issues, or other potential disruptions.

Features

  • High Availability High availability is the cornerstone of ResilientWeb+. We have designed our infrastructure to minimize downtime, ensuring that your application is accessible to users around the clock. Our high availability strategies include the use of Amazon EC2, Amazon RDS, Elastic Load Balancing (ELB), Amazon S3, and Amazon CloudFront.
  • Scalability The ability to scale resources up or down to meet changing demands is crucial for any modern web application. ResilientWeb+ employs scalable AWS services and auto-scaling configurations to handle varying levels of traffic efficiently. Our architecture ensures that your application can seamlessly handle increased workloads.
  • Fault Tolerance and Disaster Recovery In the unpredictable world of technology, failures can occur. ResilientWeb+ incorporates fault tolerance mechanisms to withstand potential disruptions. We employ redundancy and failover strategies using Amazon RDS, ELB, and Amazon S3 to ensure that your application remains resilient even in the face of hardware or software failures.
  • Cost Optimization Optimizing costs while maintaining a high-quality service is a constant concern for businesses. ResilientWeb+ is designed with cost-efficient principles in mind. We leverage services like Amazon S3 and Amazon CloudFront to reduce data transfer costs and utilize AWS cost optimization tools to monitor and manage expenses effectively.

Architecture Diagram

Architecture_ResilientWeb+

Prerequisites

Before getting started, you'll need the following:

An AWS account
Basic knowledge of AWS services
Access to AWS Management Console

Architecture Overview

The ResilientWeb+ architecture leverages various AWS services to ensure high availability and fault tolerance. Here's a brief overview:

Amazon EC2: Provides scalable compute resources for hosting web servers.
Amazon RDS: Offers managed relational database services for storing application data.
Elastic Load Balancing (ELB): Distributes incoming traffic across multiple EC2 instances for high availability.
Amazon S3: Secure and scalable object storage for hosting static assets.
Amazon CloudFront: Content delivery network for faster delivery of web content.
Virtual Private Cloud (VPC): Creates isolated network environments for enhanced security.

Connection and Installation commands:

After connection successes in ec2, run the following command to install Apache and MySQL on your instance:
sudo yum install -y
httpd sudo yum install -y mysql

// Set the environment variable of MySQL in your computer, replace to the endpoint which can be found in RDS
export MYSQL_HOST = <your_endpoint>
• mysql –user = <your_userame> --password = <your_password> wordpress
• Create a new DB for WordPress and grant the permission
• CREATE USER wordpress@localhost IDENTIFIED BY 'wordpress-pass;
• GRANT ALL PRIVILEGES ON wordpress." TO wordpress;
• FLUSH PRIVILEGES;
• Exit
Then, download the WordPress module and unzip it • wget https://wordpress.org/latest.tar.gz
o tar -xzf latest.tar.gz
Move into WordPress folder and backup the default config file
cd wordpress
cp wp-config-sample.php wp-config.php
After that use nano to edit the wp-config.php file

Modify the following script into the correct value:

• DB_NAME: 'wordpress' DB_USER: 'wordpress' DB_PASSWORD 'wordpress-pass'
DB_HOST: your RDS endpoint
//* MySQL settings - You can get this info from your web host * //
/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

/ MySQL database username "/
define('DB_USER', 'username_here");
/** MySQL database password /
define('DB_PASSWORD', 'password_here");
• /
* MySQL hostname */ define('DB_HOST', 'localhost' );
define( "W3TC_CONFIG_DATABASE, true);

Deployment

To deploy the ResilientWeb+ project, follow these steps:

Set up AWS Account: Create an AWS account if you don't have one already.
Configure AWS Services: Set up EC2 instances, RDS databases, ELB, S3 buckets, CloudFront distributions, and VPC according to the architecture diagram.
Deploy Application: Clone this repository and deploy the application code to your EC2 instances.
Configure Security: Ensure proper security configurations for EC2 instances, RDS databases, and other AWS resources.
Test Application: Test the deployed application to ensure it's functioning correctly.
Monitor Performance: Monitor application performance using AWS CloudWatch and other monitoring tools.

Usage

Once the application is deployed, users can access the ResilientWeb+ e-commerce platform through the provided URL. They can browse products, make purchases, and perform other typical e-commerce activities.

About

A highly available web application build and deployed on AWS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors