If you are at the decision point of wondering which Amazon Web Services EC2 server type to host your Drupal website, you have hopefully already gone through a checklist to ensure that using AWS for your Drupal hosting makes sense. Starting at the lowest price point to access Amazon's EC2 web server platform, the "micro" instance is bound to be one of the most popular levels of service.
The AWS EC2 server types range from micro, to standard small, medium, large and a wide variety of other specially set up instance types for edge case needs. When selecting an EC2 micro as your Drupal web host, you'll want to take care to determine if the micro instance is suitable for your Drupal website's needs.
Micro instances are classified by AWS as "burstable", as in they provide a small amount of consistent CPU resources and will allow for an increase in CPU capacity in short bursts when additional cycles are available. They are well suited for lower throughput applications and web sites that consume significant compute cycles periodically but very little CPU at other times for background processes, daemons, etc.
Amazon provides a series of charts highlighting CPU demand profiles which it deems are inappropriate for micro instances.
Considering Computer Cycles
Basically, if your application has consistently intensive computing needs you're going to want to use a standard class instance type, small, medium, or larger depending on your requirements. But even though at a steady state micro instances receive a fraction of the compute resources that standard small instances do, micros can intermittently and briefly burst up to 2 ECU's (EC2 Compute Unit). This is double the number of ECU's available for a standard small instance.
Therefore, if you have a website with relatively low computing needs, like a blog, or a development site that doesn't receive much or any public traffic, a micro instance could be perfect suited for your project. A Drupal site that has the vast majority of its traffic coming from anonymous visitors (which can have completely cached pages delivered) can work quite well with a micro instance. Full caching that is augmented with APC or Varnish can help even a little micro server hundreds of requests.
However, if your Drupal site handles a lot of authenticated traffic (logged in users are considered authenticated), with users accessing dynamic content and viewing uncached pages, you're definitely going to want to consider a larger capacity standard class instance, or set up a robust auto-scaling system to roll out extra instances on demand to handle the load. Trying to do any work as an admin when your Drupal site has many modules installed, especially memory hogs like Rules or Views, can potentially bog down your micro server. You can utilize AWS Cloudwatch alarms to monitor CPU utilization of your micro instance to help determine if it is being overwhelmed.
Confused about hosting Drupal with Amazon AWS?
If you're considering using Amazon AWS to host your Drupal website, but haven't worked with it before, you might want to check out our other tutorials and blog posts on working with Amazon AWS. Specifically, review our tutorial on running a Drupal website on Amazon Web Services.