AWS VPC With High Availability And Scalability For Your CMS

Amazon has made the Virtual Private Cloud(VPC) as default for all the compute resources in all the regions across AWS. This brings a great opportunity for customers to take advantage of the VPC and design their networks and differ their workloads between public and private subnets. This will give the customers more control over their resources, networking, routing, and security.

Design and deploy a web application in VPC with all the architectural best practices is a challenge. Because we need to separate the workloads properly between the public and non-public zones, routing, and subnetting, high availability, scalability, etc.

Here I proposed an architectural diagram to deploy a CMS application in High Available, Scalable and Secure within AWS.

an architectural diagram to deploy a CMS application in High Available, Scalable and Secure with in AWS
I will explain each component and how this architecture diagram will help you to deploy a great scalable and secure CMS application like Drupal and WordPress in AWS.

As per the above Diagram we have Infrastructure Tier, Web Tier, Database Tier, Cache Tier, and Deployment & Management Tiers

Infrastructure Tier 

The Infrastructure Tier consists of NAT Instances, Load balancers, and Bastion/VPN instances. These instances are in Public Subnet because these should be reachable to the Internet via the Internet Gateway.

NAT Instances are deployed in NAT instances in HA in two public subnets in different zones to avoid the single point of failure.

Bastion/VPN Instance is to reach the rest of the private resources from the Internet. It would be a good idea to enable the MFA for this instance to get one more level of security. If you have any in-house VPN solution, you can use VPC Virtual Private Gateway to connect your network and we can remove the Bastion/VPN Instance.

Web Tier 

Generally, a lot of people deploy the Web Servers in Public Subnet thinking that they are the first level resources to access the application. But, if you use an Elastic Load Balancer (ELB) you can put the ELB in public subnet spanning in multiple Availability Zones and move the Web Servers into Private Subnets completely. Make sure attached subnets for ELB should have at least 20 free IP Addresses in each zone to create an ELB.

Implement Auto Scaling for Web Tier spanning multiple availability zones, this brings the High Availability and Scalability to the application.

Database Tier

Deploy the Database Servers in separate private subnets. Use the Amazon RDS Database service to launch the database in Multi-AZ mode to bring the High Availability and use Amazon RDS Read-Replicas feature to separate the writes and read requests between the master database and read replicas. This brings the great scalability to the CMS applications in Database. This RDS service is hosted by AWS whereas we no need to manage the Multi-AZ and Read-Replicas.

Cache Tier

Deploy the Cache Server in a separate private subnet. Use the Amazon Elastic Cache service, if you are using Memcache or Redis services for your CMS application. This cache service will be helpful for the sessions storing and page caching. It would be a good practice to move the session storing to the Cache Tier rather than storing on Database to avoid load on the Database servers. The Elastic Cache service is hosted by whereas we no need to manage the cache instances.

Deployment & Management Tier

Deploy the Deployment & Management servers in separate Private subnet.

The Deployment Server can be used to pull your version controlled code and static content hosted on either Git or SVN repositories and also can be used to deploy your code to Web Instances and copy/syncing the static content to the S3 bucket. You can use this instance to run some cron jobs or automation scripts.

The Monitoring Server will be used to monitor all resources which we have deployed for this CMS application using Nagios, Opsview monitoring tools, etc. Alone Cloud watch metrics and alarms cannot give you the complete insights of your VM and application-specific metrics. So third-party monitoring solution needs to be deployed to monitor both the VM and application specific metrics and enable the notifications via the Amazon SES, in case if any metric goes beyond the defined threshold level. And the monitoring portal can be accessed via the ELB.

Miscellaneous Resources

Use CloudFront Distribution for Content Delivery Network (CDN) to deliver the static content from the nearest edge location based on your geographic location. This will help us to load the application swiftly in the browser.

Use AWS S3 as the source for the CloudFront to fetch the content. Copy/Sync static content from the deployment server to S3 bucket. S3 bucket is a hosted storage service by AWS, this brings greater scalability and high availability.

Use Amazon Route 53 for low-latency DNS service and Failover feature if you want to build a Disaster Recovery environment in another region for your application.

Use Amazon SES for your mail services which will be helpful to send the bulk emails to users like newsletters, breaking news, important updates, etc.

Use Amazon CloudWatch and Alarms to monitor and alert us on resources metrics and instance reachability checks based on defined threshold levels.

With the above deployment architecture, we have exposed only 3 kinds of resources NAT, Bastion/VPN and ELB to the public with restricted firewall rules and rest of all the resources are deployed and secured in private zone with high availability and scalability in place.

Avatar

Written by

Praveen Kumar Muppala

I have strong experience on Multiple Unix/Linux flavours, LAMP Stack, Monitoring Systems, Database, NoSQL. I love to explore the new concepts/services in Cloud Computing World. I have written 4 certifications in different flavours of Linux/Unix.


Related Posts

Patrick Navarro
Patrick Navarro
— January 22, 2020

Top 5 AWS Salary Report Findings

At the speed the cloud tech space is developing, it can be hard to keep track of everything that’s happening within the AWS ecosystem. Advances in technology prompt smarter functionality and innovative new products, which in turn give rise to new job roles that have a ripple effect on t...

Read more
  • AWS
  • salary
Alisha Reyes
Alisha Reyes
— January 6, 2020

