What is an AMI? Why do I need it?

Home»AWS Support Community Forum»What is an AMI? Why do I need it?

What is an AMI? Why do I need it?

Taral Shah

AWS AMI is a special type of OS, which has pre configured software application. It is very helpful to boot an EC2 instance.
This is like template of a computer’s root volume or in OS analogy like Ghost image, which is ready to be deployed and use.
An AMI can be of different OS supported by AWS. The user has to find useful AMI and launch an instance with that AMI.
The user can launch more than one instance with same AMI. The AMI can be made private or public or shared with specific accounts. The user can also create AMI from their existing istance.

This discussion contains 3 replies and has 105 views.


Tarun Dave

The AMIs can be free and paid. The free AMIs are public or the one belonging to your account and the user will be charged for running instance hours for that AMI.

The paid AMI is generally purchased from AWS Marketplace as developers of those AMI charge little premium either for the configuration of software or license of the software. The charge for paid is AMI per hour only but it would be little more than standard running instance.


Taral Shah

Thanks Varun but to go little deeper as architecture wise instead of cost wise AWS has two types of AMIs. The EBS backed and Instance Store backes AMI.

The EBS backes AMI is little more popular as it allows additional functionality like cost saving, fast, more size, ease of user and now also supports easy copy and migration of AMI.


Aldrin Leal

Most people like to “customize AMIs”, which basically means to:

a) Stop The Instance
b) Create a Snapshot
c) Store the AMI (which is basically a manifesto + Default Amazon Kernel Image (AKI) Id + Root Filesystem Image + EBS Snapshot) into the EC2 Registry
d) Start the Instance

I strongly advise you *NOT* to do that for medium-to-large projects (key aspect: Beyond a single Region), for one sole reason: AMIs are bound to a single Region, so this id is valid only at this region.

Also, this process is so error-prone and wasteful (you’ll have to do that in EACH REGION) that it makes my eyes roll whenever I hear about it

OTOH, it makes much more sense to develop some good habit and use chef scripts + user-data-fu in order to bring versionable (I’m a huge fan of Software Change Management), portable (you just keep reference of the AMI ids), and well-behaved modification scripts. Done correctly, most will boot under 15 mins from zero to hero.

THEN you could consider generating an AMI, but I think chef + user-data is enough for 80% of the cases of customizations.

A good primer on user-data comes from… me:


(While we use Ubuntu, now even Amazon Linux as well as some CentOS Images now support cloud-init)

Also, go for chef:


You must be logged in to reply to this topic.