はじめに
- 個人のアカウントとそれ以外のアカウントをどうやって使い分けようかと悩んでいたら...
- こちら に掲載されていた方法で試してみた
- また、
--filter
オプションを利用して出力結果をおお手軽に絞り込んでみる
参考
アカウントの切り替えをやってみよー!
準備
試した環境は OS X Mavericks
を使った。
以下のようにホームディレクトリ以下に .aws
ディレクトリを作成する。
mkdir ~/.aws
.aws/config
にアカウント設定(鍵設定)を行う。
[default] aws_access_key_id=AKxxxxxxxxxxxxxxxxxx aws_secret_access_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx region=ap-northeast-1 [profile hoge] aws_access_key_id=AKyyyyyyyyyyyyyyyyyy aws_secret_access_key=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy region=ap-northeast-1
切り替え
以下のようにして設定を切り替える。
aws ec2 ...
上記で .aws/config
内の default
が適用される。さらに...
aws ec2 --profile hoge ...
上記で .aws/config
内の profile hoge
が適用される!チョー便利!
--filter オプションを便利に使おう
昨年の年末にはリファレンスには載っていなかったような気がするけど --fileter
オプションを使うことで出力を絞り込むことが出来るようだ。
AMI の情報を取得してみる
以下のような感じで AMI
の一覧があったとする。
この一覧から Name
が test2
の詳細を取得したい場合には以下のように記載する。
aws ec2 describe-images --owners self --filter "Name=name,Values=test2"
実行すると以下のように Name
が test2
の AMI
の詳細情報が出力される。
{ "Images": [ { "VirtualizationType": "paravirtual", "Name": "test2", "Hypervisor": "xen", "ImageId": "ami-xxxxxxxx", "RootDeviceType": "ebs", "State": "pending", "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "DeleteOnTermination": true, "SnapshotId": "snap-xxxxxxx", "VolumeSize": 8, "VolumeType": "standard" } } ], "Architecture": "x86_64", "ImageLocation": "1234567890/test2", "KernelId": "aki-12345678", "OwnerId": "1234567890", "RootDeviceName": "/dev/sda1", "Public": false, "ImageType": "machine", "Description": "test2" } ] }
ちなみに --fileter
の書式は下記の通り。
--fileter "Name=KEY1,Value=Value(a),Value(b),Name=KEY2,Value(c)"
Name
に指定出来る KEY
はこちらに書かれているものが指定出来る(describe-images
の場合)のでリファレンス片手にチマチマやっていけばかなり便利になることうけ合い!
さいごに
- 作業効率 3 倍アップ!!(個人比)