So you want free Webhosting? 😉 Can’t blame you… I am a sucker for ‘free’ myself.
Before we begin, here’s my two cents on the Amazon AWS. It sucks! Yes, you heard it right, AWS sucks big time and if you really care about your blog don’t host it there.
I signed up for the free tier after reading a number of glittering reviews, many big names in the startup industry (e.g. Instagram) are using Amazon AWS platform. But guess what? It still sucks! Atleast AWS as a free platform isn’t really worth it.
To make matter worse the basic plan that AWS comes with has zero support. You can’t even raise a ticket if there is a problem in the server. My website worked for a long 6-7 months but one fine day all of a sudden it started to act up. I was quite shocked to find that the site went down without a reason. I looked up at the few problems that could have created this but forget about finding a solution, I couldn’t even find the source of the problem to begin with. The site came back online on its own but it was never quite the same after that. Over the next few months site would go down again, and the downtime lasted for days!
Of-course I tried to follow up with the AWS support. When I raised a ticket (in a different category as there is none for tech issues) they asked me to lookup the troubleshooting guide. Needless to say I had already scanned every item in it.
No sweat, since I was not actively working on that site, I let it slide for few months and besides I was still using free tier. And you know what? When the time came, I quietly moved it to a more reliable hosting provider.
Bbye AWS! Problem solved!
I am currently using BlueHost to host it. I currently have two shared hosting plans, one with HostGator and other with BlueHost. And both of them are going strong, the support is very prompt as well. In fact I ran into a problem when my website was down due to a faulty plugin. The HG support was quick to point out, the issue was fixed, and within minutes the website was up and running. What’s great thing about the two hosts is that both provide local support i.e. they have local support team in India and a toll free no. where you can call instantly.
Anyhow, here is a step by step guide on hosting a site on AWS:
Step 1: Signup with Amazon Web Services
Though the basic plan is free, you will still need a credit card and a phone no. to sign up before your start using their service. The AWS free tier offers 750 hours of server time which is roughly one month. If you cross this limit your card would be charged. Another thing to note is there is still a miniscule amount of bill ($0.5) you need to pay every month irrespective of your usage limit.
Listed below are the software tools that you would require to setup and use AWS:
PuTTy is used to login into your server. The tool provides you with a command line interface to UNIX server. You are not techie? Good luck with it!
Putty Gen is a software tool used to extract a public key from a key pair (more on that later), which would be used to login into your server. Amazon AWS makes use of key pair to login into their server, instead of the regular id and password system.
Filezilla is a top notch FTP client. One thing non-technical users and even some technical as well dread is working on the command prompt of Linux. Humans are visual and working with commands on a black screen seems counter intuitive. Plus you not to mention have to remember all those commands to get anything done.
Enter Filezilla, the FTP tool that you can utilize to browse your server directory ‘visually’ just like a window’s or mac’s file explorer. Plus, with Filezilla you can open all the text/ code files, edit them and save them directly to your server. It saves you from hassle of downloading file to your computer for editing and then uploading it back again to server.
Step 2: Signup with Cloudflare
Step 3: Creating an Elastic IP
Elasctic IP is a fancy term for a static IP address that would be assigned to your micro instance.
Step 4: Pointing your Custom Domain Name to your AWS Elastic IP
Login into your account at the domain registrar. e.g. godaddy and namecheap. You need to create ‘A records’ to associate the domain name with the Elastic IP. Create three A records:
Give it sometime as it might takes upto 24 hours to get the records updated.
Step 5: Set Up Key Pair for your Website
Before you setup your instance and begin installing the wordpress, it is essential that you generate a key pair. Key-pair is used to login into your server with Putty or Filezilla.
Instead of using a user name password, Amazon AWS forces users to make use of private key/ public key authentication to gain access to your instance.
From left side of the EC2 dashboard, choose Network and Security, select Key-pairs item and click on ‘Create Key Pair’ button. A .pem file will be generated and downloaded automatically. It is a keystore file which contains the private-public key pair.
In the next step you need to use Puttygen to extract the private key from the .pem file. To do so, click on the Load button and select the .pem flle from the file window. Once imported, save the private key by clicking on ‘Save private key’ button in PuttyGen. Save the file without a pass phrase. This file (.ppk file) is your private key and will be used to login into your EC2 instance using putty and filezilla.
Now, you are ready to create a micro instance on which you will host your site. So, let’s get started, shall we?
Step 6: Install WordPress using Bitnami Image
Amazon has made it super easy for users to get them started quickly by allowing one click installation of certain software on its server. Head to amazon marketplace where you will be buying a server instance and installing bitnami wordpress image.
Choose t2.micro as EC2 instance type which is eligible for free tier. The cost estimator on left side of the page would tell you how much the instance would cost you. The estimation assumes a usage of 720 hours = 24 hours x 30 days.
At the bottom of the page you would see the key pair you had created earlier. Click on accept terms button and you are set.
Step 7: Obtain your Initial Password
Go to the EC2 dashboard. Click on Instances item under Instances menu and it will list your instance. Right click on your newly created instance, choose Instance settings and click on ‘get system logs’ under the sub menu. Scroll down to the black command window that pops up and look for the phrase: “Setting Bitnami application password to”
Step 8: Set Up Bitnami Application Password
Copy the password you found above and save it somewhere safe. This is your WordPress login password for the user, ‘user’.
Step 9: Associate Elastic IP with the New Instance
Choose Elastic IP under network and Security from the left side menu. Highlight the IP and click on Associate address. In the instance text box, provide the name of the instance you created, and hit the associate button. You have now associated the IP address with the newly created instance.
In your browser, type in the name of your website and hit go. If you have not yet assigned the domain name, use the elastic IP or the public DNS of your instance.
Congratulations your wordpress site on free AWS hosting is now up and running. Time for some real work now! Start posting your blog posts!
To your Success,
– Vidyut Rautela