Setting up WordPress on Amazon EC2

The general consensus of opinion, is that self hosting a WordPress blog is the best way forward for blogging success. It provides the most flexibility and control over your writing platform. The problem is, what happens if you don’t want to spend time setting up a hosted domain? What if you are not sure how?

That might be the time to consider a hosted solution in the cloud. Hosting WordPress in the cloud means that all the server/database requirements are looked after for you. All you have to do is start creating your content. Well, nearly. There will be a small amount of setting up to do.

In this article I’m going to show you how to set up a WordPress blog using the popular Amazon EC2 cloud, with a little help from BitNami.

The Amazon What?

Here is what it says about EC2 on the Amazon Web Services web site:

“Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers.”

Yes, and with some help from BitNami, you don’t even need to be a developer:

“BitNami provides free, ready to run environments for your favourite open source web applications and frameworks, including Drupal, Joomla!, WordPress, PHP, Rails, Django and many more.”

So what that means is, we can get ourselves an Amazon Web Services account, and then use that to host a Bitnami WordPress installation. Then you’ll be writing in the cloud in no time.

So first, get an Amazon Web Services Account – it’s free

Point your browser at http://aws.amazon.com and click the “Sign Up” button. You can run a micro server for 1 year free at the moment, so be sure and choose the “I am a new user” option. Don’t confuse this Amazon account with your Amazon retail account. The AWS system is completely different.

You will then go through a typical sign up form, and you will be prompted to enter credit card information. However, you will not be charged for the first year if you run a single micro server.

The final part of the account sign up involves Amazon’s automated service phoning you on the number you provided in the contact details section. It will ask you to either type, or say the pin number that will appear in your browser window. I found typing it didn’t work, whereas speaking it worked immediately.

You will then receive an email welcoming you to the service. It will contain links to the AWS portal where you can find the access keys you will need to use the service. We’ll get back to those shortly. First, you need an account with the BitNami cloud.

Get a BitNami cloud account

Amazon EC2 in the raw is not for the faint-hearted. There is quite a lot to learn about: how to deploy to it, and config it. Enter BitNami. By deploying to your Amazon cloud via BitNami, all the technical pain is dealt with.

You get:

  1. A properly configured server, with the operating system, and required software installed.
  2. The application(s) you want to run installed just by clicking a button.
  3. Any database requirements installed and configured for you.
  4. Automatic backups

Point your browser to http://bitnami.org/cloud and sign up for an account (free). The sign up process is just like any other sign up process until you get to near the end:

Bitnami sign up

Following the link to add your AWS credentials provides you with another simple form:

Bitnami sign up

Once you have entered the required information you will be sent into the dashboard. The dashboard is where you do all of your setting up and configuring. We can now hit the big Create Server button:

creating a server

Now we get to the important screen. The server configuration screen is where you choose all the settings that you require:

creating a server

Choose an application

The first option is to choose an application:

choose an application

Since we are focusing on WordPress, that’s the application we’ll choose.

Set the configuration options

You can now click on the application options button to set the WordPress credentials you want to use:

configure the app

You should also add email credentials via the Email Configuration tab. This is so that you can receive emails from your WordPress site.

Choice of operating system

If Ubuntu is not your thing, you can choose a different Linux OS too:

choosing an OS

Build and Launch

Now you can hit the build and launch button, and go and have a cup of tea. Bitnami will now create your server and set it running for you. You even get a nice email from them once your server is up and running.

Access your server

Click on view in the running servers section of your dashboard, and your new web site will open in a new browser tab:

your site

Click Access my applications and you will be presented with the installed applications page:

installed applications

Click the Access link, and there, in all its glory, will be your WordPress installation. Add ‘wp-admin’ to the url in the address bar, and you can access the normal WordPress administration panel.

Shell Access

If you wish to access your server via SSH, you can, after you have completed a couple of import tasks:

1. Get your key pair

Download your key pair from the manage server section of your Bitnami web admin area:
keys

2. Set permissions

You will need to set the permissions on the file you have downloaded, so in the console/terminal do:

chmod 666 bitnami-hosting.pem

Thant will ensure that only you have read/write access.

If you are on Windows, follow the advice in the Bitnami wiki.

Make sure you put the .pem file somewhere easy to remember!

3. Connect over ssh

In the console/terminal you can then connect with:

ssh -i bitnami-hosting.pem bitnami@your-chosen-site-name.bitnami.com

You will then have shell access to your server. Though, there is no particular reason that you need to do this as most of the common server management tasks can be carried out from the web admin area in your Bitnami account. But if you like to dabble in the more technical side of things, you have shell access to achieve that.

Finally…

It is probably wise to take a breath and think through want we have here. A full WordPress installation hosted on Amazon EC2. Not only that, but it needed no real technical server knowledge to get up and running. It certainly isn’t the cheapest way to run a WordPress installation once the free year is up, but it has to be one of the most painless ways to get a fully configured Linux server up and running, and on a cloud hosting service too.

Free book: Jump Start HTML5 Basics

