AWS公式さんがDocker Hubでイメージを公開してくれました。 (2020/03/31)
待ってました
AWS CLI v2 Docker image | AWS Developer Blog
https://aws.amazon.com/jp/blogs/developer/aws-cli-v2-docker-image/
(Google翻訳) AWS CLI v2の2.0.6のリリースにより、AWS CLI v2がDockerイメージとして利用できるようになったことをお知らせします。
これにより、ユーザーはAWS CLI v2のインストールを自分で管理する必要なく、コンテナベースの環境でAWS CLI v2を使用できます。このDockerイメージを利用するにはさまざまな方法がありますが、特にCI / CD設定では、ローカルマシンのDockerコンテナでAWS CLI v2を実行する方法について説明します。
amazon/aws-cli - Docker Hub
https://hub.docker.com/r/amazon/aws-cli
使い方も、かなーり詳しくしてくれているので詳細はDocker Hubをご確認ください。
前にaws-cli
を実行するためにDockerイメージを作成して利用していた ( DockerコンテナからAWSコマンドを簡単に実行できるコマンドをつくってみた - Qiita ) のですが、その手間が省けます。はかどります。
バージョンは2.0.6
となっており (2020/04/01 時点)、今後のバージョンアップにも対応してくれることでしょう (期待)
つかってみる
使い方は簡単です。
エイリアス設定して利用する設定があったので、それを利用してみます。
認証や設定情報を含むディレクトリを-v ~/.aws:/root/.aws
でマウント、コマンド実行するカレントディレクトリを-v $(pwd):/aws
でDockerコンテナ内の/aws
にマウントすることでファイルの読み書きもホストでaws
コマンドを実行するときと同じ挙動になります。
# 確認用としてエイリアスを aws ではなく、 aws-test としています
> alias aws-test='docker run --rm -ti -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli'
# Fishの場合
> alias aws-test='docker run --rm -ti -v ~/.aws:/root/.aws -v $PWD:/aws amazon/aws-cli'
> aws-test --version
aws-cli/2.0.6 Python/3.7.3 Linux/4.19.76-linuxkit botocore/2.0.0dev10
# カレントディレクトリで読み書きできる
> aws-test s3 cp ./hoge.txt s3://<任意のバケット>/
# カレントディレクトリ外はだめ
> aws-test s3 cp ../hoge.txt s3://<任意のバケット>/
これでもうイメージをビルドしなくてもいいんやなって。
参考
amazon/aws-cli - Docker Hub
https://hub.docker.com/r/amazon/aws-cli
DockerコンテナからAWSコマンドを簡単に実行できるコマンドをつくってみた - Qiita
https://qiita.com/kai_kou/items/99d9f9372eed970eab3b