Drupal And The Cloud
I have been spending quite a bit of time lately pondering how Drupal site builders can use "the cloud" to their advantage. I've been using some cloud resources for a while without giving the larger implications much of a thought. As traffic to my sites grows I've considered how to handle the challenge of maintaining (or even improving) performance while continuing to add features to my site.
So what I wanted to do was share a few ideas and links that I have found (and maybe even implemented) while pondering cloud computing in the context of my Drupal sites. Buyers please beware. I don't consider myself and expert on any of this stuff. But like many Drupal developers I'm curious and learning as I go.
Amazon Web Services
Amazon offers a number of interesting services through their Amazon Web Services division. Amazon S3 provides pay as you go, expandable storage for all kinds of files at a very reasonable price. I have an account on S3 and use the great S3 Fox add-on for Firefox to manage my files. I've been using S3 to host a variety of navigation images and icons for my sites. This strategy helps to improve performance since it balances the load of the site between the web server where you host your Drupal site and Amazon's servers. It is possible to use S3 to automatically store and deliver primary content, like photos and videos, uploaded to your site using the Media Mover module. I haven't tried the module yet but I plan to do so soon.
If you're interested in getting started with S3 please have a look at the Getting Started With Amazon S3 screencast.
One of the issues people have had with S3 is the fact that it is not a content delivery network (CDN). The files you send to S3 sit on a server at a static location and are not optimized for the fastest delivery to different locations around the world. Amazon solved that problem recently by introducing Amazon CloudFront. So if you're distributing media to the masses you can have it delivered via CloudFront and optimized for the location of the request for the file. The CloudFront pricing is very reasonable but will be added to the cost of Amazon S3 usage as well because files delivered by CloudFront are uploaded to Amazon S3. In very basic terms, when you upload a file to Amazon S3 you get two urls. One url is for delivering the file via S3 and the other is for CloudFront.
I'm using CloudFront to deliver the videos that power my recently added Learn By The Drop site guide. If you want to explore the possibilities of using CloudFront I suggest that you check out Getting Started With Amazon CloudFront.
More recently I've considered the merits of Amazon's EC2 elastic computing service. EC2 allows you to create an expandable server where you can run all kinds of web applications. This is definitely an option for more advanced developers who know how to setup servers and rock the command line. But it is getting easier to use and understand as companies race to offer user friendly tools for the EC2 service. EC2 is attractive because you can get a powerful server that can expand as your Drupal site expands and you only pay for what you use. It's unattractive because of the technical complexity and the fact that it's really not economical for smaller sites. My simple calculations estimate that a basic EC2 instance for Drupal will cost you about $60 per month plus bandwidth charges. I've no doubt that $60 is a great price for a server but most sites won't need the kind of horsepower EC2 offers.
Here are some links related to EC2 and/or Drupal that you can take a look at to learn more.
How To: EC2 For Poets | WorkHabit Drupal EC2 AMI Screencast | Drupal In The Cloud | CloudKick
Google Docs
I've been using Google Docs to replace some functions that would otherwise be handled by Drupal. Last year and this year I wanted to include a baseball schedule on my Mets fan site. With a csv file in hand I considered importing it to the Drupal database but decided to use a spreadsheet on Google Docs and embed the file in a page on my site. You can see the results here. I've also found Google Docs helpful for creating surveys using their "forms" feature. You can create an embeddable form whose data is saved to a spreadsheet on Google Docs. I'm using this technique to collect data from my Drupal Use Survey. What you essentially get from the service is a simple database that is hosted by Google.
There are always lots of questions about using 3rd party services to outsource your Drupal site functions. Some people have privacy concerns. Others worry about the reliability of the 3rd party service affecting their site performance. These concerns are valid. So I think it's smart to consider the Drupal-only way vs. using Google Docs when adding functionality. Google Docs is worth considering for collecting and/or displaying data if the content involved is not the primary content for your site. It keeps the size of your database down and (assuming Google's performance is solid) removes a bit of load from your web server.
Stop Sharing Spreadsheets, Start Collecting Information
Mosso: The RackSpace Cloud
I found Mosso only recently and I could see that it was a step in the right direction in helping the average Drupal developer to deploy their site on a powerful server. The service is billed as, "The fastest, easiest way to put sites in the cloud." It sounds like Mosso offers you the power of a dedicated server with greatly simplified setup and management. It differs from Amazon EC2 because what you get with EC2 is basically an empty space whereas your space with Mosso is filled with the goodies you need (MySQL, PHP, etc.) to run a Drupal site. Mosso's pricing starts at $100 per month, which is at least $40 more than the Amazon service. But there's definitely value in the simplicity of a managed environment where less technical ability is required.
Services like Mosso will appeal to those who want a high performance Drupal site but don't have the technical ability (or the desire to hire someone) to deploy a high powered web server. Cost could become a downside if your sites get popular. Mosso estimates that a top 1000 Technorati blog could cost about $800 a month on their service. Then again if your sites suddenly get very popular other hosts might shut you down (for exceeding bandwidth limits) while Mosso will allow you the room to grow in an instant.
If you're curiousity has been piqued then take a look at Installing Drupal 6 On Mosso.
Drupal And The Cloud
There are a lot of great tools and services that can help developers achieve benefits that were previously only available to those who could afford to spend thousands of dollars per month. It's an exciting time as competition builds in the race to bring the cloud to the average web developer. I have no doubt that Drupal developers will be able to take advantage of many of the things that come along.
- learnbythedrop's blog
- 7611 reads


