Amazon Linux 2 コンテナに AWS CLI をインストール
AWS で使うディストリビューションなら、やっぱ Amazon Linux 2だよね。
LTS (長期サポート) で 2023年までサポートされてるし、 今後主流の systemd 対応 (CentOS 7 などから採用されてる、各種サービスの起動方式)だから。
でも、EC2で作ると課金対象になったりするから、手元で簡単にコンテナでつくっちゃおう。
ぐらいの、「のり」で設定してみました。
目標として設定したのは、「AWS CLI と jq が正常動作」です。
AWS CLI をインストール
Amazon Linux 2 コンテナを起動
docker for Mac / Windows をインストールした後に、次のコマンドを叩けばOK。
※ローカル開発環境って多彩なので、この部分の詳細は、他サイト様を参照くださいまし。
$ docker pull amazonlinux
$ docker run -it amazonlinux
docker さんを使うと、ローカル環境と分離できるので、お気楽ですね。
なお最小構成で作られているので yum update などは適時実施しましょう。
AWS CLI を導入
amazonlinux の シェルにて、この2つのコマンド打てば、導入完了です。
docker で shell入ると root権限なので、 sudo なしでやっちゃいます。
# yum install awscli # yum install less groff jq which
less と groff がないと、help表示などでエラーになるので入れておきます。
AWS CLI を導入確認
こんな感じで aws-cli のバージョンを確認しておきましょう。なおコマンド名は aws となります。
bash-4.2# aws --version aws-cli/1.16.300 Python/2.7.16 Linux/4.19.76-linuxkit botocore/1.13.36
Amazon Linux 2 デフォルトの、Python2.7で動作してることがわかります。
あと、次のように入力して、help形式で情報が表示されれば、関連パッケージも確認完了です。
bash-4.2# aws help
忘れちゃいけない環境変数
このおまじないをかけておきましょう。デフォルトだと、LANG環境変数がセットされていないので、Pythonで作られた aws-cli の出力がasciiとなり、日本語などが含まれたJSONがレスポンスされたときに落ちます。。。
# export LANG=en_US.UTF-8
この環境変数設定により、UTF-8でのJSON出力がなされますので、安心です。
(4/20 追記)
上記のコマンドだけでは、次回ログイン時(次にコンテナあげたとき)に、再設定が必要でした。
立ち上げるたびに、同じコマンド打たなくても良いように、次の設定をいれるのが良いですね。
# echo 'export LANG=en_US.UTF-8' >> /root/.bashrc
以上で、インストールが終わりコマンドが動作するようになりました。