Introduction

By default Amazon Webservices doesn’t assigns the ephemeral storage. I don’t know whether or not this is done to favor their EBS products. But once you created a machine. It’s a real pain in the ass to enable it. At the moment of writing there is no way to add ephemeral storage to an existing EC2 instance. The only way I found to do this is to migrate the instance to a new one.

Procedure

Step 1: Shutdown the EC2 instance you wish to migrate.Step 2: Write down the associated and attached EBS volumes from the EC2 instance.Step 3: In the EC2 dashboard, go to the ‘Volumes’ section of the ‘Elastic Block Store’ menu, from there right click on all attached volumes and detach these.Step 4: Go to the instances menu, right click on your EC2 instance and select ‘Launch more like this’. It’s also possible to create one from scratch but with the ‘Launch more like this’ option you will have the same configuration pre-selected.

Now from the ‘Storage’ options you can select the ‘Edit Storage’ option.
Press ‘Add new volume’ and select ‘Instance Store 0’. This is your ephemeral storage. It will depend how much you can assign. An m1.medium instance will have one 410GB disk drive.

More information at: Amazon EC2 Instance Store – Amazon Elastic Compute Cloud.Step 5: Once your EC2 instance is created, stop it.Step 6: Once your EC2 instance has been shutdown, move to the ‘Volumes’ section again and detach the newly created volume from the newly created EC2 instance.Step 7: Attach the old volumes from the to migrate instance to your newly created one and attach it on the associated mappings. (Don’t worry, /dev/sda1, is ok to assign)Step 8: Delete the volume created from the ‘Launch more like this’ option and start your new EC2 instance. You can also delete the old EC2 instance. We won’t need it anymore.

The only downside of this procedure is that the new instance will have a new instance id. Hopefully Amazon adds a way to do this once the runtime has been created.