2021/03/22

AWS CLI Dockerとは?概要から使い方まで徹底解説!

 
  

AWS CLI Dockerイメージとは

AWS CLI Dockerイメージとは、AWSのCLI(Command Line Interface)を利用できるDockerイメージです。 AWS CLIでは、AWSマネジメントコンソール上で行っていた操作をコマンドで使用できます。これにより、操作ミスを防ぎ、操作の効率化が図れるようになります。 また、Dockerイメージ上でAWS CLIのコマンドを使用できるため、環境による影響を受けずに簡単にコマンドを実行する環境を手に入れられます。 さらに、コマンドを共有するだけで、AWSマネジメントコンソール上の複雑な操作を誰でも簡単に行えるため、オペレーションの共有や引継ぎを行うことが容易になるというメリットもあります。

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

次に、AWS CLI Docker イメージの導入方法について説明します。AWS CLI Dockerイメージを使うためには、Dockerのインストールが必要です。 AWSが、Docker Hub上でイメージを公開しており、Dockerイメージを使用する際にダウンロードされるので、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

まとめ

今回は、AWS CLI Dockerイメージを用いて、Dockerのコンテナ上でAWSのコマンドを用いることを試みました。 AWS CLI Dockerイメージは、Dockerをインストールするだけで利用できます。 ただし、実際に自らのアカウントで操作するためには、認証情報をマウントする必要があるので、その点に注意してください。 Dockerイメージ上では、環境構築をすることなくAWSのコマンドを用いることができるので、ぜひ活用してみましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】