EC2 Micro Instance Limitations
EC2 offers a lot of advantages over many web site hosting options. I am a bit of a control freak and like having full control over my web server. This has advantages and disadvantages of course, meaning more work but more flexibility. Running a WordPress blog on a micro instance can be a serious challenge. I have fought with getting my site to have a minimum level of stability, and here are some of my notes on what helped. Amazon offers a free EC2 micro instance for a year to new users, so it is a very attractive option for hosting a web site.
The EC2 micro instance is pretty cheap compared to the other system options that Amazon offers, but there are some caveats that may shock you after using it for a while. There are a couple of major problems with using this option for hosting a website:
- CPU Usage restrictions: If you use 100% CPU for more than a few minutes, Amazon will “steal” CPU time from the instance, meaning that they throttle your instance. This can last (from my observations) as long as five minutes, and then you get a few seconds of 100% again, then the restrictions are back. This will cripple your website, making it slow, and even timing-out requests.
- Limited Memory: The instance is limited to 613MB of RAM, and does not have a swap partition. If you run out of memory the system will panic and reboot.

If you have more than 1000 visitors or so a day, a micro instance probably isn’t worth your time. But for many small sites (like mine) it does make sense. I wasn’t aware of these limitations before setting up my site, and I very quickly ran into site reliability issues. Here are a few of the things that I did to make my site more stable.
You can save a lot of money by purchasing a reserved instance for a year, but my advice is to run for a few months before making the leap. If you find that your micro instance doesn’t cut it, you have just thrown away a chunk of cash.
So, let’s look at a few of the things you can do to make a WordPress site run reasonably well on a Micro Instance:
- Configuration:
- Tune Apache to run the correct number of threads.
- Use the minimum required memory for MySQL.
- Pre-cache your web pages.
- Use a content distribution network (CDN) such as CloudFront.
- Setup a swap partition.
- Configure alerting for CPU usage and network traffic.
- Be ready to rent a larger instance if you get a big traffic spike.
- Use a 32 bit operating system.


