この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
丹内です。
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ライフを楽しみましょう!