ようへいの日々精進XP

よかろうもん

awc-cli でアカウントを切り替えて使うのと --filter オプションを便利に使おう

はじめに

  • 個人のアカウントとそれ以外のアカウントをどうやって使い分けようかと悩んでいたら...
  • こちら に掲載されていた方法で試してみた
  • また、--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 の一覧があったとする。

f:id:inokara:20140111154718p:plain

この一覧から Nametest2 の詳細を取得したい場合には以下のように記載する。

aws ec2 describe-images --owners self --filter "Name=name,Values=test2"

実行すると以下のように Nametest2AMI の詳細情報が出力される。

{
    "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 倍アップ!!(個人比)