After using Windows Azure to host my WordPress blog for around 6 months, I eventually lost patience with their product offering and support team and starting looking elsewhere. I was receiving ongoing database connection issues and intermediate site outages.
The “This site is currently not available… please try again later” message became very common. This is due to the way Azure manages it’s resource limitations – while other providers will simply throttle your site once you reach a certain level of CPU or RAM usage, Azure actually stops all connections to your website and takes it offline. If you ran a large corporate website, you would enable to scaling options that will allow the instances to grow when there is increased demand however this comes at a financial costs and for me, I couldn’t justify it for a “hobby” blog.
After limiting my WordPress memory usage, I couldn’t understand how I was going over my memory allocation. I opened 2 support cases with Microsoft however after more than 20 emails back and forth, the engineer couldn’t explain what was happening and kept referring me to the pricing page for Azure. Very frustrating, eg “ME: As I have stated 3 times now, I want to understand how the memory usage is calculated – when looking at the monitoring section for the last 7 days, the highest the MemoryWorkingSet gets to is 451.5MB. My WordPress instance is hard limited to 256MB and PHP limited to 128MB of memory. So why am I now constantly being charged for using over 1GB of memory?”. So I gave up on Azure and went over to Amazon.
I figured I would try out their T1 Micro Instances that would cost be around $175 per year (after 12 months of being free). I certainly liked this section of their policy, it was something that Azure didn’t do:
When the Instance Uses Its Allotted Resources – We expect your application to consume only a certain amount of CPU resources in a period of time. If the application consumes more than your instance’s allotted CPU resources, we temporarily limit the instance so it operates at a low CPU level. If your instance continues to use all of its allotted resources, its performance will degrade. We will increase the time that we limit its CPU level, thus increasing the time before the instance is allowed to burst again.
I’m happy for the performance to be degraded, that doesn’t bother me since this is really just a personal blog. Through the AWS Marketplace, I order the WordPress powered by Bitnami, in the Australian data center on a t1.micro EC2 instance.
After a couple of hours of configuring and migrating content, I’m now fully up and running on AWS. So far so good.