Drupal In A Cloud - Part I
Drupal Architecture For The Cloud!
In this series I will show you how to install and configure Drupal - The Super Duper CMS in Amazon Cloud. Drupal is a PHP based CMS. Drupal is open source. The software is free to help you build everything from personal blogs to enterprise applications.
Drupal installation requires,
- a PHP installation
- a Web Server (of some kind)
- a DB Backend (mySQL is the most common DB used with Drupal)
For this tutorial I will be using,
- a Linux EC2 instance
- MySql on Amazon RDS
- Apache Web Server
- PHP 5.x
- You are working on Amazon Web Services Platform :-)
- I am on a Mac OS X. Not that it matters but I will be referring to Mac Terminal in this series.
Let's design the architecture first!
Drupal Architecture For Cloud
Drupal CMS has two parts.
- Drupal Front-End: In most cases it must be public facing. In other words it must communicate with Internet from AWS Cloud.
- Drupal Back-End: By Back-End we mean database(s). Considering best practices and security reasons database(s) are kept on a private network. Which means, database(s) are not open to public. Sure enough, we have to design our architecture in such a fashion where the Front-End is able to communicate with the Back-End.
So how do we make this happen? Meet AWS Virtual Private Cloud: VPC.
VPC & Subnets
As per Amazon Web Services,
Amazon VPC enables you to launch Amazon Web Services resources into a virtual network that you've defined. This virtual network closely resembles a traditional network that you'd operate in your own datacenter, with the benefits of using the scalable infrastructure of aws.
AWS provides with a default VPC. This default VPC is spread across multi-availability zones. Additionally, this default VPC is already configured with an access to Internet. Which means, any EC2 instance you place in the default VPC is already connected to the Internet. Not exactly what we want. Plus, we want to learn how to build a VPC from scratch, right? C'mon now: Anyone can run with default off the shelf stuff. We grow when we think out of the box :-)
Virtual Private Cloud has subnets. So what is a subnet?
Subnet is a way to partition a network into logical segments for the ease of administration. Additionally, with subnets you can partition a network into multiple availability zones.
That's correct. Think of a Virtual Private Cloud as one large network. It is not a good idea to place everything in this one large network. We have to break this large network into smaller and more manageable segments. These smaller segments will allow us more control over the security and manageability of the network. I like that!
When you create a subnet inside of a VPC it is private by default. Which means, you can not access anything placed in these subnets from outside of the VPC. On the other hand instances placed in these subnets can communicate with each other: because these subnets belong to the same VPC.
Diagram below shows a suggested Drupal Architecture in Amazon cloud. I am not saying this is the only way to architect Drupal in a cloud, but at least this is one of the ways.
In the next tutorial we will see how to create a VPC and break it up into smaller segments using private subnets.
See you then!
Hi, I am Ritesh Patel. I live in a beautiful town surrounded by the mountains. C&O Canal is few miles away. State parks are only a distance away & bike trails galore. It is home sweet home Frederick, MD. A passionate developer. Love to cook. Enjoy playing "Bollywood Tunes" on my harmonica. Apart from that just a normal guy.