Wouter
Wouter

Reputation: 1778

Can I start with an EC2 micro instance and upgrade without limit?

It's been a while since I used Amazon EC2 and I would like to know if I start with a micro instance, can I upgrade 1 step at a time until I reach a huge instance?

I remember from earlier days that there were some incompatible types (I think it was related with 32 and 64 bits), that prevented you from going from really small to really big.

Is this still the case anno 2014?

Thanks in advance.

PS: I know this is an easy question, but I could not find the answer.

Upvotes: 1

Views: 312

Answers (2)

Steffen Opel
Steffen Opel

Reputation: 64751

TL;DR

Absolutely, you just need to always use HVM EBS-Backed 64-bit images and can scale almost all current generation Amazon EC2 instance types up and down as you please (only exception are the GPU ones):

For the best performance, we recommend that you use current generation instance types and HVM AMIs when you launch new instances. For more information on current generation instance types, see the Amazon EC2 Instances detail page.

This is nicely illustrated by the Amazon Linux AMI Instance Type Matrix for example, with the relevant column being HVM EBS-Backed 64-bit.

Background

32-bit vs. 64-bit image type

As still visible in aforementioned matrix, the 32-bit vs. 64-bit image issue had indeed been a limit for Amazon EC2 instance type upgrades initially. However, AWS has introduced 64-bit Ubiquity in spring 2012 already, i.e. every instance type can be used with 64-bit images, which will make it easier for you to scale vertically (to larger and smaller instances) without having to maintain parallel (32 and 64-bit) AMIs indeed (see EC2 Updates: New Medium Instance, 64-bit Ubiquity, SSH Client for details).

Ever since, I always apply and recommend Eric Hammond's advise to only Use the Same Architecture (64-bit) on All EC2 Instance Types only (please note that the referenced previous generation instance types are not recommended anymore):

Though t1.micro, m1.small, and c1.medium will continue to also support 32-bit AMIs, it is my opinion that there is virtually no reason to use 32-bit instances on EC2 any more.

[...]

Sticking with 64-bit instances everywhere all the time gives you the most flexibility to switch the instance type of your running instances, reduces the choices and work necessary when building your own AMIs, and just makes life simpler.

PV vs. HVM Virtualization type

That being said, a new image type difference that can prevent instance type migrations has meanwhile become more relevant, namely the different Virtualization Types:

Amazon Machine Images use one of two types of virtualization: paravirtual (PV) or hardware virtual machine (HVM). Some current generation instance types support only HVM AMIs, while some previous generation instance types support only PV AMIs. [...] [emphasis mine]

The emphasized part already contains the solution, namely to only use the Current Generation Instance Types going forward, which come with a much better price/performance ratio and all sorts of other benefits anyway. Accordingly, you simply need to ensure to start with a HVM image and will be able to scale an instance vertically as you please.

Upvotes: 1

deepakpanth
deepakpanth

Reputation: 11

Yes, you can upgrade your EC2 reserved instances based on certain conditions like --

  1. Your new upgraded instance should be within the same region.
  2. Instance should be of Amazon Linux/UNIX product platform
  3. New instance should be of same instance family (for example, you can upgrade m3.medium to m3.large but cannot upgrade to c3.large).
  4. The configuration of targeted instance(upgraded one) must result in a unique combination of Availability Zone, instance type, and network platform.
  5. You should have enough applicable reserved instances to make the change. For example,you can upgrade 8 m1.smalls into 4 m1.mediums.

You can submit the modification request via the AWS Management Console or the ModifyReservedInstances API and there will be no additional cost for modifying your reserved instance.

Upvotes: 0

Related Questions