Welcome to the Scalable Web App repository! This project demonstrates how to build a scalable web application using AWS services, Terraform, Application Load Balancer (ALB), and Auto Scaling. This guide will walk you through the architecture, setup, and deployment of the application.
This project leverages the power of AWS to create a robust and scalable web application. By using Terraform, we can manage our infrastructure as code, making it easy to deploy and manage resources consistently. The application is designed to handle variable loads, thanks to the Auto Scaling feature and the Application Load Balancer.
The architecture of the scalable web app consists of several key components:
- Amazon EC2: Virtual servers that host the web application.
- Application Load Balancer (ALB): Distributes incoming traffic across multiple EC2 instances to ensure high availability.
- Auto Scaling: Automatically adjusts the number of EC2 instances based on demand.
- Nginx: Acts as a reverse proxy and load balancer for the application.
Here’s a diagram to illustrate the architecture:
Before you begin, ensure you have the following:
- An AWS account.
- Terraform installed on your local machine. You can download it from Terraform's official website.
- Basic knowledge of AWS services and Terraform.
To get started with the Scalable Web App, follow these steps:
-
Clone the repository:
git clone https://github.com/Devilonearth/scalable-web-app.git cd scalable-web-app
-
Set up your AWS credentials. You can do this by configuring the AWS CLI:
aws configure
-
Modify the Terraform configuration files as needed. These files are located in the
terraform
directory.
To deploy the application, run the following commands:
-
Initialize Terraform:
terraform init
-
Validate the configuration:
terraform validate
-
Plan the deployment:
terraform plan
-
Apply the changes:
terraform apply
-
Confirm the changes by typing
yes
when prompted.
Once the deployment is complete, you can access your web application through the Application Load Balancer's DNS name. You can find this DNS name in the AWS Management Console under the EC2 section.
To view the application logs, connect to the EC2 instances via SSH and check the Nginx logs located at /var/log/nginx/access.log
and /var/log/nginx/error.log
.
We welcome contributions to the Scalable Web App! If you have suggestions or improvements, please fork the repository and submit a pull request. Ensure your code follows the project's coding standards and includes appropriate tests.
This project is licensed under the MIT License. See the LICENSE file for more information.
For downloadable files and to view the latest updates, please visit the Releases section. You can download the necessary files and execute them as needed.
For any questions or issues, please check the Releases section for updates and troubleshooting tips.
Thank you for checking out the Scalable Web App! We hope you find it useful for your projects. Happy coding!