After over two years with Bluehost a very sad thing had happened to me and I didn’t even know it. I lowered my expectations of webhosting. It happened slowly, a gradual change that I didn’t even notice until one day this site taking 10-15 seconds to load was normal. Even worse, I almost let my webhost (Bluehost) convince me it was my fault. After many calls to support over the last six months the diagnosis was always the same: “The server looks fine, your sites are the problem. Here are some resources to help you speed up your site.” Followed by links to optimize WordPress.
Let’s backup a minute. It wasn’t always this way. I moved from GoDaddy’s hosting over to Bluehost a little more than two years ago. It’s not specifically clear in my memory, but I recall it being a fairly uneventful move. For a year, my sites performed decently. Nothing to write home about, but there wasn’t much downtime to speak of. Then things slowly started to change.
I started to get notifications from my uptime monitors that this site was down once or twice a day. Then, three or four times and finally before the move I setup more intense monitors at PingDom, which revealed it to be more like 15-20 times a day. The site would often slow to a crawl and the WordPress admin panel was almost unusable. I called these issues into to support many times over the last few months. They finally advised that I upgrade from the standard account to the professional account. I did and my issues persisted. They again tried to pawn it off on me. I had a bit of time between projects and figured an experiment was in order.
Bluehost vs. Amazon Web Services
If you haven’t heard of AWS yet, prepare to be amazed. To be honest, I don’t even comprehend the full breadth of what AWS is capable of. I do know that you can virtualize just about anything in their cloud and it is amazingly fast, redundant, and highly available. Did I mention that they have a FREE tier? Well, they do, and it includes a Virtual Private Server (VPS) with 30GB of storage on SDD hard drives!
Sold. I build an EC2 Micro instance with Ubuntu Linux and created an exact duplicate of my site for comparison. Here are the Apache Bench test results of the sites side by side:
First, the Bluehost site:
root@XXXXXX:~# ab -c 10 -n 1000 https://www.freewheelings.com/ This is ApacheBench, Version 2.3 <$Revision: 1528965 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking www.freewheelings.com (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: Apache Server Hostname: www.freewheelings.com Server Port: 80 Document Path: / Document Length: 46200 bytes Concurrency Level: 10 Time taken for tests: 501.149 seconds Complete requests: 1000 Failed requests: 141 (Connect: 0, Receive: 0, Length: 141, Exceptions: 0) Non-2xx responses: 1 Total transferred: 46584207 bytes HTML transferred: 46154215 bytes Requests per second: 2.00 [#/sec] (mean) Time per request: 5011.491 [ms] (mean) Time per request: 501.149 [ms] (mean, across all concurrent requests) Transfer rate: 90.78 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 6 30.1 1 635 Processing: 1346 4998 9984.0 2650 94801 Waiting: 1135 4693 9644.0 2382 92987 Total: 1346 5004 9983.3 2651 94807 Percentage of the requests served within a certain time (ms) 50% 2651 66% 3071 75% 3439 80% 3643 90% 4640 95% 20271 98% 46326 99% 59211 100% 94807 (longest request) root@XXXXXXX:~# ---------------------------------------------------
A few interesting things there. First, the entire test took 500+ seconds to complete. This is primarily because 5% of the requests took in excess of 20 seconds to serve. This is the exact same behavior I see regularly on my site. It is generally slow, but usable. Then, all of a sudden requests slow to a crawl, the site becomes unusable, and my monitors report it down. Every day this happened.
Now, let’s take a look at the exact same test on my FREE AWS account:
root@AXXXXXX:~# ab -c 10 -n 1000 http://amazon.freewheelings.com/ This is ApacheBench, Version 2.3 <$Revision: 1528965 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking amazon.freewheelings.com (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: Apache/2.4.7 Server Hostname: amazon.freewheelings.com Server Port: 80 Document Path: / Document Length: 46926 bytes Concurrency Level: 10 Time taken for tests: 23.932 seconds Complete requests: 1000 Failed requests: 19 (Connect: 0, Receive: 0, Length: 19, Exceptions: 0) Total transferred: 47235168 bytes HTML transferred: 46925281 bytes Requests per second: 41.78 [#/sec] (mean) Time per request: 239.321 [ms] (mean) Time per request: 23.932 [ms] (mean, across all concurrent requests) Transfer rate: 1927.45 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 2 5.3 0 60 Processing: 160 233 276.3 180 3220 Waiting: 75 137 278.3 89 3111 Total: 160 234 279.1 182 3221 Percentage of the requests served within a certain time (ms) 50% 182 66% 198 75% 205 80% 208 90% 217 95% 230 98% 1642 99% 1727 100% 3221 (longest request) root@XXXXXXX:~#
Notice the total time on this test is less than 24 seconds compared to the Bluehost server’s almost 10 minutes? 99% of the response times on the AWS server are faster (by a lot) than the Bluehost server’s single fastest response time. Also notice that the longest response time on AWS is 3221 (milliseconds) compared to Bluehost’s 94807.
We found the problem. What do we do about it?
We move, of course. But it’s a lot easier said than done to move a half dozen sites with DNS, SSL Certificates, email and webhosting. It becomes complicated even further when you give up the comfort of cPanel. So where do you put all that stuff?
Amazon Web Services – This is where I’ve moved the sites
Technical Disclaimer: cPanel is a thing of the past. At AWS you’re a building your own Virtual Private Server (VPS). You are responsible for everything from installing Apache to setting up MySQL to taking care of backups and server updates. This route is not for everyone and requires a high level of technical competence. If you need help Freewheelings does provide Consulting Services.
Google Domains – Who knew? Google Domains BETA is providing registrar service. It’s $12 / year for a .com, which is probably cheaper than your current host. The best thing about this service is that they provide free email forwarding for up to 100 addresses per domain. Email / DNS / Domain registration problems solved. FREE. And mind-blowingly easy to use.
Even if you’re moving your domain hosting elsewhere I highly recommend moving your domain registration over to Google. The idea behind Google Voice is: The last phone number you’ll ever need. I think we should look at Google Domains the same way. Why do we drag our domain registrations from webhost to webhost with our websites? It just doesn’t make any sense.
NameCheap – Remember how your webhost used to charge you some insane amount of money ($50) for SSL certificates? At NameCheap a standard SSL certificate is $9, yes, $9. Of course, you have to install it yourself and get Apache configured and all of that fun stuff, but it’s worth the extra effort.
Conclusion
This is how I did away with my ~$300/year Professional hosting account at Bluehost and doubled my site speed in the process. I imagine it’s a steep learning curve making the jump to AWS and the command line from cPanel, but results are results.
Brandon, thank you so much for writing this post! I have been with Bluehost for a couple of years and I am constantly frustrated with the load times when I test mine and my client’s site with Pingdom.
I am really interested in the setup you’ve described and would like to pick your brain about any potential risks with migrating client sites from BH to AWS. As well as any help in better understanding the AWS system in regards to WordPress.
I’d like to possibly emulate your setup in my corner of the world and set myself apart from some of my very traditional but also very established competitors.
I’d be happy to discuss any work or trade for your time and insight. I know both are valuable.
Your post brought me hope and joy today! I hope you are well!
Hi Kenny,
Thanks for stopping by. I personally cannot sing the praises of AWS loud enough. If you have some specific questions and wanted to post them here I can try to get to them as time permits. That way other Googlers can also reap the benefits. What’s on you mind?
Thanks for sharing your experience. I’ve been considering the same thing. This got me looking into a number of things, and I hadn’t even realized a lot of my old domains were renewing at $15/mo with Bluehost, not their current $12. Looks like Google Domains also provides free private registration. Sold!
Are you still running your half dozen sites on a single EC2 Micro instance? How close to do you come to maxing that size out?
One thing I like about Bluehost is the “unlimited” storage. It has been nice to use as an easy place to dump stuff to.
Hey Josh, thanks for stopping by. I’m still running about a half dozen sites on the micro instance. The experience this far has been fantastic. It did take me a while to get the instance tweaked to run reliably. If I remember correctly I did a lot of trial and error testing with the apache prefork settings, created a swap for extra memory, and setup service monitoring using monit to get started. It’s been pretty much on auto-pilot since I wrote this article. It get a notification about once a week that my sites are down for a couple minutes, but I have everything configured on the server to effectively resolve its own problems.
On another note, I’ve been doing a lot of work with AWS in general since writing this article. At work I’m building custom Disaster Recovery Solutions using the AWS platform. I’m more and more blown away with its capabilities the more I use it. I’m responding to this comment from an AWS Workspaces virtualized Windows 7 machine that is full integrated with my office Directory and services. The possibilities are endless.
If you have the technical know how to make the move to AWS you certainly won’t regret it…
Regards,
Brandon
Brandon, I have been with Bluehost since the time i started my online business. I am quite happy with their services. Bluehost discounts and offers for the first timers are very much affordable. But in recent times i am following up with AWS and get to hear lots of good reviews and experiences. And this article with great insights are valuable and finding AWS worth a try. Thanks for sharing.
Thank you! I plan to move to AWS this month. After all is said and done, and your free tier expired, do you end up paying less, or is it about the same but much better performance?
Hi Eric,
An EC2 Micro instance works out to be about $14 / Month with on demand pricing. You can cut this down considerably, as low as $6 / Month by purchasing a reserved instance. AWS has a sweet calculator that you can use to determine costs associated with any of their services. Here’s what you’re looking at for a Micro instance:
Great information and tip(s) on AWS’ EC2 VPS instance plans. By “3 Yr All Upfront Reserved,” is that effectively a prepaid three year hosting plan like many web hosting companies sell? What does the “reserved” mean, though?
$6.03 per month is attractive, especially coming from AWS. How do they bill for storage and bandwidth though for a Micro instance, is it unlimited, up to certain limits for bandwidth?
Cheers,
Doug
Reserved is paying up front. The rest is not very expensive at all. My web server runs about a dozen sites and my data transfer costs are usually under $1 and it’s $3 a month for a 30GB SSD drive.
I’m late to the discussion but I’m doing the same thing. Over the years my website has grown to include a web applications and BH just isn’t cutting it. I recommend using the Bitnami LAMP Stack and their cloud hosting service on top of your AWS Instance. It’s free if you only have one instance and their documentation is excellent. Definitely do the reserved instance. I did a 3-year T2 Micro and it’s actually cheaper than BH! Ditching the cPanel is like taking the training wheels off your bike. There’s a whole world of amazing useful tools you can get through NPM, Composer, GitHub. And my whole site doesn’t go down because some dipsh*t on the same box as me at BH accidentally executed an infinite while loop and brought the whole server crashing down.
Thanks Brandon for the write up. I have been with BH for 3 years now and my site speed is very slow and not to talk of when I launch my mobile app. I just created a free account with AWS and I am planning on migrating from BH to AWS. My BH email sometimes not delivered to certain mail provider and lots of spam.
I would certainly need help in migrating to AWS
No problem. Good luck on your move. It’s so worth it. I’ve been running on AWS for more than a year now with no issues to report!
Great post, you convinced me to give it a try. Did you also install mysql etc yourself? RDS is not free.
Did you just use the EBS SSD to store everything or did you try the S3 service ?
tx