Thought I'd give a quick tutorial on how you resize a Boot Drive on an EBS backed EC2 Windows Instance.
So you are running a windows instance on EC2, and you realize you're running out of disk space on your boot drive. If you work in most companies you don't have time to determine the root cause of the increasing disk usuage and remedy the situation. Even if you did, who would want to when you can just add another 50gb of disk space for $5/mo and be on your way to other revenue generating task(a task that probably brings in more than $5/mo).
If you pretty much live in elasticfox for managing your aws environment this will be helpful to you, since ElastixFox doesn't allow you to do this. From looking at the aws console UI, it looks like it will allow you to do this but I haven't tried it. This tutorial simply describes what you need to do, using the Amazon EC2 Command Line Tools.
** In order for you to follow along with the steps below you will need to have the ec2 command line tools setup correctly on your box. If you don't have them setup there is a tutorial here: Setting up the EC2 Command Line Tools
We have our EC2 instance, and our C: is half full, but for whatever reason the used space is increasing by 100MB per day, we want to increase out boot drive to 100GB, but elasticfox simply doesn't provide the required field "device"; which is needed to specify that we want to attach an EBS volume as the boot device.

The first thing we do is we "STOP" the instance. Do not "TERMINATE" the instance, just stop it. In our EC2 Command Line we will do the following:
ec2-stop-instances i-ffffffff
Then wait about 30 seconds or so, and run this command:
ec2-describe-instances i-ffffffff
The purpose of calling describe instances on this instance is to ensure the instance is stopped. We can see in the response that the instance is indeed stopped.
INSTANCE i-ffffffff ami-dddddddd stopped test 0 t1.micro 2010-12-14T14:30:14+0000 us-east-1a
Now since we know this instance is stopped we'll detach the boot ebs volume.
ec2-detach-volume vol-cccccccc
Now this time we don't really care if it's detached yet or not, we don't bother calling describe volumes. We just create a snapshot of this drive. (To optimize system uptime, you may want make the snapshot before you shut down your instance and detach your volume, but for the purposes of this example I've chosen this sequence.)
ec2-create-snapshot -d "My Snapshot Of My Boot Drive" vol-cccccccc
This drive has about 24gb of used space so I waited about 10 minutes or so and now I'm going to call describe snapshots to make sure my snapshot has completed by using the snapshot id that was in the response from the execution of the ec2-create-snapshot command.
ec2-describe-snapshots snap-aaaaaaaa
The response indicates that my snapshot is complete:
SNAPSHOT snap-aaaaaaaa vol-cccccccc completed
Now we need to create the new 100GB EBS Volume, and load our new snapshot(snap-aaaaaaaa) on to the new 100GB EBS Volume. We need to also keep in mind that we must create the new EBS Volume in the same Availability Zone that our EC2 Instance was created in. The ec2-instance we are working with in this example happens to be in the "us-east-1a" availability zone.
ec2-create-volume -s 100 --snapshot snap-aaaaaaaa -z us-east-1a
We wait until our volume is created by executing describe volume:
ec2-describe-volumes vol-eeeeeeee
AWS responds that the volume is available:
VOLUME vol-eeeeeeee 100 snap-aaaaaaaa us-east-1a available 2010-12-14T15:36:59+0000
Finally we attach the volume as our boot device, the "-d /dev/sda1" here is the key piece of configuration for windows to recognize this device as your boot device:
ec2-attach-volume vol-eeeeeeee -i i-ffffffff -d /dev/sda1
EC2 should reply with the status "Attaching", and now we start our instance.
ec2-start-instances i-ffffffff
Check that it is running by calling describe instances
ec2-describe-instances i-ffffffff
When describe returns with a status of "running" you should be able to RDP into your instance assuming the OS is ready and configured to accept an RDP connection. However, when we log back in and go to my computer, it still says Total Space: 50GB.... it didn't work? EC2 says it's a 100GB volume, what is wrong?

So there is one more step involved. The virtual disk your instance is connected to is actually 100GB, but windows won't automatically add the new storage to your existing logical C: partition. In order to get windows to add the new space to your C: do the following:
- Open Server Manager
- Expand the Storage Node
- Click on Disk Management under Storage on the left hand side
- Wait for Disk Management to load, then right click inside the rectangle containing the C: so that it gets diagonal gray lines through it as depicted here:

