This article is about evaluating whether AWS Hosting is a viable solution for personal websites vs another hosting solution.
A bit of background, I was in search of a hosting site for my WordPress Blog. I am a technical person, so one of the requirements was SSH access in case I needed it. Most of you won’t need to care for SSH access, but if you want to get down to to the nuts and bolts it may be something you want to consider. I setup a Linux PC at home with Mint Linux to get me started, but soon realized I needed something for stable, faster and realizable so started looking at web hosting providers. This will be a live overview of my experiences.
In search of a web hosting site and did a bit of research to find the best place to host a website. One of the things I considered was hosting on a personal PC even if I went out and bought a reasonably beefy PC but decided against it for various reasons, first it would probably be against my TOS from my internet provider although I could look into whether they would allow it. I will try not take too long before I jump into the AWS pieces. I will be talking about
- A2 Hosting
- Blue Hosting
- AWS Cloud Hosting
Other factors such as power outages, slowness, security etc came to mind. Also I was looking for a long term strategy where I didn’t have to worry about power outages etc. After several hours of searching and one of my requirements was SSH access was a must for me. Two names stood out, A2 Hosting and BlueHost as the real contenders for me. This is a good site to look at the list of contenders.
Both are well known names in the hosting industry and I can probably recommend either one. I actually ended up choosing A2 Hosting even though everything in my gut was telling me to go with BlueHost. At the end I chose to go with A2 Hosting and regretted literally almost immediately, first thing I noticed it had used my domain name as my login credentials, this is bad, what if I wanted to change my domain, I actually didn’t think I would be locked into a domain name for my site, but everything was based on this. I am not sure if BlueHost does this as well ? Maybe someone can confirm for me. OK fine, so I logged a support ticket, thinking no problem, it can be changed.
So I waited and hour, 2 hours, 3 hours ? Geese I thought as a new client, I would get some sort of immediate attention should I run into any sign up issues. OK fine, maybe they busy so I take the dogs for a walk, thinking when I come back, I would of gotten a response, Nope! This was now 5 hours later and now I am just plain frustrated, so I login and CPANEL looks great, many icons/options (bear in mind I am relatively new here to web hosting, I did some many many years go, probably 10 to be host)
Anyway looked like they had many options. I thought let me test shell access while I am waiting, again my user name from my domain embedded everywhere, in the path, in the DB if I wanted to create a table, it had to be prefixed with my user name, all of this left a bad taste in my mouth, I tried to do a ‘who’, all of this has been disabled, I get the box is shared but too the point I couldn’t do a who on the server. For those looking for true SSH Shell Access .. these types of web hosts might not be the right fit.
If you looking for an easy to manage WordPress host with easy access to service without the fuss, then take a look at BlueHosting, I can’t in good conscience recommend A2 Hosting only because of my recent experience, but I also have nothing against them, I do believe they are are competitive hosting provider providing a service which is completely suitable for the novice person who doesn’t need or want SSH Access. They refunded me my money, no questions asked and this was one of the reasons I did sign up with them so I give them kudos for that and the zero fuss in getting my money back. Definitely take a look at them as an option.
On to AWS as Hosting Provider
Everything I saw, just didn’t leave a good feeling in my stomach. So I started thinking whether AWS would be a contender in this space. My immediate thoughts was AWS is too expensive, way more than I needed, probably didn’t offer the CPANEL that would make our lives easier, but thought why not. I remember looking at them for a little while ago and remembered they had a free tier service. What this essentially means is they will give you a certain amount free stuff before they start charging you for anything.
Before we get started. I am not trying to sell you on AWS, I don’t earn any commissions or sales and won’t make any money. I will discuss with my you my impressions and experiences. Ok now that the elephant is out of the room. The short end of the story is I do recommend AWS for personal hosting, there are many things I do like about it and some things I don’t, but it is going to be aimed at users who don’t mind using the command line like myself, but I will get more in to it. Continue reading if you I haven’t lost you yet.
OK first things first let’s talk about the Free Tier Service AWS offers. Head over to AWS if you want to understand more or click ont the below image.
Create an Account
Go check it out for yourself, you will need to supply a credit card before you can build anything (this was my biggest concern, but my fear is unfounded). They have a great billing interface and you can also setup alerts and notifications for your budget. I put $20 to be alerted as a maximum. I have had an AWS account and so far I have only been billed 1c (one cent) for playing around with snapshots. FYI, don’t create snapshots unless you need to, although I wouldn’t worry, it’s still very cheap so it won’t hit your pocket too much should you decide to, but just know you do get charged for Snapshots. Snapshots are basically a copy of your Environment / Virtual Machine as a backup.
Second thing is, before I forget, any file you edit make a backup off. For example if you start editing httpd.conf, make a backup first. I messed this up and ended up need to restore it from a 2nd image hence the snapshots, just backup any file to a backup first, do something like cp httpd.conf httpd.conf.orig and so on.
Ok once you login to your AWS account, you going to see a screen like this
You going to want to click on the Launch Virtual Machine. This will allow you to create a Virtual that you can test and play around on. I decided to go with the LightSail virtual image vs the EC2. I liked the price and it allowed me to remain in the $5 per month budget I had. From what I understand Light Sail is basically a simpler way to deploy a micro EC2 image without all the fuss and confusion around buckets, I wanted to keep it simple and looks like this was the route to go. Light sail is basically an EC2 Image.
Here is what they say so an explanation as the difference.
EC2 Instance vs LightSail
The next option is the type of Image you going to want, I went with the $5 and currently they offering the images free for the first month, so if you don’t like it, this is a great way to test it out and get rid of it if it doesn’t suit your needs to you hate it.
WordPress Instance or OS only ?
The first thing you going to want to choose is either Linux or Windows. Windows is $10 a month vs Linux which is $5. I recommend the linux option, but whatever suits your needs. If you purely looking to run a WordPress setup and do not want to run any other websites, pick the WordPress Setup (this the one I picked). Next time I would likely pick just the OS, since I do have a need for another setup and having wordpress as the main setup complicated things slightly. I have found so far the micro or $5 instance is very responsive, I don’t notice anything slow about it whatever. If you need to upgrade, you can upgrade to a more beefier EC2 instance if you need.
I have read if you want a CPANEL for your environment, there is something called ZPANEL. I haven’t looked into it too much, but it is available, but does not work with a bitnami setup, so I would suggest again to select a bare OS to begin with and not pick the WordPress setup if you think this is something you may need.
I can’t talk too much about price as this is a big concern for me as to what this will cost. I don’t have the answers yet but will report back. So far I know it it’s going to cost me $5 US a month Basically what they means is they will charge you up to $5 for the use as long as you don’t exceed the basic plan. It’s all going to depend how busy your site is and how much in resources you will consume.
I will come back and talk about this, once I have had a few months or my first month on what it is costing me so far. I have a WordPress Blog and a Website for my affiliate marketing which I use, so it is going to be an interesting experiment on how much this will cost me at the end of the day.
There is a cost calculator which is very overwhelming when you first use it, but perhaps I will come back and visit that as well for you folks who are interested, but I do recommend you take a stab at it if you want to to try work out some estimated costs. You can get it here AWS Simple Cost Calculator
Ok next things, once you have select a image, you will need to select a location, it will default to one near you, I was defaulted to Oregon which is fine since I am on the West Coast. I don’t think is going to matter too much, and I believe you can move it should it become and issue down the road. But for blogging purposes it really should matter too much as the access is going to be quick no matter which data centre you are in.
Next things, head over to your service. Click on Services and select either Light Sail or EC2. It is not too intuitive and the Dashboard is a little confusing, but you basically can head over to LightSail if you chose that as your service.
EC2 Container Service
You will then be presented with a nice Dashboard of your Services, they keep it nice and simple to manage.
Dashboard of your Services
From this point on you can now manage your Virtual Machine, reboot it etc. A free static IP is provided with the Lightsail service which is nice, so I recommend you use it. You can make snapshots, look at metrics to see how your VM is doing. Most of the time you will not need to come here often, but it’s a good idea to keep an eye on things.
Keep in mind you can only create 3 Free DNS Zones and they have to be top domains, basically you can attach 3 Domain names to your environment if you need. If you need more AWS has a DNS service which you can subscribe to. At the end of the day you probably not going to need more than 3 domain names.
Use only one Domain per site
From a google indexing perspective, you should never have more than 1 domain pointing at your site anyway else you will get penalized for duplicated content. I know it is tempting to point all your domains to a single site, but as much as I read, this is a very bad idea. FYI
Here is a screenshot of the managing the Environment and one of many of the metrics that you can look at. They have about 5 different metrics from networking, performance etc, it is pretty cool and allows you break it down from 1 Hour, 6 Hours, 1 Day, 1 Week, 2 Weeks to see how it is doing
Connecting to your Instance
Connecting to your instance is pretty easy. They take security in mind and show you how to setup a SSH tunnel. The HOW-TO articles are pretty easy to understand and pretty straight forward in the most part. Connecting, configuring is easy. It is setup with a bitnami image which is basically a preconfigured setup, so your username is bitnami, your home directories are all /home/bitnami. Apps reside in /opt/bitnami/apps and /opt/bitnami/apache2, so it is all relatively easy to find and access if you comfortable at the command line.
AWS really provides the simplicity in setting up a environment that belongs to you. If you do not sharing it with anyone else from a VM perspective, this is the environment for you. The environments do likely reside on shared infrastructure like the blade or piece of hardware you reside on, but the instance is 100% yours, you can do with it what you want. You can do ‘who’ and df and all they good stuff. I really think this is how web hosting should be today.
It may not be as cost effective for hosting companiues, but ultimately that is what I am looking for. Hosting companies should not be forcing you to have prefixes in my databases (meaning my tables don’t have to begin with username_) which is just silly and makes writing or using already created scripts problematic.I do recommend you check out AWS and try it for yourself, essentially it is free to try and you can quit up to a month if it is not for you. If you want real true SSH access with no strings attached, this is the setup for you.
If you looking for a web hosting provider which is much simpler, then checkout BlueHosting as an alternative. Would love to hear the feedback around your bluehost experience.
Personally I am loving the AWS experience so far, I feel I have full control and access to my environment. Over it still concerns me with costs and what this will cost me, but this is the type of environment I want. No strings attached, I can connect via SSH, I can backup and copy my files from local machines OSX, Linux without any problems. I take backups all the files I have modified and updated just in case something happens or I need to move to another provider. 95% of my development has happened directly on my image and I don’t feel it is slow at all.
I will report back in the next few months what my 1 month and 2 month costs have been. As well as other technical articles about setting up. Backing up with your script and share with you what I do to keep up my environment up and running. Feel free to comment and ask me any additional questions or if you feel I missed anything in this article. Also feel free to recommend and I will update it or create a separate post should I feel it warrants it.