最新バージョンのAWS CLI をAmazon Linux 2 にインストールしてみた

2019.08.18

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSチームのすずきです。

Amazon Linux2のAMIを利用して起動したEC2環境で、最新バージョンの「AWS CLI」をインストール、利用する機会がありましたので、紹介させて頂きます。

環境

AMI

  • amzn2-ami-hvm-2.0.20190618-x86_64-gp2 (ami-0c3fd0f5d33134a76)
  • 2019年8月現在、「AWS CLI」のバージョンは「1.16.102」がインストールされます。

version

$ /usr/bin/aws --version
aws-cli/1.16.102 Python/2.7.16 Linux/4.14.123-111.109.amzn2.x86_64 botocore/1.12.92
$ yum list | grep awscli
awscli.noarch                          1.16.102-1.amzn2.0.1           amzn2-core

aws-cli

バージョン「1.16.102」のリリースは 2019/02/12 でした。

「1.16.219」 で利用可能となる新機能の確認が必要であったため、最新バージョンのAWSCLIのインストールを行いました。

手順

AWSドキュメント記載の手順に従い、pip を使用して AWS CLI をインストールしました。

Linux に AWS CLI をインストールする

Python

「python3」を指定して、Pythonをインストールします。

sudo yum install python3 -y

awscli

Python3パッケージに含まれる「pip3」を利用して、AWS CLI のインストールを行います。 インストール先はデフォルト(/usr/local/bin/aws)としました。

sudo pip3 install awscli --upgrade

確認

パスにより異なるバージョンのAWS CLIが利用可能となります。

/usr/local/bin/aws

$ /usr/local/bin/aws --version
aws-cli/1.16.220 Python/3.7.4 Linux/4.14.123-111.109.amzn2.x86_64 botocore/1.12.210

/usr/bin/aws

$ /usr/bin/aws --version
aws-cli/1.16.102 Python/2.7.16 Linux/4.14.123-111.109.amzn2.x86_64 botocore/1.12.92

UserData

EC2起動時、UserDataを利用して最新のAWS CLIをインストールする事も可能です。

設定例

#cloud-config
repo_update: true
repo_upgrade: all
packages:
  - python3
runcmd:
  - pip3 install awscli
write_files:
  - content: |
      [default]
      region = ap-northeast-1
    mode: '000600'
    owner: ec2-user
    group: ec2-user
    path: /home/ec2-user/.aws/config

まとめ

Python3 を事前にインストールしたAmazon Linux2環境で、最新の AWS CLI を インストールする事ができました。 パッケージで導入される AWS CLIでは、リリースされて間もないAWSの新機能が利用できない事がありますが、先行評価が必要な場合は今回の手順をお試し下さい。

尚、Amazon Linux2の標準リポジトリで配布されているawscliのパッケージは更新が期待できます。長期稼働が予定されているシステムでAWS CLIを利用する場合、パッケージの更新を待つこともご検討下さい。

パッケージ履歴

$ yum --showduplicates list | grep awscli
awscli.noarch                          1.14.8-1.amzn2.0.2             amzn2-core
awscli.noarch                          1.14.8-1.amzn2.0.3             amzn2-core
awscli.noarch                          1.15.80-1.amzn2.0.1            amzn2-core
awscli.noarch                          1.16.102-1.amzn2.0.1           amzn2-core