AWS CLI を入れてみる

# 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を追加し直しました。

```text:.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](https://qiita-image-store.s3.amazonaws.com/0/142359/46abfac0-ce91-a60f-eb92-b0a311402d1b.png)

- 上記の情報をもとに、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インスタンスの情報を取得する](http://qiita.com/toshiro3/items/37821bdcc50c8b6d06dc)はタイトル通りの操作がよくまとまっているので参考になります。