AWSコマンドラインツール:aws-cli
AWSの運用として、外せないのはブラウザベースのManagementConsole。まず最初はここからですし、ドキュメントも豊富ですしね。
次の一手というとEclipseのAWS Management?などでしょうか?
GUI系は便利なのですが、CUIでも使えるものが必要なのではということで、ここ半年で大きく進化した(らしい)aws-cliを使ってみました。
aws-cli
2012年12月のリリースからスゴイスピードでバージョンアップされてきたようです。PythonのAWS SDKをラップしたような形で実装されてるとのこと。2013年8月の最新は 0.14.x系ですね。でも手元のAmazon Linuxに標準インストールされているのは 0.9.3 で2013年5月ごろのバージョンでした。AWSの新しいサービスにどんどん対応していっているとの事なので、新しいサービスが必要な人は、手動でいれてもいいのかと。
インストール手順と準備
このマニュアルに沿って作業すればすぐに使えます。
インストール
Pythonのパッケージコマンド? pipi (easyinstallの後継?) でインストールする手順が書かれてるので、それにそって進めれば大丈夫だと思います。
僕は、Amazon Linuxに入ってるバージョンをそのまま使いました。
コマンド補完
これがやたら便利です。コマンド名 aws の後ろの引数を補完してくれる設定。
Amazon Linuxの場合、関連パッケージが入ってなかったので次のコマンドで追加インストール
# sudo yum install aws-cli-zsh
使う準備
とりあえず使うなれば、次の環境変数を設定すれば使えます。リージョンは必須じゃないですが設定しておいたほうが、コマンドが簡潔かも。
$ export AWS_ACCESS_KEY_ID=
$ export AWS_SECRET_ACCESS_KEY=
$ export AWS_DEFAULT_REGION=
ガッツリ使う場合には、ConfigFileを読ませるようにすると、コンフィグ中のprofileを切り替えてコマンドを実行できるので、開発・本番とかを渡り歩いたりするのには良いようです。
便利なもの
現状、awsコマンドの出力はデフォルトがjson形式です。json prosessorのjqを使うと、出力結果の絞込みや色づけなどが出来て便利です。最初 jq のあとの . (ピリオド) の必要性がわからずコマンド実行できませんでした。。。
$ aws ec2 describe-availability-zones | jq .
{
"ResponseMetadata": {
"RequestId": "78fb91c4-12c2-4735-bf93-fe068d4547fd"
},
"AvailabilityZones": [
{
"RegionName": "ap-northeast-1",
"Messages": ,
"ZoneName": "ap-northeast-1a",
"State": "available"
},
{
"RegionName": "ap-northeast-1",
"Messages": ,
"ZoneName": "ap-northeast-1c",
"State": "available"
}
]
}
なお、次のように引数を与えると text形式とかtable形式にできます。
$ aws ec2 describe-availability-zones --output text available ap-northeast-1a ap-northeast-1 available ap-northeast-1c ap-northeast-1 RESPONSEMETADATA 839df567-df82-4735-8f75-84680298ed58
参考サイト
次のサイトにお世話になりました。ありがとうございます。
その他
もともとJavaベースで開発されていたEC2 API Toolsというツールが発祥のようです。こういうツールが、どんどん出てくるところにサービスのダイナミックさを感じました。