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を複数設定して、認証情報を使い分けるやり方もありますが、 その方法はまた今度書いてみたいと思います。