公式 AWS CLI バージョン 2 Docker イメージの使用
このトピックでは、Docker で AWS CLI バージョン 2 の実行、バージョン管理、および設定を実行する方法について説明します。Docker の使用方法の詳細については、Docker のドキュメント
公式 Docker イメージは、AWS が直接サポートおよび維持する分離、移植性、およびセキュリティを提供します。これにより、インストールを自分で管理しなくても、コンテナベースの環境で AWS CLI バージョン 2 を使用できるようになります。
トピック
前提条件
Docker がインストールされている必要があります。インストール手順については、Docker のウェブサイト
Docker のインストールを確認するには、次のコマンドを実行し、出力があることを確認します。
$
docker --version
Docker version 19.03.1
公式 AWS CLI バージョン 2 Docker イメージを実行する
公式 AWS CLI バージョン 2 Docker イメージは、amazon/aws-cli
リポジトリ内の DockerHub でホストされています。docker run
このコマンドを初めて使用すると、最新の Docker イメージがコンピュータにダウンロードされます。それ以降の docker run
コマンドの使用は、ローカルコピーから実行されます。
AWS CLI バージョン 2 Docker イメージを実行するには、docker run
コマンドを使用します。
$
docker run --rm -it amazon/aws-cli
command
コマンドの機能は次のとおりです。
-
docker run --rm -it amazon/aws-cli
—aws
実行可能ファイルと同等です。このコマンドを実行するたびに、Docker はダウンロードしたamazon/aws-cli
イメージのコンテナをスピンアップし、aws
コマンドを実行します。デフォルトで、Docker イメージは AWS CLI バージョン 2 の最新バージョンを使用します。例えば、Docker で
aws --version
コマンドを呼び出すには、以下を実行します。$
docker run --rm -it amazon/aws-cli --version
aws-cli/2.4.5 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.4.5dev10
-
--rm
- コマンドが終了後にコンテナをクリーンアップすることを指定します。 -
-it
- で疑似 TTY をで開くように指定します。stdin
これにより、コンテナで実行中でも、例えばaws help
コマンドやaws configure
コマンドを使用して、AWS CLI バージョン 2 に入力を提供できるようになります。-it
を省略する場合は、以下の点を考慮してください。-
スクリプトを実行している場合は、
-it
は不要です。 -
スクリプトでエラーが発生する場合は、Docker 呼び出しから
-it
を省略することで問題が解決する場合があります。 -
パイプ出力を実行しようとすると
-it
でエラーの原因となることがあり、Docker 呼び出しから-it
を省略することで、この問題が解決する場合があります。-it
フラグを保持したままパイプ出力を実行する場合は、デフォルトで使用されているクライアント側のページャー AWS CLI を無効にすることで問題が解決できます。
-
docker run
コマンドの詳細については、Docker reference guide
注: Docker イメージのインターフェイスと下位互換性について
-
イメージでサポートされる唯一のツールは AWS CLI です。必ず、
aws
実行可能ファイルは直接実行する必要があります。例えば、less
およびgroff
がイメージに明示的にインストールされていても、AWS CLI コマンド以外では直接実行できません。 -
/aws
作業ディレクトリは、ユーザーによってコントロールします。AWS CLI コマンドを実行することでユーザーから指示されない限り、イメージはこのディレクトリに書き込まれません。 -
最新のタグに依存する場合、下位互換性は保証されません。下位互換性を保証するには、特定の <major.minor.patch> タグに固定する必要があります。このタグはイミュータブルであり、1 回 のみプッシュされます。
特定のバージョンとタグの使用
公式 AWS CLI バージョン 2 Docker イメージには、使用できる複数のバージョン (2.0.6 以降) があります。AWS CLI バージョン 2 の特定バージョンを実行するには、適切なタグを docker run
コマンドに付加します。初めてタグを指定して docker run
コマンドを使用すると、そのタグの最新の Docker イメージがコンピュータにダウンロードされます。それ以降、そのタグで docker run
コマンドを使用する場合は、ローカルコピーから実行されます。
次の 2 種類のタグを使用できます。
-
latest
– Docker イメージ用の AWS CLI バージョン 2 の最新バージョンを定義します。AWS CLI バージョン 2 の最新バージョンを使用する場合は、latest
タグを使用することをお勧めします。ただし、このタグに依存する場合の下位互換性は保証されません。latest
タグは、docker run
コマンドでデフォルトで使用されます。latest
タグを明示的に使用するには、タグをコンテナイメージ名に追加します。$
docker run --rm -it amazon/aws-cli:latest
command
-
<major.minor.patch>
– Docker イメージ用の AWS CLI バージョン 2 の特定バージョンを定義します。Docker イメージを本番環境で使用する予定の場合は、下位互換性を確保するために、AWS CLI バージョン 2 の特定バージョンを使用することをお勧めします。例えば、バージョン 2.0.6 を実行するには、コンテナイメージ名にバージョンを追加します。$
docker run --rm -it amazon/aws-cli:2.0.6
command
最新の Docker イメージへの更新
最新の Docker イメージは、docker run
コマンドの初回使用時にのみコンピュータにダウンロードされるため、更新されたイメージを手動でプルする必要があります。手動で最新バージョンに更新するには、latest
タグ付きイメージをプルすることをお勧めします。Docker イメージをプルすると、コンピュータに最新バージョンがダウンロードされます。
$
docker pull amazon/aws-cli:latest
ホストファイル、認証情報、環境変数、構成を共有する
AWS CLI バージョン 2 はコンテナで実行されるため、CLI はデフォルトでホストファイルシステムにアクセスできません。これには、設定と認証情報が含まれます。ホストファイルシステム、認証情報、および設定をコンテナと共有するには、ホストシステムの ~/.aws
ディレクトリを /root/.aws
のコンテナにマウントして、-v
コマンドに docker run
フラグを付けます。これにより、コンテナで実行されている AWS CLI バージョン 2 がホストファイル情報を検索できるようになります。
-v
フラグとマウントの詳細については、Docker reference guide
config
および credentials
の詳細については、「設定ファイルと認証情報ファイルの設定」を参照してください。
例 1: 認証情報と設定の提供
この例では、Amazon Simple Storage Service (Amazon S3) でバケットを一覧表示する s3 ls
コマンドの実行時に、ホストの認証情報および設定を提供しています。以下の例では、AWS CLI 認証情報および設定ファイルのデフォルトの場所を使用しています。別の場所を使用するには、ファイルパスを変更します。
特定システムの環境変数は、-e
フラグを使用して呼び出すことができます。環境変数を使用するには、変数を名前で呼び出します。
例 2: ホストシステムへの Amazon S3 ファイルのダウンロード
一部の AWS CLI バージョン 2 コマンドでは、コンテナ内のホストシステムからファイルを読み取ったり、コンテナからホストシステムにファイルを書き込むことができます。
この例では、現在の作業ディレクトリをコンテナの S3
ディレクトリにマウントして、s3://aws-cli-docker-demo/hello
オブジェクト /aws
をローカルファイルシステムにダウンロードします。hello
オブジェクトをコンテナの /aws
ディレクトリにダウンロードすると、ファイルはホストシステムの現在の作業ディレクトリにも保存されます。
ダウンロードしたファイルがローカルファイルシステムに存在することを確認するには、以下を実行します。
例 3: AWS_PROFILE 環境変数の使用
特定システムの環境変数は、-e
フラグを使用して呼び出すことができます。使用したいそれぞれの環境変数を呼び出してください。この例では、Amazon Simple Storage Service (Amazon S3) でバケットをリストする s3 ls
コマンドの実行時に、ホスト認証情報、設定、および AWS_PROFILE
環境変数を提供しています。
Docker コマンドの短縮
Docker aws
コマンドを短縮するには、オペレーティングシステムの機能を使用して Linux および macOS で symbolic
link
alias
doskey
aws
エイリアスを設定するには、次のいずれかのコマンドを実行します。
-
aws
コマンドへの基本的なアクセスについては、以下を実行します。 -
aws
コマンド使用時にホストファイルシステムおよび構成設定にアクセスする場合は、以下を実行します。 -
aws
エイリアスで使用する特定のバージョンを割り当てるには、バージョンタグを追加します。
エイリアスの設定後、ホストシステムにインストールされている場合と同様に、Docker コンテナから AWS CLI バージョン 2 を実行できます。
$
aws --version
aws-cli/2.4.5 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.4.5dev10