Reference no: EM132173283
Overview
The aim of this project is to deploy Drupal CMS application architecture that is highly available and scale-able on the AWS Cloud. This will expose students to design, configure and implement Drupal workloads on the AWS Cloud.
Drupal High Availability on AWS
Drupal is an open-source content management framework written in the PHP server-side scripting language. Drupal provides a backend framework for many enterprise websites, with standard features such as easy content authoring, reliable performance, and robust security. Flexibility and modularity are the core tenets of Drupal's design principles.
Drupal High Availability enables you to deploy the Drupal application and database on different Amazon Elastic Compute Cloud (Amazon EC2) instances. The AWS Relational Database Service (Amazon RDS) is used to set up a relational database in the AWS Cloud that helps you reduce costs, simplify configuration tasks, and scale with ease.
This project's implementation of Drupal High Availability on the AWS Cloud provides benefits such as the following:
High performance
- Drupal workloads are deployed on multiple servers (EC2 instances) for better performance.
- You can add capacity by increasing the number of nodes in the cluster.
High availability and failover
- If a node is down, the cluster can continue working.
Security
- The relational database and Drupal application (data and code) are provisioned on separate EC2 instances to help improve security and access control.
- The Drupal environment is deployed into a virtual private cloud (VPC) that includes bastion hosts and stack instances to provide secure access to private subnets.
- Users can access the server through Secure Shell (SSH) by connecting to the bastion host instance.
Architecture
The deployment of this project is based on new virtual private cloud with an architecture outlined below that builds the Drupal application. We will use "US WEST - Oregon" region for the implementation.
The project requires the following:
- A highly available architecture that spans two Availability Zones.
- A VPC configured with public and private subnets according to AWS best practices, to provide you with your own virtual network on AWS.
- An internet gateway to allow access to the internet. This gateway is used by the bastion host to send and receive traffic.
- In the public subnets, managed NAT gateways to allow outbound internet access for resources in the private subnets.
- In the public subnets, Linux bastion host to allow inbound Secure Shell (SSH) access to EC2 instances in public and private subnets.
- Elastic Load Balancing (ELB) to distribute HTTP and HTTPS requests across multiple Drupal instances.
- In the private subnets, EC2 instances that host the Drupal application on Apache. These instances are provisioned in an Auto Scaling group to ensure high availability.
- In the private subnets, DB instances administered by Amazon Relational Database Service (Amazon RDS).
- In the private subnets, Amazon Elastic File System (Amazon EFS) to share assets (such as plugins, themes, and images) across Drupal instances.
Deployment Option
The deployment option for this project:
- Deploy Drupal High Availability into a new VPC (end-to-end deployment). This option builds a new AWS environment consisting of the VPC, subnets, NAT gateways, security groups, bastion hosts, and other infrastructure components, and then deploys Drupal High Availability into this new VPC.
Test the Deployment
When the deployment has completely successfully, test it by accessing the Drupal user interface from your browser and logging into the dashboard.
Tasks:
- Create a webpage on your Drupal application that allows you to write posts and upload media (images)
- Write a small post on your blog and verify that all instances of your Drupal display the newly created post
- Write another small post on your blog and as well as upload a media (image) on to your blog. Verify that all instances of your Drupal display the blog post and media (image)
- Execute CPU utilization test for CPU usage more than 70% for more than 5 minutes and verify that alarms are triggered, CloudWatch captures all the events, and additional instances are launched
- Execute CPU utilization test for CPU usage less than 45% for 15 minutes and verify that alarms are triggered and CloudWatch captures all the events, and application scaling in your instances
Project Restrictions
- You are not allowed to use any pre-built CloudFormation template to implement this project.
- You are not allowed to use any pre-built third-party applications for this project.
Project Requirement:
A well-documented technical group report is required for grading your project work. A hardcopy and softcopy of your project report should be submitted on or before (TBD). Late
Report:
- Your report should have a proper cover page with Title of your project, instructor name, college details, your name and student id, and the date of submission.
- Your report should have a brief introduction of your project detailing the business use case.
- You should document all configuration details with brief explanation of the configurations
- Your report must include all important events logs, alarms triggers, and CloudWatch metrics/logs
- Your report should include AWS Cloud logical diagram of your Drupal application setup with appropriate labels.
- Your report should include a detail discussion of your work and difficulties encountered, and any additional improvements can be made for future.
- You should list all your references.
Attachment:- CLOUD PROJECT.rar