Make ami public

ec2-modify-image-attribute ami-XXXXXXX --launch-permission -a all

Create Volume

ec2-create-volume -s 1000 -z us-east-1a
# VOLUME  vol-836fcbea    1000            us-east-1a      creating        2010-03-22T13:29:40+0000

Attach volume

ec2-attach-volume vol-1bda3f72 -i i-c44992ad -d /dev/sdh

# small images 32bits, large and extra large use 64 bits

Instance types: m1.small, m1.large, m1.xlarge

ec2-describe-images -o self -o amazon
ec2-add-keypair gsg-keypair
chmod 600 id_rsa-gsg-keypair ; ls -l id_rsa-gsg-keypair

Run instance

# ami-25b6534c    ec2-public-images/fedora-core4-apache-mysql.manifest.xml
ec2-run-instances ami-25b6534c -k gsg-keypair
ec2-describe-instances i-xxxxxx

Net access

ec2-authorize default -p 22
ec2-authorize default -p 80
# sysadmin IP
ec2-authorize default -p 0-65535 -s 1.0.1.1/32

ssh -i id_rsa-gsg-keypair root@domU-12-34-31-00-00-05.usma1.compute.amazonaws.com

Terminate image

ec2-terminate-instances i-xxxxxx
or run /sbin/shutdown -h now on the server

Modify image, copy certificate to server

scp -i id_rsa-gsg-keypair pk-HKZYKT3HXV4ZBZQ55CLO.pem \
    cert-HKZYKT3HXV4ZBZQ55CLO.pem \
    root@domU-12-34-31-00-00-05.usma1.compute.amazonaws.com

And create new image

ec2-bundle-vol -d /mnt -k ~root/pk-HKZYKT3HXV4ZBZQ55CLO.pem \
    -c cert-HKZYKT3HXV4ZBZQ55CLO.pem -u <account_id> -s 1536

Upload it to S3

ec2-upload-bundle -b <your-s3-bucket> -m /mnt/image.manifest.xml \
    -a <aws-access-key-id> -s <aws-secret-access-key>

Register image

ec2-register <your-s3-bucket>/image.manifest.xml

# deregister

ec2-deregister ami-5bae4b32

Remove from S3

ec2-delete-bundle -b <your-s3-bucket> -p image -a <aws-access-key-id> -s <aws-secret-access-key>

Get public IP address for the instance

curl  http://169.254.169.254/2007-12-15/meta-data/public-ipv4

EU datacenter

ec2-authorize --region eu-west-1 -p 5666 -s 209.62.65.66/32 default