How to Install WordPress at Amazon Web Services (AWS) Cloud
Purchase a pre-installed image of this tutorial and check out our new knowledge base WordPress Now.
How to Install WordPress in the Cloud
In a day and age where people routinely post their thoughts on Facebook, an unlinkable, unsearchable, corporate-controlled walled-“garden”, I’m a big fan of owning your own blog. Not only does it give you full creative control, but it’s free of censorship, gives you full ownership, is optimized for search engines and is fully linkable and shareable.
While WordPress.com may be suitable for most people, I prefer the flexibility of running my own server. One of the more affordable solutions is Amazon’s cloud-based Web Services (AWS). But, getting started with AWS can be overwhelming without a deep technical background. When I first installed WordPress on an AWS micro instance, it kept running out of memory and crashing. Then, when I installed a custom, responsive theme on a larger instance, it was still quite slow.
This guide will provide you a detailed, step by step approach to setting up your WordPress blog at AWS in a high performance, economical fashion using an AWS Micro (or Small) instance running on Apache with Varnish and the W3 Total Cache plugin to optimize performance.
With a three year reserved micro instance, you can run a low traffic blog for $6.44 monthly (with the first year free for new AWS users). If you want a bit more room to grow, purchase a three year reserved small instance for a total monthly rate of $17.95 (what I currently use). Get more information on pricing options here. Ready to sign up for AWS? Already have an account?
Please feel free to post corrections, questions or comments below. You can also reach me on Twitter @reifman or email me directly.
This is a test
null
Jeff, this is a great (and as you say, extremely detailed) guide to setting up a WordPress blog at AWS. Nice work!
For what it’s worth, though, I used to have my WordPress blog on a Rackspace Cloud VPS (very similar to a small Amazon instance), at a cost of about $12/month and I found it was suffering from terrible performance, even with minimal traffic. I’m not nearly as good at config/optimizing as you are, but I eventually threw up my hands and moved it over to Webfaction (http://webfaction.com) where I’m paying $5.50/mo for 256MB on a setup that’s somewhere in between a VPS and a generic crap webhosting account.
I can install anything I want, including Python + Ruby on Rails stuff, MySQL + the OS don’t count against the RAM limit (!), and they’ve got WordPress and lots more (not just PHP stuff!) packaged up as one-click installers. It was all lightning fast, and I had to do zero system-level performance tweaking. For someone semi-technical like me, I found this really hit the sweet spot between control and managed hand-holding for a small site. $0.02.
You need some GOOGLE ADS on this guide, dude! 😉 In all seriousness, nice work. Ignore that @JonStahl:disqus guy, he’s a troublemaker. 😉
It’s best to ignore those semi-technical administrative grad types…
Ha!
This couldn’t have come at a more perfect time… thanks for the great write-up!
Well, if they are non-technical, managing the AWS setup is going to be an ongoing consulting cost for them – which is expensive. So, Page.ly might be a better option.
I wrote this tutorial for folks that are comfortable with some Linux administration.
Hi Jeff, Great post!
I have a basic question related to the domain names. I already have a site up and running but I want to build some new pages in wordpress on a test site (in the cloud) before I push them live on to the existing domain name. What I am trying to do is to install a wordpress template on the cloud so I can mess around with it. On rereading your page I was wondering whether this was actually possible and whether what I ought to do is set up the test site on a different host before transferring it to the cloud. This is not my preference but it isnt clear how to use the cloud with wordpress for R&D purposes. Thanks.
Tom
Tom, WordPress makes it pretty difficult to sandbox sites and move content around – it’s a definite weakness in the platform.
I would try a free blog on WordPress.com or Pagely (http://page.ly/?a=3520274193) / test your theme there before trying this AWS tutorial.
WordPress has some ideas here – though I don’t think they are excellent:
http://codex.wordpress.org/Test_Driving_WordPress
Hi Jeff, I’ve installed wordpress on amazon and the backend seems to work fine. However when I try to view the changes all I get is
“It works! This is the default web page for this server. The web server software is running but no content has been added, yet”.
I think this is an issue with Apache displaying the original index.html file. What Im trying to work out is how I replace the file so I can view what I am doing in wordpress. Any ideas?
Hi Jeff, My website is running on wordpress and hosted at Godaddy and its accessing very slow. Can I host website in AWS with wordpress platform?
@jeffreifman:disqus, let’s say I go through this whole guide, set up wordpress multisite and start selling a platform for churches to get on board with wordpress. Now, one of the additional features I’d like to offer is email. As of now, I’ve got WHM on GoDaddy which provides a cPanel where I can simply add emails. But how would I tackle the email ‘issue’ if I go the route you’re talking about?
I know that I want to use a cheaper and (MUCH) faster & efficient hosting for these folks. And as I’m looking for “GoDaddy Alternatives”, this sounds …PERFECT – except for the email side of things. How would you recommend I do this?
Wait… you’re available for “consulting”? Something tells me I’d much rather have this ‘D-O-N-E’ than try to tackle it myself.
Email me at jeff at newscloud dot com for more info.
Hi @Jeff Reifman. Thanks for this amazing guide. The integration of W3 Total Cache with AWS and Varnish is genius. Do you think this method would be suitable for running multiple (low-traffic) wordpress sites on the same server? I would consider running a medium instance to do this (I’ve heard it has much higher network I/O), do you think thats overkill, or would it be trivial to upgrade from small-to-medium later? My only other concern would be the ability to route different domains/ips to the same machine from elastic IP.