AWS CLI 基本コマンド(早引き)

主に業務で使用するコマンドのメモ。現場が変わると支給マシンが変わることが多く設定の度にGoogle先生を頼るのを辞めるため。
使ったものは順次追記していきます(多分)。

エンジニアっぽい言い回しが嫌いなので砕けた言葉でメモしていく。

**OSはLINUX**

#AWS CLIとは
簡単に。

AWSを触り始めてから長いことAWSをGUIでポチポチいじっていた。
S3: ドラッグ＆ドロップ→キャッシュクリア
CloudFront: キャッシュクリア
Lambda: ドラッグ＆ドロップ→デプロイ
などなど。

一回の作業が慣れれば１分でおわるにしても"塵積も"な訳で、お金もらってやってる以上こんなことではいけない。小学生でもできる。
なんならボタンの押し忘れが１回でもあれば想定通り動かないものだったりする。小学生以下だ。

そこでコマンドを通じて上記のような日々の繰り返し業務を短縮できるのがAWS CLI(AWS Command Line Interface)だ。
コピペですむし、タイポがあればコマンドが通らない(はず)だからミスも軽減！ってわけ！

#インストール
まずは肝心のAWS CLI(AWS Command Line Interface)をインストール。

引用： https://qiita.com/m1ul24/items/603e987e39464a65f5a4


#ユーザ作成&アクセスキー取得

大抵現場であればお偉いさんがやってくれるから、そうであればパス

↓自分でおこなう場合↓
引用:https://qiita.com/miwato/items/291c7a8c557908de5833

##ユーザーとロールについて
様々な現場をいったりきたりして、現在４つ目。
関わったAWSアカウントの数も４つで、相手企業さんからしたら僕が全権限をもった状態でAWSの中身を見られたら困る訳で(データを壊したり・盗んだりなど)
そのためにルール(ロール)をあたえられた役職アカウント(ユーザー)が発行される。

ルールは細かく設定でき、
**S3というサービスの特定のバケットを触ることは愚か見ることしかできない**
なんて細かく設定できる。

役職アカウントを現場のお偉いさんが作成したあと、大抵社内メールで送られてくるのが以下二つ

**AWS Access Key ID [None]: 12Example180109120
AWS Secret Access Key [None]: ABC6789Example698789**

英数字ランダムのパスワード(Key)みたいなもの。

これをローカルのマシンに初期設定(default)しておくことで、現場でターミナルから企業さんのAWS内部のサービスを触れる。


#初期設定

引用:https://qiita.com/shonansurvivors/items/1fb53a2d3b8dddab6629

AWS CLIインストール直後に
aws configureコマンド
を打つと複数の入力を１個ずつ求められる。

```
$ aws configure
AWS Access Key ID [None]: アクセスキーIDを入力
AWS Secret Access Key [None]: シークレットアクセスキーを入力
Default region name [None]: リージョンを入力(ap-northeast-1等)
Default output format [None]: jsonなどのformat
```

↓今回の例の場合↓

```
$ aws configure
AWS Access Key ID [None]: 12Example180109120
AWS Secret Access Key [None]: ABC6789Example698789
Default region name [None]: ap-northeast-1
Default output format [None]: json
```

上記の設定を行うと、

~/.aws/config
~/.aws/credentials
のそれぞれに設定内容が書き込まれます。

###~/.aws/configの内容

~/.aws/configには、リージョンと出力形式が書き込まれます。

```
$ cat ~/.aws/config
[default]
region = ap-northeast-1
output = json
```

###~/.aws/credentialsの内容
~/.aws/credentialsには、アクセスキーIDとシークレットアクセスキーが書き込まれます。

```
$ cat ~/.aws/credentials 
[default]
aws_access_key_id = 12Example180109120
aws_secret_access_key = ABC6789Example698789
```

以上。

##プロファイル(profile)

ここまでで、１ユーザーの登録ができました。
これは企業さんのAWSのユーザーです。

では、自分個人のAWSのアカウント発行して、休日にいじって行きたい場合はどうするか。
自分のAWSでユーザーを作成してマシンに別のユーザーとして登録することが必要となる。ローカルに登録するユーザーの単位をプロファイルと呼んでいる。


#逆引きリファレンス

##プロファイルの作成(profile)

`$ aws configure --profile プロファイルの名前`

```
$ aws configure --profile my-aws-account1
```
コマンド入力後、登録する際に求められる内容は初期と同じなので割愛

##現在使用中 != default プロファイルの確認


```
$ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>           manual    --profile
access_key     12Example180109120   shared-credentials-file    
secret_key     ABC6789Example698789 shared-credentials-file 
```

##defaultプロファイルの変更

`AWS_DEFAULT_PROFILE` という環境変数にプロファイル名を設定するだけ

```
$ export AWS_DEFAULT_PROFILE=my-aws-account1
```

確認コマンド


```
$ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile           my-aws-account1           manual    --profile
access_key     *************ExAmPle   shared-credentials-file    
secret_key     *************ExaMpLe   shared-credentials-file 
```