Update Aug 11th 2017: The t1.micro is a previous generation instance and it has been replaced by the t2.micro, which has a better performance profile. See T2 Instances.
Lets take a look at how Amazon EC2 t1.micro instances work so that we can understand when to use them. By the end of reading this you should have a clear view of the instance’s behavior so you can understand its performance.
Amazon Web Services EC2 t1.micro instances provide a small amount of consistent CPU resources and allow you to increase CPU capacity in short bursts when additional cycles are available. They are well suited for lower throughput applications and web sites that require additional compute cycles periodically.
When NOT to use Amazon EC2 T1.Micro Instances
The t1.micro instance provides different levels of CPU resources at different times (up to 2 ECUs). By comparison, the m1.small instance type provides 1 ECU at all times. The following figures compare the CPU usage of a t1.micro instance vs a m1.small instance for the same work load.
The figures above show the profile for an application that isn’t appropriate for a micro instance. The application requires continuous data-crunching CPU resources for each request, resulting in plateaus of CPU usage that the micro instance isn’t designed to handle.
The above figures show another profile that isn’t appropriate for a micro instance. Here the spikes in CPU use are brief, but they occur too frequently to be serviced by a micro instance.
The final example that isn’t appropriate for a micro instance. Here the spikes aren’t too frequent, but the background level CPU between spikes is too high to be serviced by a micro instance.
When to use t1.Micro Instances
Here the spikes in CPU use are brief and also far apart with very low background level CPU. This is usually a website with low traffic and/or well tuned with medium traffic where the spikes can be hours or days apart (cron backup scripts for example).
The t1.micro instance is designed to operate with its CPU usage at essentially only two levels: the normal low background level, and then at brief spiked levels much higher than the background level. Amazon allows the instance to operate at up to 2 EC2 compute units (ECUs). This is more than the m1.small and the same as the m1.medium. The above figure shows a CPU load profile that IS appropriate for a micro instance.
Your setup and web application will be different but for the most part your CPU profile should fall within one of these 4 examples.
AMI Optimization for Amazon EC2 T1.Micro Instances
If you’ve decided to use a t1.micro instance, make sure to design the AMI to run on “600” MB of RAM or less, limit the number of recurring processes that use CPU time (e.g., cron jobs, daemons), if you are running popular PHP applications such as WordPress, Drupal, Joomla, etc then make sure to install an opcode cache and use plugins/extensions which focus on moving processing from the CPU to memory.
Examples of using Amazon EC2 T1.Micro Instances successfully
Next, a small website with about 100,000 page views per month, also hosted on a t1.Micro. As with LEMP, I stripped and custom tuned LAMP since this was an existing server where the owner prefers Apache.