Many available tools
Be careful: you should never use your Master account credentials in production!!
Instead, create specific users with reduces ACL with AMI
An AWS credential:
A unified client for most AWS services
aws <service> <commande> <options>
To install (Linux and OSX):
pip install awscli
To install (Windows):
Test it: aws help
Via a configuration file generated with aws configure
export AWS_DEFAULT_OUTPUT="table"
or explicitely with --output
or in the configuration file ~/.aws/config
in the default section: output=text
~/.aws/config
)[default]
aws_access_key_id=<default access key>
aws_secret_access_key=<default secret key>
region=us-west-1 # optional, to define default region for this profile
[testing]
aws_access_key_id=<testing access key>
aws_secret_access_key=<testing secret key>
region=us-west-2
Launch an instance aws run-instances --image-id <value> --key-name <value>
--security-groups <value>
Show instances aws describe-instances
Stop an instance aws terminate-instances --instance-ids <value>
Create a security group
aws create-security-group --group-name <value> --description <value>
Add a rule aws ec2 authorize-security-group-ingress --group-name <value> --protocol tcp --port <value> --cidr <value>
Delete a rule aws revoke-security-group-ingress --group-name <value> --protocol <value> --port <value> --cidr <value>
List services supported by AWS CLI: aws help
Help and list of commands for a specific service: aws s3 help
apt-get install euca2ools
yum install euca2ools
brew install euca2ools
curl –O http://downloads.eucalyptus.com/software/euca2ools/3.1/source/euca2ools-3.1.1.tar.xz
tar xvfz ./euca2ools-3.1.1.tar.xz
cd euca2ools-3.1.1
sudo python setup.py install
In ~/.euca/conf.ini
[global]
default-region = <region>
[user default]
key-id = XXX
secret-key = XXX
[region aws:*]
user = default
[region aws:eu-west-1]
ec2-url = https://ec2.<region>.amazonaws.com
euca-tools:
euca-describe-regions
aws cli:
aws ec2 describe-regions
euca-tools:
euca-describe-availability-zones
aws cli:
aws ec2 describe-availability-zones
euca-tools:
euca-create-keypair <key-pair name>
aws cli:
aws ec2 create-key-pair –key-name <key-pair name>
euca-tools:
euca-import-keypair -f <public key file> <key-pair name>
aws cli:
aws ec2 import-key-pair --public-key-material <public key file> –-key-name <key-pair name>
euca-tools:
euca-describe-keypairs
aws cli:
aws ec2 describe-key-pairs
euca-tools:
euca-describe-instances
aws cli:
aws ec2 describe-instances
euca-tools:
euca-describe-instances <id>
aws cli:
aws ec2 describe-instances --instances-ids <id>
aws ec2 discribe-instances --filters "Name=instance-type,Value=m1.small"
euca-run-instances <ami id> \
--region eu-west-1 -g <sec-group name> \
-t <instance type> -k <key-pair name> -n 4
aws ec2 run-instances --image-id <ami id> \
--security-groups <sec-group name> \
--instance-type <instance type> --key-name <key-pair name> \
--count 4
euca-tools:
euca-stop-instances <id>
aws cli:
aws ec2 stop-instance –-instance-ids <id>
euca-tools:
euca-start-instances <id>
aws cli:
aws ec2 start-instance –-instance-ids <id>
euca-tools:
euca-terminate-instances <id>
aws cli:
aws ec2 terminate-instances –-instance-ids <id>
euca-tools:
euca-reboot-instances <id>
aws cli:
aws ec2 reboot-instances –-instances-ids <id>
ssh -i <key file> <user>@<ip or dns>
Depending on the AMI, user
can be ec2-users
, ubuntu
, …
euca-tools:
euca-create-group <group name> --description "<description>"
aws cli:
aws ec2 create-security-group –-group-name <group name> -–description "<description>"
```euca-authorize <group name> -P tcp -p <port> -s 0.0.0.0/0```
aws ec2 authorized-security-group-ingress –-group-name <group name> \
–-protocol tcp –-port <port> –-cidr 0.0.0.0/0
(Optional --egress
, ingress by default.)
euca-revoke <group name> -P tcp -p <port> -s 0.0.0.0/0
aws ec2 revoke-security-group-ingress –-group-name <group name> \
–-protocol tcp –-port <port> –-cidr 0.0.0.0/0
0.0.0.0/0
(Optional --egress
, ingress by default.)
euca-tools:
euca-delete-group <group name>
aws cli:
aws ec2 delete-security-group –-group-name <group name>
euca-tools:
euca-allocate-address
aws cli:
aws ec2 allocate-address
euca-tools:
euca-release-adress <ip>
aws cli:
aws ec2 release-address –-public-ip <ip>
euca-tools:
euca-associate-address -i <id> <ip>
aws cli:
aws ec2 associate-address –-instance-id <id> --public-ip <ip>
euca-tools:
euca-deassociate <ip>
aws cli:
aws ec2 disasscotiate-address –public-ip <ip>
euca-tools:
euca-create-volume --zone <avail. zone> --size <size in GB>
aws cli:
aws ec2 create-volume –-availability-zone <avail. zone> –-size <size in GB>
euca-tools:
euca-attach-volume -i <instance id> -d <device> <volume-id>
aws cli:
aws ec2 attach-volume –-instance-id <id> --volume-id <volume-id> --device <device>
euca-tools:
euca-detach-volume -i <instance id> <volume-id>
aws cli:
aws ec2 detach-volume –instance-id <id> --volume-id <volume-id>
euca-tools:
euca-detach-volume <volume-id>
aws cli:
aws detach-volume –-volume-id <volume-id>
Note: attaching an EBS volume to multiple instances is generally a bad idea!
euca-tools:
euca-delete-volume <volume-id>
aws cli:
aws ec2 delete-volume –-volume-id <volume-id>
euca-tools:
euca-create-snaphot <volume-id>
aws cli:
aws ec2 create-snapshot –-volume-id <volume-id>
Tip: successive snapchots are created incrementally.
Snapchots are created asynchronously.
euca-tools:
euca-create-volume --zone <avail. zone> --snapshot <snapshot-id>
aws cli:
aws ec2 create-volume –-availability-zone <avail. zone> --snapshot-id <snapshot-id>
euca-tools:
euca-describe-snapshots <volume-id>
aws cli:
aws ec2 describe-snapshots –-snapshot-id <snapshot-id>
euca-tools:
euca-delete-snapshot <volume-id>
aws cli:
aws ec2 delete-snapshot –-snapshot-id <snapshot-id>
mkfs.ext4 /dev/sdb && mount /dev/sdb/ /mnt/disk1
Note: it is recommended to unmount EBS volumes while creating a snapchot to avoid data corruption.
sudo pip install s3cmd
s3cmd --configure
$HOME/.s3cfg
s3cmd ls
s3cmd mb s3://<bucket>
s3cmd ls S3://<bucket>
s3cmd put <file> s3://<bucket>
s3cmd put --acl-public --guess-mime <file> s3://<bucket>
s3cmd get s3://<bucket>/<file>
s3cmd del s3://<bucket>/<file>
s3cmd rb s3://<bucket>
s3cmd cp s3://<bucket>/<file>
s3://<other bucket>/
s3cmd mv s3://<bucket>/<file>
s3://<bucket>/<file>
s3cmd info s3://<bucket>
s3cmd du s3://<bucket>
s3cmd sync test/ s3://<bucket>/