Comments
What about Mosso Cloud Servers?
Your post mentioned Mosso Cloud Sites but not Cloud Servers, which launched last week. Cloud Servers is similar to EC2 as you are provided un-managed Xen server instances on an hourly basis. However, there are a few advantages for Drupal sites.
The first is variety in instance sizes, including extra small instances. EC2 instances start at 1.7GB of ram at $70/month + bandwidth. This is a good value for what you get but simply overkill for a moderate usage Drupal site. Cloud Servers lets you start with 256RAM for $12/month + bandwidth and move up from there. This works out to $0.015 per an hour for the smallest size.
The second advantage is simplicity. With EC2 you need to plan for your instance to fail as primary storage is not permanent. Instead, all permanent storage is allocated through Elastic Block Store (EBS), which essentially works as a secondary attached drive. Cloud Servers is much easier to configure because it works like any other VPS. Nothing is lost if the instance is rebooted and you don't need to worry about where files are stored. As well, Mosso has simple systems available to centrally manage DNS and backup snapshots. They also offer phone support for accounts with over $100/month usage.
When you put this all together, Cloud Servers is an excellent option for hosting Drupal sites for those of us with basic system administration skills (or willingness to learn). At ImageX Media we began evaluating Cloud Servers last week and are potentially transitioning over all hosting infrastructure. I'll have to report on the process in our blog after further testing.
Finally, I'd like to note that I don't think AWS is a bad service. In fact, I'd say that it is technically superior to Mosso. Elastic IP addresses and Elastic Block Store give you amazing flexibility. The storage and backup systems are more powerful and configurable. As well, Mosso lacks the proper ability to configure your own base snapshots (you have to use backups instead). The catch is that all of this power means extra configuration and the base cost is higher. AWS makes more sense if your site needs massive scalability. However, that is not the majority of Drupal installs.
Mosso Cloud Servers
I see that they launched Mosso Cloudservers last week at SXSW. It looks very good. Seems to be a step up from Slicehost, which is also owned by Rackspace. The pricing looks very attractive as well. Once I get my teeth sunk into a book on Linux server administration (hopefully very soon) I will give them a try.
Have you actually used Mosso?
Good article. I was wondering if you have actually used Mosso. I am currently hosting all of my sites on MediaTemple's Grid Service and have heard similar horror stories about Mosso. I just opened an account at hotdrupal.com today and it definitely beats MeadiaTemple's Grid Server out of the box.
Just wondering how many hours you have put into Mosso if you have in fact used it or you were just writing your review based on their advertising.
Cheers,
Elijah
Well one has to realize that
Well one has to realize that Media Temple's highly trumpeted "Grid Service" (trumpeted by themselves by the way), is nothing more than the generic shared hosting that you get at most other places. The performance I got from Media Temple's Grid service was about equivalent to Dreamhost's 5.95 a month plan, at a third the cost of the "Grid Service." I would steer clear of either for Drupal hosting due to their MySQL implementations.
No on Mosso, add Dropbox to the list
Mosso doesn't give you access to some functions on the command line. It is a fancied up version of shared hosting, probably appropriate more for non developers that need some level of scalability. They have to, as I understand it, manually shard your MySQL DB or some such.
I would add Dropbox to the list of interesting cloud services. It has somewhat replaced Google Docs in many instances for me, when I need to prep docs for actual output with formatting. There is also a Drupal module: http://drupal.org/project/dropbox
I must clarify...
Boris is talking about Mosso's Cloud Sites, which is different than the new Cloud Servers offering. Cloud Servers are Xen VPS instances with full root SSH access. It is essentially Slicehost, which Rackspace acquired. Cloud Sites is shared hosting, which has its downfalls. I would not recommend services like Cloud Sites, Media Temple's Grid Server or Dreamhost due to speed and reliability issues. If you must use shared hosting, look for a service that charges more than average and has reasonable usage limits. I don't have any recommendations myself but I'm sure others will speak up about their favorite provider.
Cloud Servers Slicehost = good, Mosso Cloud SITES = bad
Yes. Cloud Sites = shared hosting = bad. Confused about the naming yet? :P
Cloud Servers are not shared hosting, they are (as you say) Xen VPS instances, which is "hard virtualization" -- machines are shared, but resources are shared, which makes them EXCELLENT. Rimu Hosting and Bryght VPS are others in this category.
Drupal in Cloud Sites
I was told by Mosso staff that there is no limit on resources in Cloud Sites and it is optimized for content delivery. It seems that reliability and speed should not be an issue.
My dilemma with Cloud Sites is that it requires each site (domain) to have its own Drupal installation which would create upgrade nightmare.
What are your thoughts on this?
Added to DrupalSightings.com
Added to DrupalSightings.com
Cloud Sites vs Cloud Server and Cloud Server vs DropBox
Hi All,
I almost posted two separate comments, but since I am hoping for some "terminology" clarification as well as "best practices" stuff, I am asking both together.
It seems to me that Cloud Sites are a step up from "shared hosting=bad"; indeed it seems that it is leveraging the power of virtualization to solve the issues that I am sure you think are bad.
Perhaps I am unlike those disparaging Cloud Sites as I am a developer/coder that is not and does not aspire to be a DBA/Server Administrator responsible for backups, email servers/account management, etc, and so on... and I would rather "outsource" that function to Mosso than to add another "partner" that would expect his own slice of our start-up Pie.
Cloud Server is more like your own box, virtually... right? So can you install Apache and point a DomainName to it?
DropBox, as per the screencast, seems like "System Candy" to avoid the unpleasantness of using tools like FTP and CVS/SVN -- but perhaps I don't understand the business model. Also, it is not clear whether it is software that you can install on your server and thus manage your files this way, or whether it is a service like GoogleDocs or a true remote server (as service, like Cloud Server). It seems extremely unclear how you would use DropBox to create/setup/manage one (or many) client sites with client content/scripts that you are responsible for. It also seems unclear that a Drupal Module to allow a Drupal Site to leverage DropBox for the site Users is the same as a technology that allows you to build, deploy, host, manage a Drupal Instance?
I am pretty dumb about ServerAdmin stuff, so I ask that you be gentle, as I expect that I said many dumb things above. I post this unabashedly to get smarter people to correct me so that I may learn.
Thanks.
Morph AppSpace
You may want to look at Morph AppSpace as well, just watched a Drupal demo the other day.
http://www.mor.ph/
You don't get a complete server, so I am not sure how is this limiting you. The upside is that the environment is completely managed for you
Cloudfront Module for Images
Someone has cooked up a module that integrates with imagecache and moves processed images to Amazon CloudFront. http://drupal.org/project/cloudfront
Mosso
I am currently running on Mosso (Rackspace) cloud sites. I do not want to run my own server etc. I would rather that be one less aspect to manage. So far I have been very happy with Cloud Sites speed, ease of use and customer support. HOWEVER I have NOT been able to configure multisite installations. I have read where this is possible but no one at Rackspace can offer the help I need to understand it.
I was over looking the loss of Shell Access but that coupled with no multisite install may cause me to leave.
I was wondering if you have
I was wondering if you have actually used Mosso. I am currently hosting all of my sites on MediaTemple's Grid Service and have heard similar horror stories about Mosso. I just opened an account at hotdrupal.com today and it definitely beats MeadiaTemple's Grid Server out of the box.
I host at Dreamhost using
I host at Dreamhost using their Private Servers option. It's a virtual dedicated server system. Mosso is a RackSpace company which seems to have pretty good streed cred. I see a lot of good reviews for their Cloud Servers option. You have to be savvy with Linux to use Cloud Servers though.
Re: Drupal And The Cloud
Hi there,
Good to find this discussion. I have already said somewhere that Cloud.bg ( http://www.cloud.bg/en ), a Linux cloud hosting provider launched in 2009 offers High Availability and IP load-balancing cPanel based hosts, including Drupal based sites. This is probably the only cloud fully automated for cPanel/WHM which offers Shared Cloud and Reseller Cloud hosting. In oder words users host their website on top of a HA, load-balanced cluster and share the resources of the whole system. I've tried it and it works fine for me. The good things is that you don't need to deal with virtualization, software licensing or management of virtual instances. As account owner I get all the things I expect from a cloud hosting service as a part of the Shared Cloud cPanel account. Also having cPanel is great, because it is the same familiar interface, and the user do not need to getting use to any new software applications.
Re: Drupal And The Cloud
Perhaps I'm wrong but this host looks like so many others out there. What really makes their "cloud" more special? I mean, isn't all web hosting cloud hosting? While I will admit that I was once very excited about "the cloud" I realize now that it's just a marketing term for using someone else's servers to accomplish a task. The ability to do that for some things, such as editing documents, is quite revolutionary but it seems like people get confused and automatically assume that "cloud" hosting is better just by virtue of the fact that the name cloud is used,
Post new comment