この記事の目次
AWS CLI Dockerイメージとは

AWS CLI Docker イメージの導入方法

Dockerの導入方法
Dockerをインストールするためには、Dockerの公式サイトから手順に沿ってダウンロードを進めてください。 Dockerがインストールできているかどうかを確認するためには、ターミナル上、もしくはコマンドプロンプト上で、 $ docker –version Docker version 19.03.8, build afacb8b と入力することで確認することができます。表示はインストールしているDockerのバージョンによります。 これで、AWS CLI Dockerイメージを使う準備が整いました。AWS CLI Dockerイメージを使ってみよう

AWS CLI Dockerイメージを確認する
Dockerのインストールが完了したら、早速AWS CLI Dockerイメージを使ってみましょう。 AWS CLI Dockerイメージを使うには、まず、以下のコマンドを実行します。 $ docker run –rm -it amazon/aws-cli –version これはターミナルで $ aws –version と実行することと同じで、AWSのバージョンを確認することができます。 このコマンドでは、AWS CLI Dockerイメージがない場合は、ダウンロードを開始し、既にDockerイメージが存在している場合は、そのままAWSのバージョンを確認することができます。AWS CLI Dockerイメージに認証情報をマウントする
次にAWS CLI Dockerイメージ上で、自分のアカウントを操作するために、認証情報をDockerイメージにマウントします。 「AWS CLI Dockerイメージを確認する」で紹介したコマンドを実行するだけでは、Dockerイメージを取得しただけに過ぎず、実際にS3からファイルをダウンロードするといったような操作を行うことができません。 そこで、認証情報をDockerイメージ上にマウントする必要があります。具体的には、AWSの認証ファイルであるconfigファイルとcredintialファイルをDockerイメージ上にマウントします。 AWSの認証ファイルを~/.awsに格納した状態で、以下のコマンドを実行してください。 $ docker run –rm -ti -v ~/.aws:/root/.aws amazon/aws-cli s3 ls これにより、/root/.awsにAWSの認証ファイルがコピーされます。ホストファイルシステムと連携する
AWS CLI Dockerイメージに、認証情報を与えることに成功したら、次にAWSの実際のサービスをコマンド上で操作してみましょう。ここでは、例としてS3からファイルをダウンロードすることを考えます。 以下のコマンドを実行することで、S3からファイルをダウンロードすることができます。 $ docker run –rm -ti -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli s3 cp s3://aws-cli-docker-demo/hello . また、ダウンロードした後に以下のコマンドを実行することで、結果を確認することができます。 $ cat hello Hello from Docker!エイリアスを作成する
上記の「ホストファイルシステムと連携する」で行なったように、毎回システム連携する際に、「$ docker run –rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli」 という長いコマンドを打ち込むことは面倒ですし、ミスにもつながります。 そこで、エイリアスを作成し、コマンドを短縮化することで、これらを解消します。エイリアスを作成するためには、以下のコマンドを実行します。(Mac OS) $ alias aws=’docker run –rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli’ これにより、「ホストファイルシステムと連携する」で行ったコマンドを「$ aws s3 cp s3://aws-cli-docker-demo/hello.」にまで短縮することができます。EC2と連携する
次にEC2上のインスタンスを確認してみましょう。 この章では、「エイリアスを作成する」で作成したエイリアスを使用してコードを書いていきます。 エイリアスを作成していない人は下記のコマンドの最初にあるawsを $ docker run –rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli に置き換えてコマンドを実行しましょう。 以下のコマンドを実行することで、EC2上のインスタンスを確認することができます。 $ aws ec2 describe-instances また、以下のコマンドを実行することでEC2上のインスタンスを起動できます。この際に、大文字で表記されている変数については、実際に起動するインスタンスのものに置き換える必要があります。 $ aws ec2 run-instances –image-id IMAGE_ID –count 1 –instance-type INSTANCE_TYPE –key-name KEY_NAME –security-group-ids SECURITY_GROUP_ID –subnet-id SUBNET_ID このようにしてEC2インスタンスをDocker上で起動することで、コマンドの実行だけでEC2インスタンスを実行することができます。 これにより、マネジメントコンソール上での細かな操作を覚える必要がなく、他の人にEC2インスタンスを起動する操作を共有しやすくなります。AWS CLI Dockerイメージを使う上での注意点
- AWS CLI Dockerイメージではawsコマンドしかサポートされておらず、AWS CLIコマンドの外部で、通常のlessやgroffといったコマンドを使用することはできません。
- /awsのディレクトリはユーザーによってのみコントロールすることができます。
- 最新のタグに依存する場合の下位互換性の保証はありません。
- 下位互換性を保証するために、ユーザーは特定のタグに固定する必要があります。
AWS CLI Dockerイメージのバージョン指定
注意点で述べたように、特定のタグに固定して実行する必要があるため、ユーザーは基本的にはバージョンを指定して、操作を行う必要があります。 最新のバージョンで行う場合は以下のコマンドを実行してください。(commandの部分を変更してください。) $ docker run –rm -it amazon/aws-cli:latest command バージョンを指定する場合は以下のコマンドを実行してください。 $ docker run –rm -it amazon/aws-cli:2.0.6 commandまとめ
