AWS CLI とは?
AWS CLI (Command Line Interface) を使うと、AWS の各種サービスをコマンドラインから操作することができます。 例えば、次のように様々な処理を実行できます。
- S3 にファイルをコピーする
$ aws s3 cp ローカルファイル s3://バケット名/ディレクトリ名
- IAM ユーザーのアクセスキーを表示する
$ aws iam list-access-keys --user-name=ユーザー名
- DynamoDB にテーブルを作成する
$ aws dynamodb create-table --table-name テーブル名 ...
AWS の各種サービスの設定は、それぞれのマネージメントコンソール(Web サイト)上で設定することができますが、AWS CLI を使うことで、Web ブラウザを開かずに設定を済ませられます。 頻繁に行う処理などは、シェルスクリプトなどにして自動化することができます。
AWS CLI を使用するには、下記のような IAM ユーザーのアクセスキー(及びシークレットアクセスキー)が必要です。 以降の説明では、これらの情報が取得できていることを前提とします。
- API 用アクセスキー(例):
INMCAKIAQX77PNSXQAGP
- API 用シークレットアクセスキー(例):
2ufOA3Q2KAmpNTo2GHPDXFJK7Jiv9yfZGegIdbCW
AWS CLI のインストール
インストール方法
- macOS の場合 … AWSCLIV2.pkg をダウンロードしてインストールできます。
- Windows の場合 … AWSCLIV2.msi をダウンロードしてインストールできます。
- Linux の場合 …
curl
コマンドでインストール用スクリプトをダウンロードしてインストールできます。
インストール後の確認
何らかの aws
コマンドが実行できるようになっていれば成功です。
$ aws --version
aws-cli/2.1.24 Python/3.7.4 Darwin/19.5.0 exe/x86_64 prompt/off
AWS CLI の設定 (aws configure)
設定ファイルを作成する
AWS CLI を使用して AWS の各種操作を行うには、credentials ファイルにアカウントキー情報を設定しておく必要があります。
aws congigure
コマンドで設定を行えます。
$ aws configure
AWS Access Key ID [None]: INMCAKIAQX77PNSXQAGP
AWS Secret Access Key [None]: 2ufOA3Q2KAmpNTo2GHPDXFJK7Jiv9yfZGegIdbCW
Default region name [None]: ap-northeast-1
Default output format [None]: yaml
デフォルトリージョンは、AWS CLI でコマンド実行したときに、どのリージョンのサーバーにリクエストが送信されるかの設定です。
通常は、最寄りのリージョン(東京であれば ap-northeast-1
)を指定しておけば大丈夫です(リージョンの一覧はこちら)。
リージョンの指定は、aws
コマンドを実行する際に --region
オプションで指定することも可能です。
AWS CLI の出力フォーマットは、yaml
や json
、table
、text
などを指定できます。
人間にも機械にもやさしい yaml
形式がおすすめです(yaml
形式は CLI バージョン 2 から選択できます)。
設定が完了すると、~/.aws
ディレクトリ以下に次のようなファイルとして保存されます。
[default]
region = ap-northeast-1
output = yaml
[default]
aws_access_key_id = INMCAKIAQX77PNSXQAGP
aws_secret_access_key = 2ufOA3Q2KAmpNTo2GHPDXFJK7Jiv9yfZGegIdbCW
設定を変更したいときは、上記のファイルを直接変更してもいいですし、もう一度 aws configure
コマンドを実行しても OK です。
$ aws configure
AWS Access Key ID [****************QAGP]:
AWS Secret Access Key [****************dbCW]:
Default region name [ap-northeast-1]:
Default output format [yaml]: json
現在の設定を確認する
aws configure list
コマンドで AWS CLI の現在の設定を確認することができます。
$ aws configure list
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************QAGP shared-credentials-file
secret_key ****************dbCW shared-credentials-file
region ap-northeast-1 config-file ~/.aws/config
個々の値を取得したいときは aws configure get
コマンドを使用します。
$ aws configure get region
ap-northeast-1
$ aws configure get aws_access_key_id
AKIXXXXXXXXXXXXXQAGP
$ aws configure get aws_secret_access_key
8kR6XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXdbCW
(応用)別のプロファイルを作成する
別の IAM ユーザーのアクセスキーを使用したい場合などは、別のプロファイル設定を追加することで対応できます。
次の例では、power
という名前のプロファイルを作成しています。
$ aws configure --profile=power
AWS Access Key ID [None]: XXXXXXXXXXXXXXXXXXXX
AWS Secret Access Key [None]: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Default region name [None]: ap-northeast-1
Default output format [None]: yaml
これにより、設定ファイル内にそのプロファイル用の設定が追加されます。
[default]
region = ap-northeast-1
output = yaml
[profile power]
region = ap-northeast-1
output = yaml
[default]
aws_access_key_id = INMCAKIAQX77PNSXQAGP
aws_secret_access_key = 2ufOA3Q2KAmpNTo2GHPDXFJK7Jiv9yfZGegIdbCW
[power]
aws_access_key_id = XXXXXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
AWS CLI コマンドを使用するときにプロファイルを切り替えたいときは、aws
コマンドの --profile
オプションか、AWS_DEFAULT_PROFILE
環境変数でプロファイル名を指定します。
(方法1)
$ aws --profile=power configure list
(方法2)
$ export AWS_DEFAULT_PROFILE=power
$ aws configure list