17
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Dockerでaws-cli環境を作ればアカウント切替が簡単に

Posted at

はじめに

aws-cli環境作成にあたりローカルを汚したくない。--profileオプションで切替めんどくさい。
そんな思いでDockerで環境作れないか試してみました。

実行環境

  • ubuntu 18.10
  • Dockerインストール済

1. Dockerfileの作成

  • 軽量なalpineを選択。
  • aws-cliのバージョンはお好きなものに変更してください。
  • 取得したjsonをjqで整形したいなどお好みでインストール内容は変更してください。
  • PS1はお好みの設定に変更してください。
    • 今回は起動時に指定するDockerホスト名を表示し、どんなaws-cli環境なのかわかるようにしています。
    • [root@awscli-dev:/]$と表示し開発環境のaws-cliのように見せてみました。
Dockerfile
FROM alpine

ARG pip_installer="https://bootstrap.pypa.io/get-pip.py"
ARG awscli_version="1.16.76"

# Install dependent packages
RUN apk --update add \
    bash \
    python \
    curl \
    groff \
    jq \
    less

# Install awscli
RUN curl ${pip_installer} | python && \
    pip install awscli==${awscli_version}

# 入力補完
RUN bash -c 'echo complete -C '/usr/bin/aws_completer' aws  >> $HOME/.bashrc'

ENV PS1="[\u@\h:\w]$"

2. docker build

docker build -t aws-cli .

3. 実行スクリプトの作成

  • アカウント単位ですぐ使えるようにスクリプト化。
  • tmuxなどで複数ターミナルを開けば同時に別のaws-cliを複数起動も。
  • 起動したコンテナは--rmオプションでexitしたら削除しコンテナのゴミは残さないように。
  • hオプションを付けてどんな環境なのかわかる名前を付けます。 ※複数実行した場合の作業ミス防止
  • s3などでローカルディレクトリを利用したい場合は、Dockerfile作成時に作業ディレクトリを作成しておき -v オプションでマウントしても良いかも知れません。
run.sh
AWS_ACCESS_KEY_ID="アクセスキー"
AWS_SECRET_ACCESS_KEY="シークレットキー"
AWS_DEFAULT_REGION="リージョン"

docker run -ith awscli-dev  --rm \
    -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
    -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
    -e AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION \
    aws-cli /bin/bash

4. スクリプト実行

# 実行権限はchmod +x run.sh
./run.sh
[root@awscli-dev:/]$ aws コマンド入力

さいごに

  • スクリプトを実行するだけで好きなアカウントのaws-cli環境に切替れるようになりました。
  • --profileオプションでアカウント切替える面倒から開放されましたが、どちらが良いか個人差ありそうです。
  • awscliでDocker環境つくりましたがaws-shellでも少しDockerfileを変更するだけでOKでした。
  • ここまで読んで頂きありがとうございました。
17
15
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?