AWS CLI バージョン2(Python依存なし!)インストールメモ

クラウド
クラウド
スポンサーリンク

AWS CLI は、コマンドラインから AWS の各種サービスを管理するためのツールです。開発者にとって AWS CLI とても便利なツールなのですが、AWS CLI は Python で書かれているため、Python のバージョンに注意しなければなりません。うっかり Python をバージョンアップして AWS CLI が動かなくなることもままあります。AWS CLI バージョン2 は、Python を含め他のソフトウェアパッケージに依存しないため、Python のバージョンを注意する必要がなくなります。(そもそもPythonがインストールされている必要もありません)そこで今回は、AWS CLI バージョン2 をインストールする手順をまとめてみました。

AWS CLI バージョン2 はプレビュー版(2019年12月現在)

AWS CLI バージョン2 は、テストのプレビューおよび評価用に提供されています。(2019年12月18日現在)

実稼働環境では、AWS CLI バージョン1 の使用が推奨されていますが、AWS CLI バージョン2 に導入される新機能は、AWS CLI バージョン1 には導入されない場合もあるようですので、今後は AWS CLI バージョン2 へ移行することが予想されます。

AWS CLI バージョン1 と、AWS CLI バージョン2 は共存できますので(「aws2」というコマンドで実行できます)とりあえずインストールして試しておくのが良さそうですね。

AWS CLI バージョン1 と、AWS CLI バージョン2 の違いは次の通りです。

・AWS CLI バージョン 2 は、パラメータ の http:// または https:// URL を自動的に取得しなくなりました。
・AWS CLI バージョン 2 は、すべてのタイムスタンプ出力値を ISO 8601 形式で返すようになりました。
・AWS CLI バージョン 2 は、「hidden」エイリアスをサポートしなくなりました。
・AWS CLI バージョン 2 による Amazon S3 キー使用の一貫性の向上
・AWS CLI バージョン 2 は、現在 AWS config ファイルの [plugins] セクションをサポートしていません。

AWS CLI バージョン 1 からバージョン 2 への移行 | AWS Command Line Interface より引用

AWS CLI バージョン2 のインストール

AWS CLI バージョン1 は、pip(Pythonのパッケージマネージャー)などからもインストールできましたが、AWS CLI バージョン2 では、インストーラーからのインストールのみになりました。

AWS CLI バージョン2 のインストーラーをダウンロードします。

Linux の場合

curl "https://d1vvhvl2y92vvt.cloudfront.net/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

maxOS の場合

curl "https://d1vvhvl2y92vvt.cloudfront.net/awscli-exe-macos.zip" -o "awscliv2.zip"

Windows の場合は、MSIインストーラーが提供されていますので、そちらからインストールしてください。
Windows での AWS CLI バージョン 2 のインストール

インストーラを解凍して実行します。

unzip awscliv2.zip
sudo ./aws/install

以下のように表示されればインストール完了です。

You can now run: /usr/local/bin/aws2 --version

aws2 コマンドが実行できることを確認します。

aws2 --version
(以下のような表示がされればOKです)
aws-cli/2.0.0dev2 Python/3.7.4 Darwin/19.2.0 botocore/2.0.0dev1

参考資料:AWS CLI バージョン 2 のインストール

すでに AWS CLI バージョン1 をインストールしていて設定済みの場合は、設定情報が AWS CLI バージョン2 にも引き継がれます。以下のコマンドで、AWSのアカウント情報が表示されていれば、AWS CLI バージョン2 の設定は必要ありません。

aws2 sts get-caller-identity
(以下のような表示が返ってくればOKです)
{
    "UserId": "000000000000",
    "Account": "000000000000",
    "Arn": "arn:aws:iam::000000000000:username"
}

下のように表示された場合は、AWS CLI の設定が必要になりますので、アクセスキーとシークレットアクセスキーを取得してください。

Unable to locate credentials. You can configure credentials by running "aws configure".

アクセスキーとシークレットアクセスキーの取得

AWSコンソールにログインしてください。

AWSコンソールにログインしたら、右上のユーザー名をクリックして「マイセキュリティ資格情報」を選択します。

アクセスキーセクションを開いて「新しいアクセスキーの作成」をクリックします。

「キーファイルのダウンロード」をクリックすれば、アクセスキーとシークレットアクセスキーが記載されたCSVファイルをダウンロードできます。(シークレットアクセスキーは再度表示したりダウンロードすることはできないので注意してください)

AWS CLI の設定

取得したアクセスキーとシークレットアクセスキーを AWS CLI に設定します。

AWS CLI の設定コマンドを実行します。

aws2 configure

対話形式で AWS CLI の設定が始まりますので、取得したアクセスキーとシークレットアクセスキーをそれぞれコピペしてください。「Default region name」と「Default output format」は指定せずに空エンターでも構いません。(お好みで設定してください)

AWS Access Key ID [None]: <取得したアクセスキー>
AWS Secret Access Key [None]: <取得したシークレットアクセスキー>
Default region name [None]: ap-northeast-1
Default output format [None]: json

AWSのアカウント情報が表示できることを確認します。

aws2 sts get-caller-identity
(以下のような表示が返ってくればOKです)
{
    "UserId": "000000000000",
    "Account": "000000000000",
    "Arn": "arn:aws:iam::000000000000:username"
}

再度 aws2 configure コマンドを実行すれば、AWS CLI を再設定することができます。また、設定した内容は以下の場所に保存されています。

ls ~/.aws/
-rw------- 1 root root 48 12月 18 03:12 config
-rw------- 1 root root 116 12月 18 03:12 credentials

参考資料:AWS CLI の設定 | AWS ドキュメント

おわりに

各社クラウドサービスのコマンドラインツールは Python で書かれていることが多いため、冒頭にも書きましたが Python のバージョンには注意する必要があります。以前 Python3 にアップデートしたら各種ツールが動かなくなり痛い目を見たことがありました(^^;) AWS CLI バージョン2 のように環境に依存しない形でツールを提供してくれるのはありがたいですね。

コメント

タイトルとURLをコピーしました