- Click "Extend Volume..."
- Click the next and finish buttons all the way through the "Extend Volume" wizard without modifying any of the default values, and you will be left with this:

Your done, you can delete your old EBS Volume that was previously your boot drive and you can delete your snapshot. Keep in mind this tutorial is for example purposes only, alot of these steps can be done without shutting down your instance. However once it's time to detach your boot ebs volume you will want to shut your instance down gracefully.
Hope this helps. Let me know if you have any questions or ideas for new posts, I've gotten a lot of great suggestions so far, keep them coming.
Here is the full command line dialog i ran to do this if you're intested:
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\Mark>cd my documents
C:\Users\Mark\My Documents>cd ec2-api
C:\Users\Mark\My Documents\ec2-api>ec2
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)
C:\Users\Mark\My Documents\ec2-api>ec2-stop-instances i-f0a39e9d
INSTANCE i-f0a39e9d running stopping
C:\Users\Mark\My Documents\ec2-api>ec2-describe-instances i-f0a39e9d
RESERVATION r-37e7a35d 000000000000 default
INSTANCE i-f0a39e9d ami-9801f7f1 stopped test 0 t1.micro 2010-12-14T14:30:14+0000 us-east-1a windows monitoring-disab
led ebs hvm
BLOCKDEVICE xvdh vol-ba9243d2 2010-12-14T14:30:20.000Z
BLOCKDEVICE /dev/sda1 vol-bc9243d4 2010-12-14T14:30:20.000Z
C:\Users\Mark\My Documents\ec2-api>ec2-detach-volume vol-bc9243d4
ATTACHMENT vol-bc9243d4 i-f0a39e9d /dev/sda1 detaching 2010-12-14T15:11:56+0000
C:\Users\Mark\My Documents\ec2-api>ec2-describe-volumes vol-bc9243d4
VOLUME vol-bc9243d4 50 snap-ad3addc0 us-east-1a available 2010-12-14T14:30:19+0000
C:\Users\Mark\My Documents\ec2-api>ec2-create-snapshot -d "My Snapshot Of My Boot Drive" vol-bc9243d4
SNAPSHOT snap-49789b24 vol-bc9243d4 pending 2010-12-14T15:17:54+0000 000000000000 50 My Snapshot Of My Boot Drive
C:\Users\Mark\My Documents\ec2-api>ec2-describe-snapshots snap-49789b24
SNAPSHOT snap-49789b24 vol-bc9243d4 completed 2010-12-14T15:17:54+0000 100% 000000000000 50 My Snapshot Of My Boot Drive
C:\Users\Mark\My Documents\ec2-api>ec2-create-volume -s 100 --snapshot snap-49789b24 -z us-east-1a
VOLUME vol-a48051cc 100 snap-49789b24 us-east-1a creating 2010-12-14T15:36:59+0000
C:\Users\Mark\My Documents\ec2-api>ec2-describe-volume vol-a48051cc
'ec2-describe-volume' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\Mark\My Documents\ec2-api>ec2-describe-volumes vol-a48051cc
VOLUME vol-a48051cc 100 snap-49789b24 us-east-1a available 2010-12-14T15:36:59+0000
C:\Users\Mark\My Documents\ec2-api>ec2-attach-volume vol-a48051cc -i i-f0a39e9d -d /dev/sda1
ATTACHMENT vol-a48051cc i-f0a39e9d /dev/sda1 attaching 2010-12-14T16:07:02+0000
C:\Users\Mark\My Documents\ec2-api>ec2-start-instances i-f0a39e9d
INSTANCE i-f0a39e9d stopped pending
C:\Users\Mark\My Documents\ec2-api>ec2-describe-instances i-f0a39e9d
RESERVATION r-37e7a35d 000000000000 default
INSTANCE i-f0a39e9d ami-9801f7f1 ec2-50-16-77-81.compute-1.amazonaws.com domU-12-31-39-0B-5E-92.compute-1.internal running test 0 t1.micro 2010-12-14T16:08
:20+0000 us-east-1a windows monitoring-disabled 50.16.77.81 10.214.97.92 ebs hvm
BLOCKDEVICE xvdh vol-ba9243d2 2010-12-14T14:30:20.000Z
BLOCKDEVICE /dev/sda1 vol-a48051cc 2010-12-14T16:07:02.000Z
C:\Users\Mark\My Documents\ec2-api>