Beanstalk Linux νλ«νΌ νμ₯μ λν΄μ
μ€λλ§μ μ κ· νλ‘μ νΈλ‘ μΈνμ¬ μλ§μ‘΄ μΉ μλΉμ€μ λΉμ€ν‘ νκ²½ ꡬμ±μ λν΄μ μ΄ν΄λ³Ό κΈ°νκ° μμ΄ λ¦¬λ μ€ νλ«νΌμ νμ₯μ λν΄ λ μμΈνκ² νμ΅νκ³ μ΄λ»κ² μ΄μ©ν μ μλμ§ μ 리ν΄λ³΄κ³ μ νλ€. μμ κ³Ό λ€λ₯΄κ² λ³κ²½λλ λΆλΆμ΄ μκ°λ³΄λ€ λ§μμ μ€λμ μ μ 리νλ AWS Elastic Beanstalk Java SE νλ«νΌ νκ²½μΌλ‘ μ ν리μΌμ΄μ λ°°ν¬νκΈ°λΌλ κΈμ μ¬λ°λ₯΄μ§ μμ λ΄μ©μ ν¬ν¨νκ³ μμμ μλ¦°λ€.
AWS Elastic Beanstalk μ μ ν리μΌμ΄μ μ μ΄μνκΈ° μν μΈνλΌλ₯Ό μ½κ² ꡬμ±νκ³ λ°°ν¬ν μ μλλ‘ κ΄λ¦¬ν΄μ€λ€. κ°λ°μκ° μΈνλΌμ λν΄μ μ κ²½μ°μ§ μμλ νΈλν½μ΄λ μΌμ μκ³κ° κΈ°λ°μΌλ‘ μ€μΌμΌ μμμ΄ κ°λ₯νλλ‘ μ€μ ν μ μμΌλ©° λ€μν μΈμ΄λ‘ μμ±λλ μ ν리μΌμ΄μ μ λν΄μ μ§μνκ³ μ¬μ§μ΄λ λ컀 컨ν μ΄λ λ΄μμ μ€ννλ νκ²½κΉμ§λ μ 곡νλ€. Amazon EKSμ κ°μ μΏ λ²λ€ν°μ€ μΈνλΌ νκ²½μ ꡬμ±ν νμκ° μλ μμ κ·λͺ¨μ νλ‘μ νΈλΌλ©΄ AWS Elastic Beanstalkμ μ’μ μ νμ ν΄λΉν μ μλ€.
κ°λ° μ‘°μ§μμ μΏ λ²λ€ν°μ€λ₯Ό κ³ λ―Όνκ³ μλ€λ©΄ μ λ§λ‘ μΏ λ²λ€ν°μ€κ° νμν κ·λͺ¨μΈκ°μ λν΄μ κ³ λ―Όν΄λ³Ό νμκ° μλ€. κ°μΈμ μΌλ‘ μΏ λ²λ€ν°μ€κ° νμν΄λ³΄μ΄λ κ·λͺ¨μ νλ‘μ νΈλ μκ°λ³΄λ€ λ§μ§ μμκ±°λΌκ³ μκ°νλ νΈμ΄λ€. μ΅μν μΏ λ²λ€ν°μ€λ₯Ό μ λλ‘ κ΄λ¦¬ν μ μλ μ΄μ μ‘°μ§μ ꡬμ±ν μ μμ΄μΌνλ€.
μν μ ν리μΌμ΄μ
AWS Elastic Beanstalk μ μ¬μ©νλ©΄ μ ν리μΌμ΄μ μ μ½κ² λ°°ν¬ν μ μλ νκ²½μ λ§λ€ μ μμ§λ§ κ°μΈμ μΈ κ²½νμ κΈ°λ°μΌλ‘ μ΄μΌκΈ°ν΄λ³΄μλ©΄ μ²μμ νκ²½μ ꡬμ±ν΄λ³΄κ³ μνλ κ²½μ° μκ°λ³΄λ€ λ§μ μ€λ₯λ₯Ό κ²½ννκ³ μ€ν¨ν΄μ νκ²½μ μ§μ λ€κ° μλ‘ μμ±νλ κ²½μ°κ° λ§μ κ²μ΄λ€. λΉμ€ν‘ νκ²½μ λν κ²½νμ΄ μλλΌλ μ΅μν μ²μμλ μν μ ν리μΌμ΄μ μ μ¬μ©ν΄μ νκ²½μ μμνλ κ²μ κΆμ₯νλ€. AWS CloudFormation μ μ΄μ©νμ¬ Elastic Beanstalk νκ²½ μ€νμ ꡬμ±νκΈ° λλ¬Έμ λΉμ€ν‘ μλΉμ€μμ μ‘°μ°¨ ν΄κ²°ν μ μλ μνκ° λλ€λ©΄ CloudFormation μμ μ§μ μ€νμ μμ νκ±°λ μμ ν΄μΌνλ€.
μ ν리μΌμ΄μ μμ€ λ²λ€
νλ«νΌ νμ₯μ λν΄μ μ΄μΌκΈ°νκΈ° μμ λΉμ€ν‘ νκ²½μ μ ν리μΌμ΄μ λ°°ν¬ μ μ¬μ©λλ μ ν리μΌμ΄μ μμ€ λ²λ€μ λν΄μ μ 리ν΄λ³΄μ. μ ν리μΌμ΄μ μμ€ λ²λ€μ λν μ£Όμμ¬νμΌλ‘ μΈν΄ μ ν리μΌμ΄μ λ°°ν¬κ° μ€ν¨νμ¬ λ‘€λ°±λλ κ²½μ°λ μκΈ° λλ¬Έμ΄λ€.
- λ¨μΌ ZIP νμΌ λλ WAR νμΌμ΄μ΄μΌ νλ€.
- μμ€ λ²λ€μ ν¬κΈ°λ 500 MBλ₯Ό μ΄κ³Όνμ§ μμμΌ νλ€.
λ¨μΌ μ ν리μΌμ΄μ μ λ°°ν¬νλλΌλ ZIP νμΌλ‘ ꡬμ±λ μμ€ λ²λ€μ μ¬μ©νμ¬ Procfileμ λ°λμ μ΄μ©νκΈ°λ₯Ό κΆμ₯νλ€.
Elastic Beanstalk Linux νλ«νΌ νμ₯
Elastic Beanstalk Linux νλ«νΌμ μλ§μ‘΄ μΉ μλΉμ€μμ μ 곡νλ Amazon Linuxλ₯Ό κΈ°λ°μΌλ‘ 리λ μ€λ₯Ό ꡬμ±νλ νκ²½μ λ§νλ€. κΈ°λ³Έμ μΌλ‘ μΌλ°μ μΈ λ¦¬λ μ€ νκ²½ μ€μ μ μ 곡νκΈ°λ νμ§λ§ μ ν리μΌμ΄μ μꡬμ¬νμ λ°λΌ 보μ μ‘°μΉλ₯Ό ν΄μΌνκ±°λ μκ° μ€μ λλ λͺ¨λν°λ§ μ루μ κ³Όμ μ°κ³λ₯Ό μν΄ λ³λμ μμ΄μ νΈλ ν¨ν€μ§λ₯Ό μ€μΉνμ¬ νκ²½ ꡬμ±μ νμ₯ν΄μΌν μ μλ€. Elastic Beanstalk Linux νλ«νΌ μμλ μ ν리μΌμ΄μ μμ€ λ²λ€μ ν¬ν¨λλ .platform λλ .ebextensions ν΄λλ₯Ό ν΅ν΄ νλ«νΌμ λν΄μ νμ₯μ μ§μνλ€.
2023λ 10μ 19μΌλΆν° Amazon Liunx 2μ Amazon Linux 2023μ μ§μνκ³ μμΌλ©° AL2μ λν΄μλ 2025λ 6μ 30μΌκΉμ§ μ§μ μμ μ΄λ€. AL2023 μΌλ‘μ λ§μ΄κ·Έλ μ΄μ μ μΆ©λΆν μ 곡νκΈ° μν΄ Amazon Linux 2 μ§μ μ’ λ£ λ μ§(EOL)κ° 2023λ 6μ 30μΌμμ 2025λ 6μ 30μΌλ‘ 2λ μ°μ₯λμλ€.
λ³Έ κΈμμλ μλ° μ€νλ§ κΈ°λ°μ λ°±μλ κ°λ°μ κΈ°μ€μ Java SE νλ«νΌμ λν΄μλ§ μ€λͺ νλ€. λλ¨Έμ§ νλ«νΌμ λν΄μλ κ²½νν κΈ°νκ° μκΈ°μ νλ«νΌ κ΅¬μ± νμ₯ μ λ°μν μ μλ μ¬λ¬κ°μ§ νΈλ¬λΈμν μ λν΄μ 곡μ νκΈ°κ° μ΄λ ΅λ€. μλ¬΄νΌ Elastic Beanstalk μμ μ ν리μΌμ΄μ μ λ°°ν¬νκΈ° μν νκ²½μ ꡬμ±νλ κ³Όμ , μ ν리μΌμ΄μ μ λ°°ν¬νλ κ³Όμ μ λν΄μ μ΄ν΄νλ€λ©΄ μ΄λ€ λ¬Έμ κ° λ°μνμ λ μ΄λ€ λΆλΆμ λ‘κ·Έλ₯Ό νμΈν΄μΌνλμ§λ₯Ό μ μ μλ€.
리λ²μ€ νλ‘μλ₯Ό μν Nginx μΉμλ² κ΅¬μ±
Elastic Beanstalk Java SE νλ«νΌμλ 리λ²μ€ νλ‘μ μν μ νλ©° μΊμλ μ μ μ½ν μΈ λ₯Ό μ 곡νκ³ μμ²μ μ ν리μΌμ΄μ μ μ λ¬νλ nginx μλ²κ° ν¬ν¨λμ΄ μλ€. κΈ°λ³Έμ μΈ μ€μ μ μ 곡νκ³ μμ΄ .conf νμΌμ ν¬ν¨μν¬μλ μκ³ nginx.conf νμΌμ μμ ν λ체ν μλ μλ€. Nginx μΉμλ² κ΅¬μ±μ νμ₯νκΈ° μ μ κΈ°λ³Έμ μΈ μ€μ μ μ΄λ»κ² μ 곡νλ©° λΆνμν νμ₯μ μννλ 건 μλμ§ νμΈνλ κ²μ΄ μ’λ€. AWS Beanstalkμ μ΄μ©ν μ±λ₯ νλ μ리μ¦μ Nginx νλ μμ νμΈν μ μλ 컀λ₯μ μ²λ¦¬λ₯Ό μν λ°©μμ epollλ‘ μ ννκ³ μ νλ κ²½μ°λ κ³ λ €ν΄λ³Όλ§ νλ€.
events λλ ν°λΈ μμΉ μ epoll λ°©μμ μ μ©νκΈ° μν΄μλ .platform/nginx/nginx.confλ‘ μμ ν λ체ν μ λ°μ μλ€.
λ€μμ Amazon Linux 2023 κΈ°λ°μμμ κΈ°λ³Έκ°μ ν λλ‘ μΌλΆ μ΅μ μ μ μ©ν κ²μ΄λ€. include μμΉμ λ°λΌμ μ΄λ ν΄λμ μ€μ νμΌμ λ μ μλμ§ μ μ΄ν΄λ³΄κΈ°λ₯Ό λ°λλ€. μ΄μ°¨νΌ nginx.confλ‘ λ체ν κ²μ΄λΌλ©΄ nginx.conf νμΌμ λͺ¨λ μ€μ μ λμ΄λ μκ΄μ΄ μλ€.
.platform/nginx/nginx.confuser nginx; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; worker_processes auto; worker_rlimit_nofile 200000; events { use epoll; worker_connections 1024; multi_accept on; } http { server_tokens off; include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; include conf.d/*.conf; map $http_upgrade $connection_upgrade { default "upgrade"; } server { listen 80 default_server; access_log /var/log/nginx/access.log main; client_header_timeout 60; client_body_timeout 60; keepalive_timeout 60; gzip off; gzip_comp_level 4; gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript; # Include the Elastic Beanstalk generated locations include conf.d/elasticbeanstalk/*.conf; } }
.platform/nginx/conf.d/upstream.confupstream web { server 127.0.0.1:5000; keepalive 1024; }
.platform/nginx/conf.d/elasticbeanstalk/00_application.conflocation / { proxy_pass http://web; proxy_http_version 1.1; proxy_set_header Connection $connection_upgrade; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
νλ«νΌ μ€ν¬λ¦½νΈ λꡬ
/opt/elasticbeanstalk/bin/get-config
λ Amazon Linux νλ«νΌμ μ¬μ©νλ νκ²½μ λν΄ AWS Elastic Beanstalkκ° μ 곡νλ λꡬμ΄λ€. νλ«νΌ νΉμ 컨ν
μ΄λ μ 보λ₯Ό μ‘°ννκ±°λ νκ²½ λ³μλ₯Ό κ°μ Έμ€λλ° μ¬μ©ν μ μλ€. λ§μ½, λΉμ€ν‘μ μν΄ λ§λ€μ΄μ§ EC2 μΈμ€ν΄μ€μ μ μνμ¬ νμ¬ μ€νμ€μΈ μ ν리μΌμ΄μ
λ²λ€μ΄ μμΉνλ ν΄λ λλ νμΈνκ³ μ νλ λ‘κ·Έκ° μ΄λ€ μμΉμ μλμ§ μκ³ μΆλ€λ©΄ μλμ κ°μ΄ λͺ
λ Ήμ΄λ₯Ό μννμ¬ νμΈν μ μλ€.
# /opt/elasticbeanstalk/bin/get-config --output YAML platformconfig
generalconfig:
appuser: webapp
appdeploydir: /var/app/current/
appstagingdir: /var/app/staging/
proxyserver: nginx
defaultinstanceport: "80"
platformspecificconfig:
ApplicationPort: "5000"
JavaVersion: "11"
# /opt/elasticbeanstalk/bin/get-config --output YAML container
common_log_list:
- /var/log/eb-engine.log
- /var/log/eb-hooks.log
default_log_list:
- /var/log/nginx/access.log
- /var/log/nginx/error.log
- /var/log/web.stdout.log
environment_name: test-env
instance_port: "80"
log_group_name_prefix: /aws/elasticbeanstalk
proxy_server: nginx
static_files:
- ""
xray_enabled: "false"
AWS Elastic Beanstalk νκ²½μμ λ΄λ λ¦ μΈνλΌ λ° μλ° μμ΄μ νΈλ₯Ό μ€μΉνλ κ³Όμ μμ νμ©ν μμ μ΄λ€.
μΈμ€ν΄μ€ λ©νλ°μ΄ν° μλΉμ€ ꡬμ±
νμ¬ μ¬μ©νκ³ μλ νλ«νΌ λ²μ κ³Ό μ€μ μ λ°λΌμ IMDSμ λν νλ«νΌ μ§μ μ¬λΆλ₯Ό νμΈν΄λ³΄λκ² μ’λ€. νλ«νΌ νμ₯ κ΅¬μ± μ μΈμ€ν΄μ€ λ©νλ°μ΄ν° μλΉμ€λ₯Ό μ΄μ©ν΄μΌν νμμ±μ΄ μꡬλλ€λ©΄ IMDSv2
λ₯Ό μ΄μ©ν΄μΌνλ νκ²½μμλ μΈμ€ν΄μ€ λ©νλ°μ΄ν° μλΉμ€ μ κ·Όμ μν ν ν°μ λ¨Όμ λ°κΈν λ€μ μΈμ€ν΄μ€ λ©νλ°μ΄ν° μλΉμ€μ μμ²ν΄μΌνλ€.
.ebextensions/00_init.configoption_settings: aws:autoscaling:launchconfiguration: DisableIMDSv1: true
.ebextensions/02_newrelic-infra.configcommands: 02_configure-newrelic-infra: command: | NEW_RELIC_LICENSE_KEY=`/opt/elasticbeanstalk/bin/get-config environment -k NEW_RELIC_LICENSE_KEY` METADATA_TOKEN=`curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` INSTANCE_ID=`curl -s -H "X-aws-ec2-metadata-token: $METADATA_TOKEN" http://169.254.169.254/latest/meta-data/instance-id` ENVIRONMENT_NAME=`/opt/elasticbeanstalk/bin/get-config container -k environment_name` NEW_RELIC_HOSTNAME="${ENVIRONMENT_NAME}_${INSTANCE_ID}" sudo sed -i "s/^license_key:.*/license_key: ${NEW_RELIC_LICENSE_KEY}/g" /etc/newrelic-infra.yml sudo sed -i "s/^display_name:.*/display_name: ${NEW_RELIC_HOSTNAME}/g" /etc/newrelic-infra.yml sudo systemctl restart newrelic-infra sudo rm -r /etc/newrelic-infra.*.bak
μ‘°μ§μμ ꡬμ±ν Beanstalk νκ²½λ§λ€ IMDSv1 μ΅μ μ€μ μ΄ λ€λ¦μ νμΈνμΌλ λ€ννλ μΈμ€ν΄μ€ λ©νλ°μ΄ν° μλΉμ€λ₯Ό νμ©νλ λΆλΆμ μμλ€. μ°Έκ³ λ‘, IMDSv1μ κ²½μ° κΆνμ μꡬνμ§ μμΌλ―λ‘ λ³΄μ μ·¨μ½μ μ ν΄λΉνλ―λ‘ IMDSv1 μ΅μ μ λΉνμ±ννλ κ²μ κΆκ³ νλ€.
μΈμ€ν΄μ€ λ°°ν¬ μν¬νλ‘μ°
μΈμ€ν΄μ€ λ°°ν¬ μν¬νλ‘μ°λ₯Ό μ΄ν΄λ³΄λ©΄ λΉμ€ν‘μμ μ΄λ ν κ³Όμ μΌλ‘ λ°°ν¬ λ¨κ³λ₯Ό κ±°μΉλμ§λ₯Ό μ€λͺ νλ€. κ΅¬μ± νμΌ(.ebextensions)μΌλ‘ λ΄λ λ¦ μμ΄μ νΈλ₯Ό μ€μΉν μλ μμΌλ νλ«νΌ νμ₯(.platform)μ νλ«νΌ νν¬ μ€ν¬λ¦½νΈλ‘λ μ€μΉ λͺ λ Ήμ΄λ₯Ό μνν μ μλ€.
.platform/hooks/predeploy/01_newrelic.sh#!/bin/bash NEW_RELIC_LICENSE_KEY=`/opt/elasticbeanstalk/bin/get-config environment -k NEW_RELIC_LICENSE_KEY` NEW_RELIC_APP_NAME=`/opt/elasticbeanstalk/bin/get-config environment -k NEW_RELIC_APP_NAME` METADATA_TOKEN=`curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` INSTANCE_ID=`curl -s -H "X-aws-ec2-metadata-token: $METADATA_TOKEN" http://169.254.169.254/latest/meta-data/instance-id` ENVIRONMENT_NAME=`/opt/elasticbeanstalk/bin/get-config container -k environment_name` NEW_RELIC_HOSTNAME="${ENVIRONMENT_NAME}_${INSTANCE_ID}" sed -i "s/^license_key:.*/license_key: ${NEW_RELIC_LICENSE_KEY}/g" /var/app/newrelic/newrelic.yml sed -i "s/^app_name:.*/app_name: ${NEW_RELIC_APP_NAME}/g" /var/app/newrelic/newrelic.yml sed -i "s/^hostname:.*/hostname: $NEW_RELIC_HOSTNAME/g" /var/app/newrelic/newrelic.yml
λ΄λ λ¦ μΈνλΌμ€νΈλμ² λ° μλ° μμ΄μ νΈ μ€μΉν΄λ³΄κΈ°
.ebextensions/01_newrelic.configfiles: "/var/app/newrelic/newrelic.jar": mode: "000755" owner: webapp group: webapp source: https://download.newrelic.com/newrelic/java-agent/newrelic-agent/current/newrelic.jar "/var/app/newrelic/newrelic.yml": mode: "000755" owner: webapp group: webapp source: https://download.newrelic.com/newrelic/java-agent/newrelic-agent/current/newrelic.yml commands: 01_configure_newrelic: command: | NEW_RELIC_LICENSE_KEY=`/opt/elasticbeanstalk/bin/get-config environment -k NEW_RELIC_LICENSE_KEY` NEW_RELIC_APP_NAME=`/opt/elasticbeanstalk/bin/get-config environment -k NEW_RELIC_APP_NAME` sed -i "s/<%= license_key %>/${NEW_RELIC_LICENSE_KEY}/g" /var/app/newrelic/newrelic.yml sed -i "s/My Application/${NEW_RELIC_APP_NAME}/g" /var/app/newrelic/newrelic.yml 02_configure_newrelic_instance: command: | METADATA_TOKEN=`curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` INSTANCE_ID=`curl -s -H "X-aws-ec2-metadata-token: $METADATA_TOKEN" http://169.254.169.254/latest/meta-data/instance-id` ENVIRONMENT_NAME=`/opt/elasticbeanstalk/bin/get-config container -k environment_name` NEW_RELIC_HOSTNAME="${ENVIRONMENT_NAME}_${INSTANCE_ID}" sed -i "s/^hostname:.*/hostname: $NEW_RELIC_HOSTNAME/g" /var/app/newrelic/newrelic.yml 03_clear_newrelic_bak_files: command: sudo rm -r /var/app/newrelic/newrelic.*.bak
.ebextensions/02_newrelic-infra.configfiles: "/etc/newrelic-infra.yml" : mode: "000644" owner: root group: root content: | license_key: display_name: commands: 01_install-newrelic-infra: command: | source "/etc/os-release" ARCH=`uname -m` sudo curl -o /etc/yum.repos.d/newrelic-infra.repo "https://download.newrelic.com/infrastructure_agent/linux/yum/amazonlinux/$VERSION_ID/$ARCH/newrelic-infra.repo" sudo yum -q makecache -y --disablerepo='*' --enablerepo='newrelic-infra' sudo yum install newrelic-infra -y 02_configure-newrelic-infra: command: | NEW_RELIC_LICENSE_KEY=`/opt/elasticbeanstalk/bin/get-config environment -k NEW_RELIC_LICENSE_KEY` METADATA_TOKEN=`curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` INSTANCE_ID=`curl -s -H "X-aws-ec2-metadata-token: $METADATA_TOKEN" http://169.254.169.254/latest/meta-data/instance-id` ENVIRONMENT_NAME=`/opt/elasticbeanstalk/bin/get-config container -k environment_name` NEW_RELIC_HOSTNAME="${ENVIRONMENT_NAME}_${INSTANCE_ID}" sudo sed -i "s/^license_key:.*/license_key: ${NEW_RELIC_LICENSE_KEY}/g" /etc/newrelic-infra.yml sudo sed -i "s/^display_name:.*/display_name: ${NEW_RELIC_HOSTNAME}/g" /etc/newrelic-infra.yml sudo systemctl restart newrelic-infra sudo rm -r /etc/newrelic-infra.*.bak
λ΄λ λ¦ μΈνλΌ μμ΄μ νΈ μ€μΉ μ Amazon Linux λ²μ κ³Ό ARM μν€ν μ²λ νμΈνμ¬ μ€μΉλ μ μλλ‘ νμλ€.
.platform/confighooks/prebuild/00_hostname.sh#!/bin/bash ENVIRONMENT_NAME=`/opt/elasticbeanstalk/bin/get-config container -k environment_name` METADATA_TOKEN=`curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` INSTANCE_ID=`curl -s -H "X-aws-ec2-metadata-token: $METADATA_TOKEN" http://169.254.169.254/latest/meta-data/instance-id` sudo hostnamectl set-hostname "${ENVIRONMENT_NAME}_${INSTANCE_ID}"
.platform/hooks/predeploy/01_newrelic.sh#!/bin/bash NEW_RELIC_LICENSE_KEY=`/opt/elasticbeanstalk/bin/get-config environment -k NEW_RELIC_LICENSE_KEY` NEW_RELIC_APP_NAME=`/opt/elasticbeanstalk/bin/get-config environment -k NEW_RELIC_APP_NAME` sed -i "s/^license_key:.*/license_key: ${NEW_RELIC_LICENSE_KEY}/g" /var/app/newrelic/newrelic.yml sed -i "s/^app_name:.*/app_name: ${NEW_RELIC_APP_NAME}/g" /var/app/newrelic/newrelic.yml
νΈμ€νΈμ΄λ¦ λ‘μ§μ λν΄μλ μ‘°κΈ λ μ΄ν΄λ³΄μμΌν λΆλΆ κ°λ€. λ¬Έμ μμΌλ‘λ newrelic.yml μ process_host.display_name μμ±μ μΆκ°λ‘ κΈ°μ¬ν΄μΌνλ€. κΈ°λ³Έμ μΌλ‘ host:port λ₯Ό μ°Έμ‘°νλ―λ‘ EC2 μΈμ€ν΄μ€μ νΈμ€νΈμ΄λ¦ μ체λ₯Ό λ³κ²½νμλ€.
Elastic Beanstalk μ£Όμμ¬ν μ 리
- μ ν리μΌμ΄μ μμ€ λ²λ€μ νμ Procfileμ ν¬ν¨μν€κΈ°
- μμ€ λ²λ€ ν¬κΈ°κ° 500MBλ₯Ό λμ§ μλλ‘ μ²΄ν¬νκΈ°
- νκ²½ κ΅¬μ± μ μν μ ν리μΌμ΄μ μΌλ‘ μμνκΈ°
- νκ²½ μμ±μ μ΅λν νμ©νλλ‘ νλ«νΌ νμ₯ μ€ν¬λ¦½νΈ μ μνκΈ°
Elastic Beanstalk λ°°ν¬ μ μ νμ΄ μλ£λκΈ° κΉμ§ μλΉν μκ°μ΄ μμλλ 건 λ무 ν° λ¨μ κ°λ€.