AWS CLI setup

Getting used to AWS Service 2/N

公開日: 2023-08-04
更新日: 2023-09-25

  Table of Contents

AWS CLIとは?

Def: AWS Command Line Interface

  • AWSコマンドラインインターフェース(AWS CLI)は, コマンドラインシェルでコマンドを使用してAWSサービスと対話するためのオープンソースのツール
  • AWS CLIを使用することで, ブラウザベースのAWS管理コンソールで提供される機能と同等の機能をターミナルプログラムのコマンドプロンプトから実行できるようになる

Example

1
2
3
4
5
6
## install versionの確認
% aws --version
aws-cli/2.13.21 Python/3.11.5 Darwin/20.6.0 exe/x86_64 prompt/off

## S3 hogehogeからcurrent directoryへのファイルのsync
% aws s3 sync "s3://hogehoge/" ./ --dryrun

How to Install AWS CLI

  • AWS CLIのインストールはLinuxならば.zip, MacOSならば.pkgというようにインストーラを直接用いてインストールする形式を取る
  • RPMやdebなどのパッケージ管理システムによってシステムに管理されないコマンドということになるので, コマンドの格納先は/usr/local/binとなる

Linux x86の場合を想定して以下解説する

Pre-requisites

  • パッケージの取得と解凍にcurlunzip
  • Python 3 version 3.3+ installed
  • AWS CLIの依存コマンドとして glibc, groff, less

Install

1
2
3
4
5
6
7
8
# current directoryにawscliv2.zipを取得
% curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

# awscliv2.zipの解凍
% unzip awscliv2.zip

# install: デフォルトではaws commandを/usr/local/binへ, installerを/usr/local/aws-cliへ格納する
% sudo ./aws/install

commandのインストール先を確認してみると

1
2
3
4
5
% which aws
/usr/local/bin/aws

% ls -l /usr/local/bin/aws
lrwxrwxrwx 1 root root 49 Oct 22 09:49 /usr/local/bin/aws -> /usr/local/aws-cli/v2/current/bin/aws*

Update

updateの実行手順は以下:

  • インストーラーを新たにダウンロードし ./aws/installの内容をupdate
  • その後, --updateを用いてsudo ./aws/installを実行する
1
2
3
4
5
6
7
8
9
# 余計なファイルを削除
% rm -r ./aws/install

# 新たにインストーラーを取得
% curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
% unzip awscliv2.zip

# update optionを用いてupdate
% sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update

How to uninstall AWS CLI

install先情報をrmするだけでよいです. AWS SDKやAWS CLI settingsといったconfig情報も消去したい場合は, デフォルトでは~/.aws/を消去するので足ります.

1
2
3
4
5
6
7
8
9
10
11
12
13
## コマンド格納場所を確認する
% which aws
% ls -l /usr/local/bin/aws

## which awsで確認したbin-dirを消去する
% sudo rm /usr/local/bin/aws
% sudo rm /usr/local/bin/aws_completer

## ls -lで確認したinstall-dirを削除する
% sudo rm -rf /usr/local/aws-cli

## delete AWS SDK and AWS CLI settings
% sudo rm -rf ~/.aws/

Simple configuration

AWS CLIを利用するためにはconfigureを設定する必要があります. aws configureコマンドを用いて対話的に設定することが一番シンプルです. 事前準備として,

  • access key ID
  • AWS secret access key

の2つが必要となります. これらが準備できたら以下のように対話式で設定することが可能です.

1
2
3
4
5
% aws configure 
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE 
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY 
Default region name [None]: us-west-2 
Default output format [None]: json

なお, これら設定は~/.aws/以下の

  • credential
  • config

の2つのファイルに内容が結局は格納され, それらを参照してるだけなので直接上記を設定するだけでも足ります.

複数profileの設定

同時並行のprojectがあるとき, projectごとで簡単に切り替えながらAWS CLIを利用したい場合があります. AWS CLIは設定内容を複数のprofileで分けて登録することができるので, これを利用します.

AWS CLI設定ファイルは以下の形を想定しています:

ファイル名 説明
config IAM user-sepecificな設定を格納
credentials aws access keyとsecret keyの設定
1
2
3
4
5
6
% tree
~/.aws
├── cli
│   └── cache
├── config
└── credentials

credentialsの設定は以下を想定しています. hogehogeの部分は任意の文字列で設定して構いません.

1
2
3
[hogehoge]
aws_access_key_id = <your access key id>
aws_secret_access_key = <your secret access key>

configファイルは場面に応じてcredentialsの設定にIAMロールを付与設定をしたい場合に使用します. 例として以下です.

1
2
3
4
5
6
7
8
9
10
[profile hogehogedmondai]
region = ap-northeast-1
output = text
source_profile=hogehoge

[profile foofoocampaign]
region = ap-northeast-1
output = text
role_arn=arn:aws:iam:123456773456:role/foofoocampaign
source_profile=hogehoge

このように設定することで, IAMロールを一時的にassumeしないと見れないS3バケットに対しても以下のコマンドでアクセスすることができます

1
% aws s3 ls "s3://foofoocampaign/ponpokoko/"

References



Share Buttons
Share on:

Feature Tags
Leave a Comment
(注意:GitHub Accountが必要となります)