リモート開発メインのソフトウェア開発企業のエンジニアブログです

AWS CLI のプロファイル切り替え関連

業務で AWS を使っていると、複数の AWS のアカウント/ユーザーを切り替える事が多いと思います。AWS CLI で使うアカウント/ユーザーを切り替えるには、プロファイルという仕組みを使いますが、今回はそれに関して書きます。

なお、初心者向けの簡単な内容の項目は、見出しに「(初心者向け)」と明記しておきますので、中〜上級者は飛ばして下さい。

初期設定(初心者向け)

AWS CLI を使う際には、 aws configure コマンドで初期設定します。方法は、以下のページに記載されているので、そちらを参照して下さい。

AWS CLI の設定 – AWS Command Line Interface

AWS 環境が1つしかない場合は、aws configure コマンドを引数無しで実行して、デフォルトのプロファイルを作成しますが、複数の環境を切り替えたい場合は、aws configure --profile プロファイル名 という形でプロファイルを作成します。これも、上のページに記載されています。

プロファイルの切り替え方(初心者向け)

複数のプロファイルをどうやって切り替えるかですが、具体的には2通りの方法があります。

  • 環境変数にプロファイル名を設定する
  • コマンドのオプションでプロファイル名を指定する

前者は、 AWS_PROFILE 環境変数などに値を設定して、コマンドを実行します。例えば以下のような形です。

export AWS_PROFILE=foo-system-production
aws s3 ls

後者の例としては以下の通りです。

aws s3 ls --profile foo-system-production

設定すべき環境変数が色々ある

どのような環境変数を設定すると AWS CLI がどう動作するかは、以下のページに記載があります。

AWS CLI を設定する環境変数 – AWS Command Line Interface

ただ、いくつか注意点があるので、以下に記載します。

AWS_DEFAULT_PROFILE は使ってはいけない

AWS_PROFILE は、以前は AWS_DEFAULT_PROFILE という名前だったようですが、現在は AWS_DEFAULT_PROFILE はドキュメントにもありませんし、使わない方が良いでしょう。

EB CLI の場合、AWS_EB_PROFILE

Elastic Beanstalk をコマンドラインから使う場合には、EB CLI という AWS CLI とは別のツールを使う必要があります。そして、使う環境変数も AWS_EB_PROFILE という違う名前です。

EB CLI の設定 – AWS Elastic Beanstalk

正直、統一して欲しいところです。

環境変数名が違うのはドキュメントに記載されているのですが、私は読み飛ばしていたため、AWS_PROFILE を設定しているのに効かない!としばらく時間を無駄に費やしてしまいました。

まとめ

AWS のプロファイルを切り替えるには、環境変数を設定するかコマンドラインオプションとして指定する必要があります。環境変数名は、AWS CLI と EB CLI では異なりますので、EB CLI を使う場合には注意して下さい。

← 前の投稿

JAVA_TOOL_OPTIONS環境変数でAWS Lambda関数のシステムプロパティを設定する

次の投稿 →

CentOS 7で Tomcat 9 + Apache を動かす

コメントを残す