Grab a free copy of one our latest ebooks! Packed with hints and tips on HTML5's most powerful new features.

  • Rob

    Good article! Bitnami is great- I’ve been using them for some time. Easier to administer than Amazon’s console for basic server administration.

  • Devon Gilchrist

    FANTASTIC Tut. I’ve been wanting to get on EC2 but haven’t had time to sit and figure it all out. This is great–seems like I could have it all up and running in under an hour. Thank you!!

  • Robyn

    Hey Andy,

    Very informative article.

    Just a quick question. Is there a significant difference in page load times through a hosting solution like the Amazon vs. one like HostGator?

    What’s your experience?

    Thanks a mil.

  • Brian Canute

    Thanks for a really helpful article.

    Newbie clarification:

    When I use Fantastico to install a WordPress blog on Hostgator, I end up with a WP stack, right?

    If I want more scalability, faster performance, greater design flexibility, I should consider using the Cloud.

    Alternatively, if I want a bit more development power over my hosted WP Blog, I can download BitNami to my PC and then edit the Gator Stack by uploading/downloading the relevant files. This requires more know how and is slower, right?

    Are these the main advantages of the Cloud strategy?

  • Prayag Pal

    Well written guide. Somehow I managed to get past one of the step and landed with a gotcha. I had gone ahead with EC2 instance creation without setting up all the details on BitNami and the AWS interface allowed to pick one of the BitNami images and rest of the steps followed from AWS itself. Even through the machine came up, I was not able to use it. Finally killed that machine. Came back to Bitnami followed the steps to complete the AWS details and then finally got a functional WP instance running.

  • Michael

    thank you for sharing this…do you know if it,is possible to install an Ssl with this type of set up? I a running into issues with one server and wanting to host multiple (small traffic )ecommerce sites and the issues around ssl…this could be a good solution…do you know if each instance has unique IP? thanks again.

  • Drew

    Hi Andy thanks for this it worked a treat for a non techie like me.

    However I am baffled by the Estimated Cost at $15.40 per month – can you tell me if these charges will incur?

    • Erica Brescia

      This is a great write-up – thank you!

      For Drew: Unfortunately, we are not able to determine from your Amazon Access Keys whether or not you qualify for Amazon’s free tier (which basically just means that you need to be a new customer of AWS, in which case you get a free micro instance for a year as mentioned.) So, we assume that you do not qualify just to ‘play it safe’. If you are new to Amazon within the past year, you should not see any charges on your AWS bill for using their service (provided that you stay within their limits, which can be found at http://aws.amazon.com/free.)

      For Ted Hessing: Yes, we offer a range of applications in BitNami Cloud Hosting, including WordPress Multisite, phpBB (a bulletin board/forum system) and OSQA (a Q&A-style system for hosting sites like Stack Overflow.) You can view the complete list of currently available applications at: http://bitnami.org/cloud/apps.

      For Michael: Yes, it is possible to setup SSL with servers launched with BitNami Cloud Hosting. Here is a link to our wiki article that explains how to do so (make sure you flip to the BitNami Hosting tab): http://wiki.bitnami.org/Components/Apache?highlight=SSL#How_to_enable_SSL_to_access_through_https.3f And yes, each server will have a unique static or dynamic IP (you can choose to use either and static IPs are free of charge as long as they are assigned to a running server.)

      Thanks again for the great article!

      Cheers,

      Erica Brescia
      CEO
      BitNami

  • Ted Hessing

    Love this article! To quote Ghostbusters: “I’m excited to be a part of it!”

    Can’t wait to try it out. Out of curiosity, I’m betting that there are other apps we could do similarly – like forums? Also, is multi-site hosting is likely to be supported, too? I’ve long wanted to upgrade my hosting for the speed benefits. The sites are small-ish and it would be a shame to have only one site on this set up.

    Any thoughts?

  • pj

    Hi and thank you for a very well written article with step by step detailed instructions!

    What brings me to this page is that I am a one man operation internet marketer. I am looking to host several small blogs using 1 click installations of WordPress as my CMS (Content Management System) as its fairly easy for us with basic technical knowledge using linux web servers.

    I’ve looked into free and paid shared hosting, VPS (Virtual Private Server) and dedicated server. As I am on a shoe string budget kind of starting out right now a VPS or dedicated server is not only unaffordable but I don’t have administration skills to operate nor desire to become an server administrator. This brings me to Shared hosting which comes in two options…free (which is the price for me ;) but this option is pretty much worthless as they either strip our basic features like adding a plugin or theme, using your own domain name through DNS (Masked Forwarding is not the same). You just don’t get the best out of all worlds.

    So I’m kind of left with paid shared hosting but the first limitation to this is the type of file that can be uploaded to the server (the majority don’t allow audio or video and if they do then size and speed transfer becomes an issue). I’m sure some readers would say to upload the video with YouTube and just embed the link into my page but I don’t want Google making money by putting their ads into my videos which takes away from my hard work marketing not to mention it doesn’t really look so professional. The other even more serious limitation is the actual number of concurrent connections to the website or database which is usually very low. I have found limits anywhere between 25-50 active users and no more than 100 (this is a rare and extreme best possibility) end users at any given time.

    You may be asking yourself that’s plenty enough and you’d be satisfied with half that amount but when it comes to internet marketing and a product or service launch there is nothing more dreaded then a Server Unavailable message to the visitor. Web surfers don’t have the time, patience or even know how to wait and refresh their pages to check and see if someone left for them to connect and I don’t blame them.

    I want to do this right and setup 1 server that I can click and install multiple WordPress blogs as needed including plugins, themes, etc without the limitations mentioned or price comparable to the price of paid shared hosting. My current budget is about $20 a month but the cheaper the better. I just don’t want to pay for the poor quality of IWwebhosting again and looking for an alternative replacement for them.

    I forgot to mention that live chat and phone support is a plus plus plus because I’m no server guru. Does anyone know if 1) dedicated IPs are provided and how many per domain (how do I get my domain to my site anyways and 2) does Amazon allow legal adult oriented material. Please don’t let this discourage posting a reply because that is only one or two sites I would host, the majority is non adult related.

    If anyone has any helpful information to contribute it will certainly be most appreciated. Please just have a solution or ask questions geared toward one. The thing I hate the most (and I’m sure others do as well) is when someone posts irrelevant or off topic. I don’t want an ethics lecture or legality speech. Just answers to the questions, Thank you.

  • pj

    I’d like to add that WordPress.COM doesn’t like plugins and don’t do third party advertisements :(