Amazon Elastic Compute Cloud
Booting from Amazon EBS Feature Guide
Table of Contents
Overview ....................................................................................................................................................... 1
Tutorial #1: Running an Instance Backed by Amazon EBS ............................................................................ 2
Core Concepts ........................................................................................................................................... 2
Step 1: Login to the AWS Management Console ...................................................................................... 2
Step 2: Choosing an AMI ........................................................................................................................... 3
Step 3: Setting up a keypair ...................................................................................................................... 4
Step 4: Setting up a Security Group .......................................................................................................... 5
Step 5: Configuring an Instance ................................................................................................................ 6
Step 6: Connecting to the Instance ........................................................................................................... 7
Important Differences between Instances Backed by Amazon EBS and Local Instance Storage ............. 8
Cleaning Up: Terminating your Instance................................................................................................... 9
Tutorial #2: Stopping and Starting an Instance Backed by Amazon EBS .................................................... 10
Core Concepts ......................................................................................................................................... 10
Step 1: Setting Up Your Instance ............................................................................................................ 10
Step 2: Stopping an Instance................................................................................................................... 11
Step 3: (Re‐)Starting an Instance ............................................................................................................ 12
Cleaning Up: Terminating your Instance................................................................................................. 12
Tutorial #3: Bundling an Instance Backed by Amazon EBS ......................................................................... 13
Core Concepts ......................................................................................................................................... 13
Step 1: Make any Modifications ............................................................................................................. 14
Step 2: Create the Image ........................................................................................................................ 14
Step 3: Start a Clone ................................................................................................................................ 15
Cleaning Up: Terminating your Instance / Deleting the New AMI ......................................................... 16
Advanced Options for Instance Startup and AMI Creation ........................................................................ 17
Frequently Asked Questions (FAQs) ........................................................................................................... 18
What’s New ................................................................................................................................................. 19
Overview
Amazon EC2 is further enhancing the integration between its Elastic Block Store (EBS) and EC2
instance functionality. Amazon EC2 instances can now be booted directly from Amazon EBS
volumes, and customers now have much richer control over how block devices are exposed to
their instances. This allows larger root devices, faster launch times, greater instance durability,
and the ability to repair a mis‐configured instance. This also enables a number of very desirable
features that customers have been asking for, such as the ability to stop an instance without
terminating it, and the ability to create an AMI that is based directly on an existing instance.
With this feature release:
• Instances can now be launched with an Amazon EBS volume root device of up to 1 TB.
• Instances have several new states, most notably a stopped instance state. An instance
can now be stopped on demand, which shuts the instance down and releases its
associated compute hardware, but retains and preserves all of the its EBS volumes. A
stopped instance can be started again at a later time using the StartInstances request,
which will boot the instance on new compute hardware and bring it back to a running
state.
• The new CreateImage operation will create a new AMI and register it in one step that is
based directly on an existing instance.
• Customers now have full control over how block devices are exposed to their instances.
• Amazon Machine Images (AMIs) can now reference one or more Amazon EBS snapshots.
On instance launch, an Amazon EBS volume per snapshot will be created for each
instance on your behalf, which will then be attached to the instance before it begins to
boot.
• Instances have new attributes that can be used to control various aspects of their
behavior, such as preventing API based termination via the disableApiTermination flag.
• Amazon Machine Images (AMIs) can be more richly described. AMIs now have an
optional description that can be changed over time and allow for more human readable
names.
The goal of this guide is to provide several short tutorials that help you become acquainted with
some of the key new features. More detail about each of these sub‐features and others related
to booting from Amazon EBS can be found in the Amazon EC2 documentation at
http://aws.amazon.com/documentation/.
1
Tutorial #1: Running an Instance Backed by Amazon EBS
Core Concepts
Amazon Machine Images (AMIs) can now either be stored in Amazon S3 or as an Amazon EBS
snapshot. To the user, the first major difference appears when an Amazon EC2 instance is
created from that AMI. Specifically, the root device of an Amazon EC2 instance will be stored
locally on an instance if booted from an AMI backed by Amazon S3 and will be stored on an
Amazon EBS volume if booted from an AMI backed by Amazon EBS.
When root partition data is stored locally on the instance, the data will only persist as long as
the instance is running and the root device is up to a maximum of 10 GB of storage. However,
when using Amazon EBS volumes, the data can persist beyond the life of a running instance and
a root device can contain up to 1 TB of storage.
The goal of this tutorial is to provide a step by step walkthrough of launching an instance
backed by Amazon EBS.
Before you begin the tutorial, it is important to note that when using instances
backed by Amazon EBS you will be charged for both the Amazon EC2 instance hours
Note and the Amazon EBS resources consumed (e.g.‐ the Amazon EBS volume that serves
as the root device).
Step 1: Login to the AWS Management Console
To start an Amazon EC2 instance, you need to login to the AWS Management Console, which
can be found at http://aws.amazon.com/console. Simply click the “Sign in to the AWS Console”.
2
When prompted, enter your login information for your AWS account. If you do not have an
AWS account, you can create one using the simple wizard by selecting the “I am a new user”
radio button.
Step 2: Choosing an AMI
Once you have logged into the Console, you now can select the Amazon Machine Image (AMI)
that you would like to run. To get a list of the current AMIs, you can navigate to the “AMIs” tab
in the AWS Management Console as shown below.
3
Once you are on the AMIs tab, you can filter the AMIs you see so that you only look at those
that are AMIs backed by EBS by selecting the “EBS Images” option as shown below.
Once “EBS Images” have been selected, scroll down the list to right click on the “getting‐
started‐with‐ebs‐boot” image and select “Launch Instance”. Then, you will enter you into the
launch wizard for that AMI.
Step 3: Setting up a keypair
If you have already used the AWS Management Console (and your cookies are still configured),
you will automatically skip this step. If you are new to the AWS Management Console, you will
be prompted to create a private key pair used to access your instance, which will enable you to
securely log onto your instance after it is launched. To create this keypair, simply label the key
4
pair (we called it “gsg” below), click on “Create & Download your Key Pair”, and then
“Continue” to move on after you have downloaded the file.
Step 4: Setting up a Security Group
If you have already used the AWS Management Console and have the appropriate security
groups configured, you may automatically bypass this step or you can click the “Skip this” link
next to the Continue button below to use your existing security group. However, if you are new
to the AWS Management Console this step helps you configure your instances firewall. To
complete this step, simply fill in your security group name and description and click “Continue”.
5
Step 5: Configuring an Instance
Now you can configure your instance. First, you will want to select the number of instances
that you want to launch. We have chosen to launch “1” instance. We want to launch on a
small instance, since we do not need more compute resources for this demo. We also want to
select the gsg keypair we configured earlier. Lastly we want to highlight the gsg security group
we created earlier so that our firewall is properly configured. Once we have entered in our
changes, you simply click “Launch” as shown below.
If you see the page below, then congratulations are in order! You have just launched your first
instance backed by Amazon EBS.
6
Step 6: Connecting to the Instance
To log onto the instance, click on the “Instances” tab in the navigation panel as shown below.
If you have used Amazon EC2 previously you may notice that the instances start
faster, because the root device in Amazon EBS loads on demand. So, the instance
can start nearly immediately, while the AMIs backed by S3 need to load
New!
completely before the instance will be started.
Look at the instances launched to find your new instance. Note that the root device type on
your new instance will say “ebs”. Once your instance is in the “Running” state, right click on
your instance, and select the “Connect” option.
7
To connect to the instance follow the instructions in the pop‐up. If you are new to using PuTTY
and private keys, please visit the Amazon EC2 Getting Started Guide
(http://aws.amazon.com/documentation) for a more in depth tutorial.
Important Differences between Instances Backed by Amazon EBS and Local Instance Storage
Let’s take a moment to explore one of the important differences with instances
backed by Amazon EBS – the fact that it has an EBS volume. To see the volume,
click on the “Volumes” tab on the navigation bar. You can then see the fact that
New! there is an Amazon EBS volume that is attached to your newly created instance.
Also of note is that the volume size is 15 GB, which is bigger than the 10 GB
limitation associated with instances backed by local instance storage.
8
Since the goal of instances backed by Amazon EBS is to persist all of your data
beyond the life of an instance, the local storage is not attached to your instances by
Note default. If you wish to attach them, that advanced topic is covered in the Amazon
EC2 developer guide at http://aws.amazon.com/documentation.
Cleaning Up: Terminating your Instance
Once you have completed using your instance, you can terminate the instance. By default, this
will release your computing resources and delete Amazon EBS volumes that were attached at
instance launch (e.g.‐ the root device). However, if you attach additional Amazon EBS volumes
after instance launch (we did not do that in this example), those volumes will not automatically
be deleted.
There are ways to enable your Amazon EBS volumes to persist after terminating an
instance that are not covered in this document. If you wish to learn more, please visit
Note the Amazon EC2 developer guide at http://aws.amazon.com/documentation.
To terminate your instance, click on the “Instances” tab in the Navigation panel. Locate your
instance in the associated window and right click on it. Then select the “Terminate” option and
click “Ok” on the associated pop‐up.
9
Tutorial #2: Stopping and Starting an Instance Backed by Amazon EBS
Core Concepts
Using Amazon EBS volumes as root devices is valuable because Amazon EBS persists data
outside of an instance, effectively decoupling your data and compute resources. When you no
longer need your CPU resources, you can now turn them off and stop paying for the compute
cycles while preserving your root device data. When your instance is stopped, you will only
need to pay for your Amazon EBS storage costs, which can lead you to substantial savings.
To enable this functionality we have introduced two new concepts: Stop (compared to
Terminate) and Start (compared to Run). Stop will shut down your instance releasing the
compute resources, but it will not delete your Amazon EBS volume. When Stop is called, you
will retain your instance id, so that you can restart it at a later time. Start is then used to restart
instances that have previously been stopped. When the instance is restarted it will retain the
original instance id.
If you call shutdown from within your instance your instance will Stop by default.
You can override that behavior so that a shutdown will also act like a Terminate. This
Note is documented in more detail in the Developer Guide.
Analogously, Run can be used to start up a new instance from an AMI. Then, Terminate will
actually release the compute resources and by default delete your Amazon EBS volume. Once
Terminate is called you will not be able to restore the instance/Amazon EBS volume unless you
have an up‐to‐date snapshot of all of your storage.
Start and Stop only work with instances backed by Amazon EBS. This functionality
does not work with instances and AMIs backed by local storage or Amazon S3.
Note
The tutorial below walks you through stopping and restarting an instance.
Step 1: Setting Up Your Instance
This tutorial assumes that you have a running instance backed by Amazon EBS that you can
practice with and that you are already logged into the AWS Management Console. If you have
an instance running and are logged into the AWS Management Console, please skip to the next
step. If you need an instance backed by Amazon EBS, please follow the steps in Tutorial #1 to
get an instance running.
10
Step 2: Stopping an Instance
Stopping your instance will effectively shut it down while retaining the Amazon EBS volume. To
accomplish this go to the “Instances” tab in the Navigation panel, right click on your instance,
and click “Stop”. Your instance will move from the running to stopping to stopped state.
Once your instance is stopped, you can see that the Amazon EBS volume is still persisted (see
the vol‐3e954b56 shown below). To verify this for your own instance, click on the “Volumes”
tab on the Navigation panel, and look at the volume attached to your instance id. It should
reflect that the Amazon EBS volume is in use.
At this point you can treat that volume like any other Amazon EBS volume, and
modify it as necessary. For instance, you could detach it and re‐attach it to
another instance and repair problems on the file system or update software from
Cool!
a centralized instance.
11
Step 3: (Re‐)Starting an Instance
Once you are ready to restart the instance, you will need to click on the “Instances” tab in the
Navigation panel again, right click on your stopped instance, select the “Start” option, and click
“Ok” in the associated pop‐up as shown below.
At this point, the instance will move from the “Stopped” to “Pending” to “Running” state. Once
it is running, you can interact like any other running Amazon EC2 instance.
It is potentially important to note that the public IP address of your instance may
change after it has been stopped and restart. If this is not desired behavior you can
Note leverage Elastic IPs to create a consistent IP address.
Congratulations! You have successfully stopped and restarted your instance!
Cleaning Up: Terminating your Instance
Once you are done stopping and starting the instance, you will want to terminate your instance
to release the compute resources and delete the associated Amazon EBS volume. Simply click
on the “Instances” tab in the Navigation panel, right click on the appropriate instance, select
the “Terminate” option, and click “Ok” on the pop‐up as shown below.
12
Tutorial #3: Bundling an Instance Backed by Amazon EBS
Core Concepts
One common use case is the desire to make a point‐in‐time copy of the contents of the root
device so that another instance could boot off of that image. Images are typically created for
backup purposes or to make clones of the existing instance. Previously, this process on Linux
required you to create an image of your instance on the instance itself and no APIs were
available to assist. On Windows, there was an API that you could call to create an image of the
instance, but had to make another subsequent call to register the AMI. Now, there is one API
for both Linux/UNIX and Windows that allows you to bundle your AMI backed by Amazon EBS
and register it.
Previously you would also have to pay for the storage of the entire image in
Amazon S3, even if you just changed a couple of bits on the disk. Now, AMIs
backed by Amazon EBS store the full image the first time (e.g.‐the first time you
Cool! customize a public AMI it will copy the complete image), and thereafter you will
only store the changes on disk during subsequent create image calls (just like
Amazon EBS snapshots). Therefore, bundling AMIs through Amazon EBS change
makes it cheaper, faster, and easier to store backups of your instances.
The tutorial below walks you through bundling your AMI backed by Amazon EBS.
13
Step 1: Make any Modifications
This tutorial assumes that you have a running instance backed by Amazon EBS that you can
practice with and that you are already logged into the AWS Management Console. If you have
a customized instance running and are logged into the AWS Management Console, please skip
to the next step. If you need an instance backed by Amazon EBS, please follow the steps in
Tutorial #1 to get an instance running and subsequently make a change on the root device so
you can validate that the changes were saved after bundling.
Step 2: Create the Image
When you are ready to create your image from the AWS Management Console, you simply click
on the “Instances” tab in the Navigation panel. From there you right click on the desired
instance and select “Create Image (EBS AMI)” as shown below.
In the associated pop‐up, enter in a unique “Image Name”. For those familiar with the process
to create images of instances backed by local storage, the “Image Name” replaces the
“Manifest Name” field (e.g. s3_bucket/something.manifest.xml), which helped to identify the
Amazon S3 bucket and each unique AMI. Now, the field is far more human legible. The “Image
Description” is new and enables you to optionally create up to 255 characters of additional
information to help system administrators better decide which image to choose at startup.
After you have named your image appropriately, click on “Create This Image” to start bundling
your image.
14
Step 3: Start a Clone
It may take a couple of minutes to create your image. To check on the status, go to the “AMIs”
tab in the Navigation panel. Then, select “Owned By Me” as shown below to filter out the
other public or private AMIs you may be able to see.
Once the status of the AMI is “Available”, you can now launch a clone of the instance that you
imaged. To accomplish that simply right click on the AMI and select “Launch instance” and
complete the associated Launch Wizard (details on using the AWS Management Console
Launch Wizard can be found in Tutorial #1).
15
Congratulations! You have now successfully created a new image and started a clone of your
existing instance. Assuming you made changes to the AMI, take this opportunity to login and
verify that those changes were persisted.
Cleaning Up: Terminating your Instance / Deleting the New AMI
Once you are done experimenting with this tutorial, you will want to terminate your instances
to release the compute resources and delete the associated Amazon EBS volume. You will also
likely want to delete your AMI.
To accomplish terminate your instances, simply click on the “Instances” tab in the Navigation
panel, right click on the appropriate instance, select the “Terminate” option, and click “Ok” on
the pop‐up as shown below.
16
To delete your test AMI, you must first de‐register the AMI. You can do this by clicking on the
“AMIs” tab in the Navigation panel, selecting the “Owned By Me” filter, right clicking on the test
AMI, selecting “De‐register”, and clicking “Ok” on the associated pop‐up.
Once the AMI is de‐registered, you can now delete the snapshot. You can do this by clicking on
the “Snapshots” tab in the Navigation panel, selecting the “Owned By Me” filter, right clicking
on the test AMI, selecting “Delete Snapshot”, and clicking “Ok” on the associated pop‐up.
Now the test resources covered in this tutorial should be released.
Advanced Options for Instance Startup and AMI Creation
There are a number of helpful features in this release for power users. Specifically, when you
create a new AMI or Instance backed by Amazon EBS you can now specify snapshots to
automatically instantiate and mount on additional partitions. Additionally, when an instance
backed by Amazon EBS is in the “Stopped” state, you can modify the instance attributes kernel,
ram disk, user data, Amazon EBS snapshots to mount, and instance type before re‐launching it.
This enhancement enables you to upgrade your kernel and ram disk, and also makes vertical
scaling easier.
17
These concepts are not enabled through the AWS Management Console yet, so they are
outside the scope of this document. But these concepts are covered in detail in the Amazon
EC2 API, Command Line Tools, and Developer Guide documents found on
http://aws.amazon.com/documentation. Please refer to the RunInstances, CreateImage,
ModifyImageAttributes, and ModifyInstanceAttributes APIs and the associated tools for details.
Frequently Asked Questions (FAQs)
Question #1: What are the differences between stopping and terminating an instance?
The instance will first perform a normal shutdown in both cases. If the instance was stopped, it
will then transition to a stopped state, all of its Amazon EBS volumes will remain attached, and
it can then be started again at a later time. If the instance was terminated, attached Amazon
EBS volumes will be deleted where the associated deleteOnTerminate instance attribute is set
to true. The instance itself will also be deleted, and the instance cannot be started again at a
later date.
More advanced topics are covered in the command line tools, API, and Developer Guide
documentation at http://aws.amazon.com/documentation.
Question #2: How does stopping and starting an instance effect how it is charged?
You will not be charged for additional instance hours while the instance is in a stopped state. A
full instance hour will be charged for every transition from a stopped state to a running state,
even if transitions happen multiple times within a single hour. If the instance type was changed
while the instance was stopped, you will be charged at the new instance type’s rate once the
instance has been started. All of the associated Amazon EBS usage of your instance, including
root device usage, will be charged at the typical Amazon EBS prices.
Question #3: What limitations exist for stopped instances?
In addition to the limit on running instances, there is an additional limit on the overall number
of instances that you can have (whether running, stopped, or in any other state except for
terminated.) This overall instance limit is 2 times your running instance limit. The running
instance limit can be increased upon request via the instance limit request form.
Question #4: Do I need to share the Amazon EBS snapshots that an AMI references in order to
share the AMI?
No, only the AMI itself needs to be shared. The system will automatically provide the instance
access to the referenced Amazon EBS snapshots for the purposes of the launch.
18
What’s New
Change Description Release Date
Initial Release The initial release of the Boot December 2, 2009
from EBS Feature Guide.
19