What’s Not Covered
Purchase a pre-installed image of this tutorial and check out our new knowledge base WordPress Now.
What We’re Not Addressing
- BitNami Cloud: I’m not using the BitNami Cloud to launch an AWS AMI with WordPress. If you’re interested in AWS but don’t want to do all the work of running your own instance, this may be a good middle step for you. However, they aren’t integrating Varnish and W3 Total Cache as I do in this tutorial. Furthermore, I am not familiar with the model they use to organize their directories and components and prefer to have more expertise over my environment. If you are interested, this tutorial may interest you: Using BitNami to Set Up WordPress on Amazon EC2. I do think BitNami is promising and useful.
- BitNami AMI: Similarly, I’m not using the BitNami AMIs and pre-built WordPress stack directly because I’m not as familiar with them and they use their own custom directory format which was unfamiliar to me. If I want to add other applications to my instance, I don’t want to be hindered by a non-standard install.
- The Ubuntu WordPress package: The standard Ubuntu WordPress package defaults to multi-site mode and has its own style of configuration which I’m not familiar with. Because multisite is inherently slower without additional configuration, I chose not to use the package.
- Multisite: I specifically do not use WordPress in multisite mode because I found that it is slower. It’s specifically more difficult to optimize the delivery of images with multisite because every request is routed through PHP. I also found that plugin compatibility is weaker and problematic. I actually went through the trouble of migrating this blog off of a multisite installation. Once you activate Multisite, it can be difficult to return to single site mode – in some circumstances.
- Amazon’s Elastic Beanstalk: I’m not using Amazon’s Elastic Beanstalk to deploy WordPress. I may do this in the future. Here’s a tutorial on using elastic beanstalk with wordpress.
- Amazon’s RDS: I’m not using Amazon’s Relational Database Service (RDS) in place of MySQL. The primary reason is that the point of this guide is to minimize cost for small to medium-sized WordPress sites. RDS is more appropriate for larger, scalable, fault-tolerant sites where cost is secondary. Here’s a tutorial of using RDS with WordPress; it reports $82 monthly as a minimal cost RDS installation.
- CloudFlare: I’m currently not using CloudFlare as it’s not clearly that it would provide significant value add over Amazon S3’s CDN with W3 Total Cache. However, I’m eager to give it a try.
- NGINX: I know a lot of people swear by NGINX over Varnish but I did not have as much luck configuring NGINX. I found Varnish worked well with Apache and Apache works well with PHP more straightforwardly.
- Dynamic multi-server scaling with AWS: Again, this isn’t the goal of this guide. Check out Architecting a Highly Scalable WordPress Site in AWS
Please feel free to post corrections, questions or comments below. You can also follow me on Twitter @reifman or email me directly.
Thank you so much for writing this guide. It’s written really well, but the amount of steps and knowledge required to set up a WordPress blog on AWS is overwhelming to me. As much as I like the idea of having a WP site cheaply hosted on a cloud that scales in pricing, it’s over my head 🙂 Perhaps it will be easier to do down the road. I am going to have to find someone else to set it up for me when I am officially ready. But for now, I will just use tumblr.
Thanks Raymond – you might just try WordPress.com or Page.ly …
Thanks. If I take things to the next level with my blog or startup, I probably will find someone else to set things up for me using AWS. What are your thoughts on Rackspace?
Thanks for your guide, I have successfully install the wordpress on AWS. but BP Activity, Members, Groups & Blogs tabs give me a Page Not Found error. I do not know how to fix it.
by the way, I have changed the pemalinks to any configuration other than the default configuration
Hi, I don’t use Buddy Press … and it’s not part of this tutorial, sorry.
So you discourage the use of multi-site mode for WordPress.
How about having multiple WordPress installations on a single EC2 instance? Would there be the same problems as multi-site mode for WordPress?
I would recommend that approach instead of using multisite for running multiple blogs. Unless they are related by subdomain or specific project.