AWS CLIのプロファイルを切り替えてebコマンドで既存ElasticBeanstalk Applicationにアクセスする

2015.06.10

丹内です。

Elastic Beanstalkの操作をCLIから行うにあたり、IAMユーザを切り替えた上で実行してみました。

AWS CLIとAWS EB CLIを使います。

環境

PCはMacで、Homebrewを使います。

また、AWS CLIにはプロファイルを複数使う仕組みがあるので、それを使います。

既にElastic Beanstalkアプリケーション(Rails)が動いていて、後から参入した開発者がAWS CLIの設定をしてElastic Beanstalkの操作をしたいとします。

ツールのインストール

$ brew install awscli aws-elasticbeanstalk

Access KeyとSecret Access Keyを取得する

事前にManagement ConsoleでIAMユーザを作成し、AWS CLI用のAccess KeyとSecret Access Keyを作成します。

AWS CLIにProfileを設定する

以下のようにして、AWS CLIでprofileを作成します。

このときはAWS EB CLIではないので注意が必要です。

$ aws configure --profile private
AWS Access Key ID [None]: abcd
AWS Secret Access Key [None]: efgh
Default region name [None]: ap-northeast-1
Default output format [None]: json

AWS CLIは~/.aws/に認証情報や設定を保存しています。Profile作成後に内容を見ると、設定が追加されていることがわかります。

~/.aws/credentials

[default]
aws_access_key_id =1234
aws_secret_access_key =5678
[private]
aws_access_key_id = abcd
aws_secret_access_key = efgh

~/.aws/config

[default]
output = json
region = us-east-1
[profile private]
output = json
region = ap-northeast-1

AWS CLIで作成されたプロファイルは、この後AWS EB CLIで参照します。

アプリのデプロイ設定

既にprivate-rails-appという名前でRailsアプリがElastic Beanstalkで動いているとします。

ここで、eb init実行時にprofileを指定します。

$ eb init --profile private

Select an application to use
1) private-rails-app
2) [ Create new Application ]
(default is 1): 1

以後、ebコマンドでprofileを使用してEBにアクセスできます。

$ eb list
* private-rails-app-env

$ eb status
Environment details for: private-rails-app-env
  Application name: private-rails-app
  Region: ap-northeast-1
  Deployed Version: test123
  Environment ID: e-aaaabbbb
  Platform: 64bit Amazon Linux 2015.03 v1.4.1 running Ruby 2.2 (Passenger Standalone)
  Tier: WebServer-Standard
  CNAME: private-rails-app-env-11223344.elasticbeanstalk.com
  Updated: 2015-06-10 09:00:00.000000+00:00
  Status: Ready
  Health: Green

まとめ

Elastic BeanstalkのCLIでプロファイルを使い分けることができました。

例えば案件ごとにIAMユーザを使い分ける場合、このProfile指定などは細かなことなのですが重要になってきます。

安全・快適にAWS EB CLIライフを楽しみましょう!

参考URL

既存の環境にバージョンをデプロイする - AWS公式ドキュメント

EB CLI 3.x - AWS公式ドキュメント

Configuring the AWS Command Line Interface - AWS公式ドキュメント