Elastic Beanstalk 환경 사용자 정의 메모
9542 단어 ElasticBeanstalk도커
개요
Elastic Beanstalk 사용하고 있습니까?
응용 프로그램 배포가 매우 편리하기 때문에 추천합니다.
최근에는 Docker에도 대응하고 Immutable Infrastructure와도 궁합이 좋습니다.
이 글에서는 Docker on Elastic Beanstalk에서 만든 환경을 사용자 정의하는 방법에 대해 설명합니다.
전제
AWS Elastic Beanstalk Command Line Tool이 설치되었습니다.
환경 커스터마이징 ① - 자동 스케일링 등 인프라 전체 설정
사용자 정의 방법
.elasticbeanstalk
아래에 생성된 optionsettings.yourapp-env
파일을 수정합니다.
구성 가능한 매개 변수는 여기에서 : 선택적 값 - AWS Elastic Beanstalk
예: autoscaling MaxSize/MinSize 변경
.elasticbeanstalk/optionsettings.yourapp-env[aws:autoscaling:asg]
MaxSize=4
MinSize=1
예: ELB의 subnet 변경
.elasticbeanstalk/optionsettings.yourapp-env[aws:ec2:vpc]
VPCId=vpc-xxxxxxxx
ELBScheme=public
ELBSubnets=subnet-xxxxxxxx
반영 방법
eb update
를 실행하면 반영됩니다.
$ eb update
Warning. File "config" has incorrect access permission and can be accessed by other users.
Update environment? [y/n]: y
Updating environment "yourapp-env". This may take a few minutes.
2014-09-30 14:31:27 INFO Updating environment yourapp-env's configuration settings.
2014-09-30 14:32:10 INFO Successfully deployed new configuration to environment.
2014-09-30 14:32:10 INFO Environment update completed successfully.
Update of environment "yourapp-env" has completed.
환경 사용자 정의 ② - 미들웨어 설치 등 인스턴스 단위 설정
서버에 공통적인 설정이나 미들웨어를 인스톨 하고 싶은 경우가 있을까 생각합니다.
일부러 IMAGE를 작성하지 않아도, 설정 파일을 작성하는 것만으로 대응하는 것이 가능합니다.
사용자 정의 방법
.ebextensions
아래에 *.config
라는 파일을 배치하여 환경을 사용자 정의합니다.
이들은 파일 이름의 오름차순으로 실행됩니다.
참고 : AWS Elastic Beanstalk 환경 사용자 지정 및 설정 - AWS Elastic Beanstalk
예: swap 영역 확보
기본적으로 t2.micro 인스턴스에는 swap 영역이 없습니다.
곧 OOM 에러가 되어 버리므로 만들어 줍니다.
.ebextensions/00_add_swap.configcommands:
01_enable_sudo:
command: "echo Defaults:root !requiretty >> /etc/sudoers"
test: "test ! -e /home/ec2-user/swapdone"
02_dd:
command: "sudo dd if=/dev/zero of=/swapfile bs=1M count=1024"
test: "test ! -e /home/ec2-user/swapdone"
03_mkswap:
command: "sudo mkswap /swapfile"
test: "test ! -e /home/ec2-user/swapdone"
04_swapon:
command: "sudo swapon /swapfile"
test: "test ! -e /home/ec2-user/swapdone"
05_swapdone:
command: "touch /home/ec2-user/swapdone"
test: "test ! -e /home/ec2-user/swapdone"
참고 : Amazon EC2 t1.micro 인스턴스에서 swap 사용 - blog입니까?
예: NewRelic 설치
서버 감시를 위해 NewRelic 에이전트를 도입합니다.
.ebextensions/01_newrelic.configpackages:
yum:
newrelic-sysmond: []
rpm:
newrelic: http://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm
commands:
01_configure_new_relic:
command: nrsysmond-config --set license_key=YOUR-LICENSE-KEY
02_start_new_relic:
command: /etc/init.d/newrelic-sysmond start
예: Shellshock 지원
2014-09-30 현재 EB의 인스턴스가 참조하는 리포지토리에는 최신 버전의 bash가 없습니다.
수동으로 bash rpm을 추가하고 설치하십시오.
.ebextensions/02_update_bash.configpackages:
yum:
bash: []
rpm:
bash: http://packages.us-east-1.amazonaws.com/2014.03/updates/e10f5b547e18/x86_64/Packages/bash-4.1.2-15.19.amzn1.x86_64.rpm
참고 : ElasticBeanstalk - Shellshock 지원 @ Elastic Beanstalk - Qiita
반영 방법
git aws.push
를 실행하면 반영됩니다.
$ git aws.push
Updating the AWS Elastic Beanstalk environment yknot-staging...
Environment update initiated successfully.
참고
[aws:autoscaling:asg]
MaxSize=4
MinSize=1
[aws:ec2:vpc]
VPCId=vpc-xxxxxxxx
ELBScheme=public
ELBSubnets=subnet-xxxxxxxx
$ eb update
Warning. File "config" has incorrect access permission and can be accessed by other users.
Update environment? [y/n]: y
Updating environment "yourapp-env". This may take a few minutes.
2014-09-30 14:31:27 INFO Updating environment yourapp-env's configuration settings.
2014-09-30 14:32:10 INFO Successfully deployed new configuration to environment.
2014-09-30 14:32:10 INFO Environment update completed successfully.
Update of environment "yourapp-env" has completed.
서버에 공통적인 설정이나 미들웨어를 인스톨 하고 싶은 경우가 있을까 생각합니다.
일부러 IMAGE를 작성하지 않아도, 설정 파일을 작성하는 것만으로 대응하는 것이 가능합니다.
사용자 정의 방법
.ebextensions
아래에 *.config
라는 파일을 배치하여 환경을 사용자 정의합니다.이들은 파일 이름의 오름차순으로 실행됩니다.
참고 : AWS Elastic Beanstalk 환경 사용자 지정 및 설정 - AWS Elastic Beanstalk
예: swap 영역 확보
기본적으로 t2.micro 인스턴스에는 swap 영역이 없습니다.
곧 OOM 에러가 되어 버리므로 만들어 줍니다.
.ebextensions/00_add_swap.config
commands:
01_enable_sudo:
command: "echo Defaults:root !requiretty >> /etc/sudoers"
test: "test ! -e /home/ec2-user/swapdone"
02_dd:
command: "sudo dd if=/dev/zero of=/swapfile bs=1M count=1024"
test: "test ! -e /home/ec2-user/swapdone"
03_mkswap:
command: "sudo mkswap /swapfile"
test: "test ! -e /home/ec2-user/swapdone"
04_swapon:
command: "sudo swapon /swapfile"
test: "test ! -e /home/ec2-user/swapdone"
05_swapdone:
command: "touch /home/ec2-user/swapdone"
test: "test ! -e /home/ec2-user/swapdone"
참고 : Amazon EC2 t1.micro 인스턴스에서 swap 사용 - blog입니까?
예: NewRelic 설치
서버 감시를 위해 NewRelic 에이전트를 도입합니다.
.ebextensions/01_newrelic.config
packages:
yum:
newrelic-sysmond: []
rpm:
newrelic: http://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm
commands:
01_configure_new_relic:
command: nrsysmond-config --set license_key=YOUR-LICENSE-KEY
02_start_new_relic:
command: /etc/init.d/newrelic-sysmond start
예: Shellshock 지원
2014-09-30 현재 EB의 인스턴스가 참조하는 리포지토리에는 최신 버전의 bash가 없습니다.
수동으로 bash rpm을 추가하고 설치하십시오.
.ebextensions/02_update_bash.config
packages:
yum:
bash: []
rpm:
bash: http://packages.us-east-1.amazonaws.com/2014.03/updates/e10f5b547e18/x86_64/Packages/bash-4.1.2-15.19.amzn1.x86_64.rpm
참고 : ElasticBeanstalk - Shellshock 지원 @ Elastic Beanstalk - Qiita
반영 방법
git aws.push
를 실행하면 반영됩니다.$ git aws.push
Updating the AWS Elastic Beanstalk environment yknot-staging...
Environment update initiated successfully.
참고
Reference
이 문제에 관하여(Elastic Beanstalk 환경 사용자 정의 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kakipo/items/37cac238c1934f473960텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)