Amazon EC2 Micro instances deeper dive

Amazon today announced a new instance type called “Micro instances” (t1.micro). The official announcement states that its comes with 613MB RAM, and up to 2 ECU compute units. It also supports both 32 and 64 bits. Starting at $0.02/hour, Micro instances are the least expensive instances offered by AWS.

To understand Micro instances, let us first see what is the underneath physical hardware powering them. In a previous post, we have analyzed AWS’s physical hardware and ECU. Using the same methodology, we see that Micro instances use the same physical hardware powering the standard instances, i.e., single-socket Intel E5430 processor based systems. In fact, they probably run on the same clusters as the standard instances.

To understand what is the actual computing power they deliver, we run a CPU-intensive application trying to grab as much CPU as we are allowed. We then use the UNIX command top to monitor the actual CPU usage. top computes the average utilization every second. We observe that the CPU cycle we are allocated varies wildly from second to second. For a short period, we have 100% of the single core, but during other times, we have a much smaller allocation — often as low as 2%.

To see the long term average, we monitor /proc/stat statistics reported by the Linux OS. Using the statistics reported at two time instances spaced sufficiently apart, we can compute the long term average (this is actually how top computes the second-by-second average). We observe that we get roughly 15% of the CPU cycle of a single core. Since a small instance (m1.small) at 1 ECU has 40% of a single core on the same physical hardware, we conclude that a Micro instance has roughly 0.35 ECU. This is consistent with the memory allocation, where a Micro instance has 613MB memory, roughly 35% of that of a m1.small instance (1.7GB).

In summary, a Micro instance has 0.35 ECU, but it can burst up to 2.5 ECU for a few seconds at a time. The price for the burst into 2.5 ECU is that you end up with almost no CPU cycle at other times, so that the average could be 0.35 ECU.

From a pricing perspective, you are only paying for roughly 25% of a m1.small instance. So, for the average CPU you are getting, it is a better deal (25% of the price for 35% of the CPU). However, to get that deal, you will have to tolerate the wildly fluctuating CPU allocation. If your application can tolerate it or if your application never needs to burst much beyond 0.35 ECU, Micro instances may be a good solution.

Even with Micro instances, AWS is still more expensive than some other competitors. For example, at Rackspace cloud, you can pay $0.03/hour, and get a 512MB instance which can potentially burst to use up 4 cores worth of CPU capacity (on a different processor based on AMD though). The key is that there is no limit to the burst at other cloud vendors. As long as there are no other VMs demanding the CPU, you get the full allocation for as long as you want. We frequently get the whole CPU for many hours at other cloud vendors, which is a great bargain.

12 Responses to Amazon EC2 Micro instances deeper dive

  1. Sven says:

    Hi,

    thanks for that quick review – that helps me a lot.

    As Amazon announced the micro instances I thought that it could be an alternative to the many small instances we are running but 2% of a CPU cycle is not sufficient at all. What a pity…

  2. Kris says:

    Thanks for the info.

    I was testing a rails app on a micro instance and saw some really interesting results. At times it just flies through requests but then slows down to almost nothing about 2 seconds after the high load started.

    I think Micro instances will fill an interesting niche. But for general purpose application servers that need predictable performance, a small or better instance would suit it much better.

  3. Ben Archuleta says:

    I just started using a micro instance to host a low traffic wordpress blog and I have found it to be adequate. I am one person and can not afford a small instance at $78 a month. Micro instances provide the horse power to serve the blog. Fedora, Apache, MySQL, PHP, Send Mail, and Word-Press.

  4. Jon Lesser says:

    This is really helpful. I wish Amazon would be so clear in their documentation. It seems they don’t want to be pinned down on what the non-burst ECU power is.

  5. Ng says:

    Ask: Can I use the Micro instance to run a WordPress Site?

  6. Pingback: The true cost of an ECU « Huan Liu's Blog

  7. Pingback: Amazon EC2 Micro Instance Roundup « Knowledge Networks

  8. Joe Yeary says:

    “wow, amazing article.Truly thank you! Really Great.”

  9. Thanks for the information. Do you have any data on the EC2 small instances? Do they hold up under CPU utilization?

    • huanliu says:

      All other instances, including the m1.small instance, have a guaranteed CPU allocation. However, because these instances compete for cache, memory bandwidth and disk bandwidth with other co-hosted VMs, you will see some performance variations.

  10. Zeljko says:

    To back what Kris said: I am getting same if not worst behavior of my rails apps on a micro instance. I am running it in Ireland, so maybe there is some difference in configuration there, but delays go up to 30 seconds at a time (for simulation I placed 10 rails instances and am hitting them randomly).

    Now running same simulation on a small instance – at least for now getting uniformed results.

    Also, if you want to run some permanent rails website/service on EC2, consider reserved instances, small reserved instance in Ireland comes down to $32 per month (US locations are cheaper).

Leave a reply to huanliu Cancel reply