AWS
newrelic
ElasticBeanstalk
docker

Elastic Beanstalk (Docker)で環境変数の有無によって処理をする

More than 1 year has passed since last update.


What

Solution Stack: 64bit Amazon Linux 2016.09 v2.2.2 running Docker 1.11.2の場合


Why

環境別(本番、開発等)で環境変数の有無によってElastic Beanstalk上のホストで処理をしたい。例えば本番環境でのみnewrelicをインストールするとか。


How

コンテナホスト(EC2)上では直接Elastic Beanstalkの環境変数が見れないのでget-configを使う。


.ebextensionsnewrelic.config

packages: 

yum:
newrelic-sysmond: []
rpm:
newrelic: http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm
container_commands:
"01":
command: /opt/elasticbeanstalk/bin/get-config environment | jq -e -r '.NEWRELIC_KEY' && usermod -a -G docker newrelic || echo 'NEWRELIC_KEY not found'
"02":
command: /opt/elasticbeanstalk/bin/get-config environment | jq -e -r '.NEWRELIC_KEY' && nrsysmond-config --set license_key=$NEWRELIC_KEY || echo 'NEWRELIC_KEY not found'
"03":
command: /opt/elasticbeanstalk/bin/get-config environment | jq -e -r '.NEWRELIC_KEY' && /etc/init.d/newrelic-sysmond start || echo 'NEWRELIC_KEY not found'

この場合、NEWRELIC_KEYが存在する場合のみ設定がされる。