プログラミング

CentOS7へAWS CLIをインストールして設定する

CentOSのコマンドライン上から、AWSのリソースを操作出来るようにするためにAWSのCLIをインストールします。

 

公式のドキュメントの手順に従えば問題なくインストールできます。

 

pythonのpipを使ったインストール方法です。

AWS CLIのインストール

インストール済みのPythonのバージョンを確認

以下で確認します。

$ python --version
Python 2.7.5

僕の環境では、2.7.5が入っていました。

 

しかし、python2系は2020/01以降サポートが終わってしまったので、

python3系のものを新たにインストールします。

 

まず、自身の環境ではpython3系のどのバージョンが使用可能なのかを調べます。

$ sudo yum list python3
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.cat.net
* epel: ftp.jaist.ac.jp
* extras: mirrors.cat.net
* updates: mirrors.cat.net
Available Packages
python3.i686 3.6.8-10.el7 base
python3.x86_64 3.6.8-10.el7 base

バージョン3.6.8が使えるみたいなので、AWS CLI のサポートの基準である、

Python 3.4以降であるので、このままインストールします。

$ sudo yum install python3

 

インストールできたかを確認します。

$ python3 --version
Python 3.6.8

 

get-pip.pyを使ってpipをインストールする

pipはpythonのパッケージを管理するものです。

そのパッケージの中にAWSのCLIが含まれています。

pipコマンドを使用するためにpipをインストールします。

 

まず、以下でget-pip.pyをインストールします。

$ curl -O https://bootstrap.pypa.io/get-pip.py

 

get-pip.pyでpipをインストールします。

$ python3 get-pip.py --user

 

get-pip.pyの実行が完了したら、~/.localというディレクトリが作成されます。(~はホームディレクトリの意味です。)

vagrant@develop_env ~
$ ls -la
total 29572
drwx------. 4 vagrant vagrant 28 Feb 15 12:07 .local ←このディレクトリが作成されています。

 

僕は、bashを使っているので、

.bash_profileに~/.local/binへのパスを通す記述をします。

$ vim .bash_profile

.bash_profileの一番下の行に、下記を追記します。(コメントはなくてもいいです。)

# python3 pip PATH
export PATH=~/.local/bin:$PATH

 

.bash_profileに追記した内容を反映させます。

$ source ~/.bash_profile

 

pipコマンドが使用できるかを確認します。

$ pip3 --version
pip 20.0.2 from /home/vagrant/.local/lib/python3.6/site-packages/pip (python 3.6)

無事にpipをインストールできました。

pipを使用してAWS CLIをインストール。

以下のコマンドを実行して、AWS CLIをpipでインストールします。

$ pip3 install awscli --upgrade --user

 

インストールできたかを確認します。

$ aws --version
aws-cli/1.18.0 Python/3.6.8 Linux/3.10.0-1062.9.1.el7.x86_64 botocore/1.15.0

公式のドキュメントを見ながら簡単にインストールできました!

AWSのドキュメントは日本語も非常に読みやすく分かりやすいですね。

 

aws configureを設定する

AWS CLIをインストールしても、認証情報を設定しなければ、そのマシンからAWSのリソースを操作することはできません。

AWSのリソースをCLIから操作するには、

  • 環境変数で認証情報を設定
  • aws configureで認証情報を設定
  • IAMロールを作成して、そのマシン自体に、AWSのリソースを操作できる権限を設定

の3つがあると思いますが、ローカルのマシンなので、IAMロールを割り当てることができないので、今回はaws configureを設定します。

 

以下のコマンドで、設定を行います。

$ aws configure
AWS Access Key ID [None]: アクセスキーを入力
AWS Secret Access Key [None]: シークレットアクセスキーを入力
Default region name [None]: ap-northeast-1 ←これは東京リージョンの意味。固定でいいと思います。
Default output format [None]: json ←他に、text,tableを選択可能だが、jsonでいいと思います。

アクセスキーとシークレットアクセスキーは、IAMユーザーを作成した時に取得したものを入力します。

アクセスキーとシークレットアクセスキーを紛失してしまった場合は、AWSのマネジメントコンソールから新しく作成することができますので、作成したものをaws configureで入力します。

 

設定が完了したら、

実際に自分自身のAWSアカウントにアクセスできているかどうかを確認します。

$ aws s3 ls

認証情報の設定が成功していれば、S3バケットの一覧が表示されるはずです。

 

これで、AWS CLIを使用して、コマンドラインからAWSのリソースを操作することが可能になります。

実際の運用では、AWSの認証情報をaws configure で設定することはセキュリティの問題が懸念されますので、IAMロールを作成してEC2インスタンスに割り当てるといったことが多いかと思いますが、とりあえずaws configureで設定して操作に慣れることも大事かと思います。

 

また、aws configureを複数設定して、認証情報を使い分けるやり方もありますが、

その方法はまた今度書いてみたいと思います。

ABOUT ME
moto
約5年間勤めた公務員から転職しました。 日頃の学びをここにアウトプットしていきます。 御朱印集めと筋トレが好きです。