AWS
aws-cli

AWS CLI を入れてみる

More than 1 year has passed since last update.

AWS CLI をMacに入れる

AWS CLIとは

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 マネジメントコンソールにログインして、以下の情報を確認します。
  1. AWSマネジメントコンソールにログイン
  2. IAM
  3. ユーザー
  4. (ユーザー名の選択)
  5. 認証情報
  6. アクセスキーの作成 以下をコピーする
    • アクセスキー
    • シークレットアクセスキー

image

  • 上記の情報をもとに、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