New on Cloud Academy: Red Hat, Agile, OWASP Labs, Amazon SageMaker Lab, Linux Command Line Lab, SQL, Git Labs, Scrum Master, Azure Architects Lab, and Much More

Happy New Year! We hope you're ready to kick your training in overdrive in 2020 because we have a ton of new content for you. Not only do we have a bunch of new courses, hands-on labs, and lab challenges on AWS, Azure, and Google Cloud, but we also have three new courses on Red Hat, th...

Read more
  • agile
  • AWS
  • Azure
  • Google Cloud Platform
  • Linux
  • OWASP
  • programming
  • red hat
  • scrum
Alisha Reyes
Alisha Reyes
— December 24, 2019

Cloud Academy’s Blog Digest: Azure Best Practices, 6 Reasons You Should Get AWS Certified, Google Cloud Certification Prep, and more

Happy Holidays from Cloud Academy We hope you have a wonderful holiday season filled with family, friends, and plenty of food. Here at Cloud Academy, we are thankful for our amazing customer like you.  Since this time of year can be stressful, we’re sharing a few of our latest article...

Read more
  • AWS
  • azure best practices
  • blog digest
  • Cloud Academy
  • Google Cloud
Avatar
Guy Hummel
— December 12, 2019

Google Cloud Platform Certification: Preparation and Prerequisites

Google Cloud Platform (GCP) has evolved from being a niche player to a serious competitor to Amazon Web Services and Microsoft Azure. In 2019, research firm Gartner placed Google in the Leaders quadrant in its Magic Quadrant for Cloud Infrastructure as a Service for the second consecuti...

Read more
  • AWS
  • Azure
  • Google Cloud Platform
Alisha Reyes
Alisha Reyes
— December 10, 2019

New Lab Challenges: Push Your Skills to the Next Level

Build hands-on experience using real accounts on AWS, Azure, Google Cloud Platform, and more Meaningful cloud skills require more than book knowledge. Hands-on experience is required to translate knowledge into real-world results. We see this time and time again in studies about how pe...

Read more
  • AWS
  • Azure
  • Google Cloud
  • hands-on
  • labs
Alisha Reyes
Alisha Reyes
— December 5, 2019

New on Cloud Academy: AWS Solution Architect Lab Challenge, Azure Hands-on Labs, Foundation Certificate in Cyber Security, and Much More

Now that Thanksgiving is over and the craziness of Black Friday has died down, it's now time for the busiest season of the year. Whether you're a last-minute shopper or you already have your shopping done, the holidays bring so much more excitement than any other time of year. Since our...

Read more
  • AWS
  • AWS solution architect
  • AZ-203
  • Azure
  • cyber security
  • FCCS
  • Foundation Certificate in Cyber Security
  • Google Cloud Platform
  • Kubernetes
Avatar
Cloud Academy Team
— December 4, 2019

Understanding Enterprise Cloud Migration

What is enterprise cloud migration? Cloud migration is about moving your data, applications, and even infrastructure from your on-premises computers or infrastructure to a virtual pool of on-demand, shared resources that offer compute, storage, and network services at scale. Why d...

Read more
  • AWS
  • Azure
  • Data Migration
Wendy Dessler
Wendy Dessler
— November 27, 2019

6 Reasons Why You Should Get an AWS Certification This Year

In the past decade, the rise of cloud computing has been undeniable. Businesses of all sizes are moving their infrastructure and applications to the cloud. This is partly because the cloud allows businesses and their employees to access important information from just about anywhere. ...

Read more
  • AWS
  • Certifications
  • certified
Avatar
Andrea Colangelo
— November 26, 2019

AWS Regions and Availability Zones: The Simplest Explanation You Will Ever Find Around

The basics of AWS Regions and Availability Zones We’re going to treat this article as a sort of AWS 101 — it’ll be a quick primer on AWS Regions and Availability Zones that will be useful for understanding the basics of how AWS infrastructure is organized. We’ll define each section,...

Read more
  • AWS
Avatar
Dzenan Dzevlan
— November 20, 2019

Application Load Balancer vs. Classic Load Balancer

What is an Elastic Load Balancer? This post covers basics of what an Elastic Load Balancer is, and two of its examples: Application Load Balancers and Classic Load Balancers. For additional information — including a comparison that explains Network Load Balancers — check out our post o...

Read more
  • ALB
  • Application Load Balancer
  • AWS
  • Elastic Load Balancer
  • ELB
Albert Qian
Albert Qian
— November 13, 2019

Advantages and Disadvantages of Microservices Architecture

What are microservices? Let's start our discussion by setting a foundation of what microservices are. Microservices are a way of breaking large software projects into loosely coupled modules, which communicate with each other through simple Application Programming Interfaces (APIs). ...

Read more
  • AWS
  • Docker
  • Kubernetes
  • Microservices
Nisar Ahmad
Nisar Ahmad
— November 12, 2019

Kubernetes Services: AWS vs. Azure vs. Google Cloud

Kubernetes is a popular open-source container orchestration platform that allows us to deploy and manage multi-container applications at scale. Businesses are rapidly adopting this revolutionary technology to modernize their applications. Cloud service providers — such as Amazon Web Ser...

Read more
  • AWS
  • Azure
  • Google Cloud
  • Kubernetes