プログラミングノート

一からものを作ることが好きなエンジニアの開発ブログです。

EC2 Command Line Tools 備忘録

使っていないとすぐに忘れそうなので。

リファレンス

AMI
全イメージ ec2-describe-images -x all
Amazonが公開しているイメージ ec2-describe-images -o amazon
自分で登録したイメージ ec2-describe-images -o self
インスタンス
インスタンス一覧 ec2-describe-instances
起動 ec2-run-instances ami_id [-k keyname]
停止 ec2-terminate-instances instance_id
ポートを開ける ec2-authorize default -p port
ElasticIP
取得済みIP一覧 ec2-describe-addresses
新規取得 ec2-allocate-address
解放 ec2-release-address ip_address
インスタンスに割当 ec2-associate-address -i instance_id ip_address
割当を解除 ec2-disassociate-address ip_address
EBS
ボリューム一覧 ec2-describe-volumes
ボリューム作成 ec2-create-volume -z region -s size
スナップショットから作成 ec2-create-volume --snapshot snapshot_id -z region
インスタンスに割当 ec2-attach-volume -d device -i instance_id volume_id
割当解除 ec2-detach-volume volume_id
ボリュームを削除 ec2-delete-volume volume_id
スナップショット一覧 ec2-describe-snapshots
スナップショットの作成 ec2-create-snapshot volume_id
スナップショットを削除 ec2-delete-snapshot snapshot_id

Elastic Load Balancer

確認 elb-describe-lbs
作成 elb-create-lb lb_name --availability-zones region --listener "protocol=HTTP, lb-port=80, instance-port=80"
削除 elb-delete-lb lb_name
インスタンスを追加 elb-register-instances-with-lb lb_name --instances instance_id [,instance_id]
インスタンスを外す elb-deregister-instances-from-lb lb_name --instances instance_id [,instance_id]
ヘルスチェック elb-describe-instance-headlth lb_name

Tips

SSH接続
1. ログインキー作成
$ ec2-add-keypair app_server | sed -e "1d" > app_server.id
$ chmod 400 app_server.id

2. SSH
$ ssh -i app_server.id root@ec2-xxxxx.amazonaws.com
AMIをS3にバックアップ
1. 証明書をインスタンスに転送
$ scp -i app_server.id *.pem root@ec2-xxxxx.amazonaws.com:/mnt

2. EC2上でイメージ化
$ cd /mnt
$ ec2-bundle-vol -d /mnt --privatekey {pk-xxx.pem} --cert {cert-xxx.pem} --user {account_number}

3. S3へアップロード
$ ec2-upload-bundle --bucket {bucket_path} --manifest image.manifest.xml --access-key {access_key} --secret-key {secret_key}

4. AMIリストに登録
$ ec2-register {bucket_path}/image.manifest.xml
EBSのマウント
1. インスタンスに割当
$ ec2-attach-volume -d /dev/sdc -i {instance_id} {volume_id}

2. ファイルシステムを作成(インスタンス上で)
$ yes | mkfs -t ext3 /dev/sdc
$ mkdir /vol
$ mount /dev/sdc /vol
$ df

3. 割当を解除 
$ umount /vol
$ ec2-detach-volume {volume_id}