AWS CLI をMacに入れる
- 環境
- Mac OS 10.10.5
- Python3 3.5.1
- Python 2.7.10
- 参考 http://dev.classmethod.jp/cloud/aws/mac-aws-cli/
AWS CLIとは
- 公式
- AWS コマンドラインインターフェイス(AWS CLI) https://aws.amazon.com/jp/cli/
- AWS CLI のインストールと設定 http://docs.aws.amazon.com/ja_jp/streams/latest/dev/kinesis-tutorial-cli-installation.html
AWS コマンドラインインターフェイス (CLI) は、AWS サービスを管理するための統合ツールです。ダウンロードおよび設定用の単一のツールのみを使用して、コマンドラインから複数の AWS サービスを制御し、スクリプトを使用してこれらを自動化することができます。
Amazon S3 との間で効率的にファイル転送を行うため、AWS CLI にシンプルなファイルコマンドセットが追加されました。
- 要は、AWSのマネジメントコントロールに行かずにターミナルからawsサービスを制御するツールです。
早速インストール
- パッケージ管理ツールのpipが入っていなければインストールする
$ sudo easy_install pip
これだけでpipのインストールはok.
- pipをを用いてawscliをインストール
$ sudo pip install awscli
- 以下のように表示されたらインストール完了
Successfully installed awscli botocore bcdoc six colorama docutils rsa jmespath python-dateutil pyasn1
- AWS CLIがインストールされたことを確認します
$ aws --v
正常にインストールされなかった場合
- 私の場合、以下のようなエラーが出て少しハマりました。
- どうやらPythonのファイルの読み込みに失敗しているようでした。
Traceback (most recent call last):
File "/usr/local/bin/aws", line 19, in <module>
import awscli.clidriver
File "/Library/Python/2.7/site-packages/awscli/clidriver.py", line 17, in <module>
import botocore.session
File "/Library/Python/2.7/site-packages/botocore/session.py", line 26, in <module>
import botocore.credentials
File "/Library/Python/2.7/site-packages/botocore/credentials.py", line 22, in <module>
from dateutil.parser import parse
File "/Library/Python/2.7/site-packages/dateutil/parser.py", line 43, in <module>
from . import tz
File "/Library/Python/2.7/site-packages/dateutil/tz/__init__.py", line 1, in <module>
from .tz import *
File "/Library/Python/2.7/site-packages/dateutil/tz/tz.py", line 23, in <module>
from ._common import tzname_in_python2, _tzinfo, _total_seconds
File "/Library/Python/2.7/site-packages/dateutil/tz/_common.py", line 2, in <module>
from six.moves import _thread
ImportError: cannot import name _thread
- 原因は、Python3を入れたときにPython2.7の環境変数を削除してそのままにしていたからでした。
- なので、環境変数を編集してPython2.7を追加し直しました。
.bash_profile
export PATH=/Library/Frameworks/Python.framework/Versions/3.5/bin:$PATH
export PYTHONPATH="/Library/Python/2.7/site-packages:$PYTHONPATH" //追加
- 反映させます。
$ source ~/.bash_profile
これで上記のエラーは解決して無事awscliが使えるようになりました。
AWS CLIを設定する
- AWS マネジメントコンソールにログインして、以下の情報を確認します。
- AWSマネジメントコンソールにログイン
- IAM
- ユーザー
- (ユーザー名の選択)
- 認証情報
- アクセスキーの作成 以下をコピーする
- アクセスキー
- シークレットアクセスキー
- 上記の情報をもとに、aws cliからアクセスの設定する。
$ aws configure
AWS Access Key ID [None]:****************
AWS Secret Access Key [None]:****************
Default region name [None]: ap-northeast-1 //東京リージョンなら左の通り
Default output format [None]: json //出力形式の設定。json、text、table のいずれか、デフォルトではjson
- これでAWS CLI の設定は完了。以下のコマンドでリージョン内で稼働している全EC2インスタンスの情報を取得できるので試しに確認してみよう。
aws ec2 describe-instances
- 無許可リンクですみませんが、toshiro3さんのAWS CLIを使ってEC2インスタンスの情報を取得するはタイトル通りの操作がよくまとまっているので参考になります。