For a few months I had been contemplating on moving my blog to a separate server. Recent increase traffic it was receiving and many WordPress plugins I installed started to make it a bit sluggish. It had been hosted on a VPS along with few other sites.
If you have read my post about WordPress hosting for personal and small business, I listed Lightning Base with its Personal plan for only $9.95/month. After recommending it to a couple of clients, I am impressed with it as it is fast and running cPanel which I am very familiar with. It would be the finest choice with my requirements.
Then I got my eyes on Amazon Web Services (AWS) with its Elastic Compute Cloud (EC2). It is basically a scalable cloud-based instance where you can increase or decrease its capacity almost instantly. Just like any other cloud based hosting provided. Its lowest instance t2.micro is priced at around $9.52/month and comes with 1 vCPU, 1GB RAM. More than enough for my needs at the moment. The wonderful thing is, AWS offers a [Free Tier] program where new customers can get started with Amazon EC2 for free for one year.
There was only one thing that held me back: like all other cloud based hosting services, EC2 requires deep knowledge of server (Linux) command line to set up everything. Of course AWS provides an extensive tutorial in how to set up WordPress on an EC2 instance, but it was still too much in my opinion since I needed something more practical.
Bitnami Cloud Hosting
The answer came in the form of Bitnami. It is an open source project that offers open source installers or software packages for web applications and development stacks. Over 100 open source application stacks are ready to use, including ever popular WordPress, Joomla, Magento, and more coming soon. I had known about Bitnami for a while, but I had not noticed about its Cloud Hosting product which was released in February 2010.
With Bitnami Cloud Hosting, you can monitor all your cloud servers and applications from one dashboard. Imagine being able to set up new WordPress blog on Amazon EC2 with a few clicks and less than 30 minutes. What is even greater, it comes with a free Developer Plan for one server (application).
Two essential components offered for free, no reason to hold me back from migrating my WordPress installation. The process went well, now I am ready to share with you the steps to set up yours.
Step 1: Create AWS Account
Just to be clear, EC2 is only one of dozens of AWS products and services. The AWS Free Tier program is free for 18 products/services within the limits defined by them. For EC2, you can run 750 hours (31 days = 744 hours) of Linux, RHEL, or SLES t2.micro instance usage per month.
Creating an AWS account is as simple as it can be. You just enter your personal data such as email, name, address and phone number. Note that you will need to enter a valid credit card information, but if you set everything right, you will not pay a dime until the following year. One next important step is automated phone validation but you only need to follow the on screen instructions and is very straightforward.
Step 2: Create Bitnami Cloud Hosting Account
This is much more simple and like most great web apps, creating an account is only a matter of minutes. You only need to enter basic data such as name, email and password. Click the link from the confirmation email, then you are all set. No credit card required until you need to add a second server/app.
Step 3: Add AWS as Bitnami Cloud Instance
We are now starting the fun part. First, you need to add your AWS account into Bitnami Cloud Hosting panel. Everything works through AWS’s API through its Access Key:
- Login to AWS Management Console
- From the console dashboard, click on your name on the top right and select Security Credentials
- On “Your Security Credentials” page, click on Access Keys (Access Key ID and Secret Access Key) and then Create New Acess Key
- New Access Key ID and Secret Access Key strings will be automatically generated and displayed on your screen, copy and save it; you can also download the key file
You are done from AWS side, next you need to share the access to Bitnami:
- Login to Bitnami Hosting
- From the left navigation, click on Clouds
- Under “Manage Cloud Accounts”, click New
- Enter the name and default location of your preference, for AWS Credentials enter the key strings generated from AWS then click Save
Bitnami Hosting now acts as the control panel of AWS and you can install application stacks on AWS through it.
Step 4: Spin WordPress from Bitnami Cloud
Next, let’s roll WordPress on AWS EC2 instance.
- From Bitnami’s panel, click Servers on the left navigation
- Under “Server Management”, click New and on the pop-up box select Launch Regular Server
- The next step involves selecting options:
- Name: your server/application name, ie. “My Blog”
- Domain Name: for every server you run on Bitnami, you need to create a subdomain under .bitnamiapp.com; you will be able to assign your own domain later
- Application Options: enter admin login details and under Email Configuration you may also want to add your Gmail or Custom SMTP details
- Development Options: the default components are enough, but I added Memcached and Varnish
- Add New Application: click the button, search and tick on WordPress
- Operating System: I just selected Ubuntu Linux (hvm) 64-bit
- Server Type: T2 Micro
- Disk Size: I just use 10GB, but AWS Free Tier allows you to use up to 30GB
- Cloud Account: your AWS account name from step 2
- Server Location: select from your preferred location, remember though that different location has different pricing after your Free Tier period expires
- IP Address: you can select Dynamic IP or Static IP, I chose the latter
- You can ignore the “Estimated Amazon charges” table because it is only Bitnami’s dynamic cost caculator; Amazon will not charge you if you only select the components within their Free Tier range
- Click Build and Launch
Now you just sit and wait for a few minutes for Bitnami to take care of things for you.
Step 5: Complete Your WordPress Site Installation
When your EC2 and WordPress installation is ready, you will receive an email from Bitnami. You can go into Bitnami Hosting panel and see your server under Servers. To customize or gain more information, click on the server name (eg. “My Blog”) and click Manage.
Some important items you may need to look at:
- Under Properties tab
- IP Address – this is the static or dynamic IP assigned to your server, you will need to enter the IP address on your DNS to point your domain to your server
- Application Credentials – if you did not assign a password of your application, it was automatically generated and can be retrieved here
- Under Applications tab, you want to change the address to your domain instead of a prefix under bitnamiapp.com subdomain; this will automatically linked to WordPress General Settings
Once you have updated your DNS to the IP of your WordPress installation and it has propagated, your site is ready and you can use it as you would install it from any server.
Additional Step: Optimize WordPress Installation
Out of the box, WordPress stack prepared by Bitnami is already good. Your website or blog will load blazingly fast. To some, including myself, it may not be enough though and you may want to make it even better. In that case, you want to read Bitnami’s excellent wiki page in how to optimize default WordPress install.
There you go. Free WordPress hosting for one year on a terrific cloud instance with less than an hour to set up. Do keep in mind that EC2’s t2.micro is probably ideal only if you have an average of few hundred up to low thousand page views per day. Above that, you may need to use their better instances although those are not eligible for AWS Free Tier program. If your blog is that popular, please be generous with your hosting budget.