AWS コマンドラインインターフェイス(CLI)についてです。これはコマンドライン(Macのターミナル等)からAWSを操作することのできるツールでシェルスクリプトなどで操作を自動化できたり、使いこなせると非常に良さそうなので試してみることにしました。Amazon EC2 CLI とは違いますので注意してください。私も最初間違えました。
前提条件
まずAWS CLIをインストールするための要件は以下の通りです。
- Windows, Linux, OS X, or Unix
- Python 2.6.3 or later
- Pip
今回はMacを対象にしてますのでPythonは既にインストールされていると思いますが一応確認。
$ which python /usr/bin/python $ python --version Python 2.7.5
pipのインストール
pip とは Python で書かれたパッケージソフトウェアをインストール・管理するためのパッケージ管理システムです。まずは pip からインストールしますが、そのために easy_install を使用します。これも最初からインストールされているはずです。
$ which easy_install /usr/bin/easy_install
それでは実行します。
$ sudo easy_install pip Password: Searching for pip Reading http://pypi.python.org/simple/pip/ Best match: pip 1.5.6 …
以下のような出力であれば完了です。
… Installed /Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg Processing dependencies for pip Finished processing dependencies for pip
一応確認しておきます。
$ which pip /usr/local/bin/pip $ pip --version pip 1.5.6 from /Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg (python 2.7)
AWS CLIのインストール
pipを使ってAWS CLIをインストールします。
$ sudo pip install awscli Downloading/unpacking awscli Downloading awscli-1.5.2.tar.gz (252kB): 252kB downloaded Running setup.py (path:/private/tmp/pip_build_root/awscli/setup.py) egg_info for package awscli …
以下のような出力であれば完了です。
… Successfully installed awscli botocore bcdoc six colorama docutils rsa jmespath python-dateutil pyasn1 Cleaning up...
一応確認しておきます。
$ which aws /usr/local/bin/aws $ aws --version aws-cli/1.5.2 Python/2.7.5 Darwin/13.4.0
動作確認
AWS CLIの設定をしないといけないのですが、これは何パターンかありますのでまた別記事でまとめたいと思います。今回はAWSに接続して操作が出来るかだけを試します。
ということで超簡単なシェルスクリプトを作成しました。ユーザー情報を取ってくるだけですね。あと、AWSにアクセスするためにアクセスキーと秘密鍵を環境変数にセットしてます。
#!/bin/bash export AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxx' export AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxx' aws iam list-users
ユーザー情報を取得できました。結果はデフォルトの場合JSON形式で返ってきます。
$ sh usercheck.sh { "Users": [ { "UserName": "test", "Path": "/", "CreateDate": "2014-10-21T09:12:35Z", "UserId": "xxxxxxxxxxxxxxxxxxxxx", "Arn": "arn:aws:iam::xxxxxxxxxx:user/test" } ] }
こんな感じで大体雰囲気はつかめたので後は色々なコマンドを試してみようと思います。