출처: https://mosei.tistory.com/entry/AWS-Elastic-Beanstalk-배포시-타임존-setup [씹어먹는 블로그:티스토리]배포할 웹 애플리케이션의 root 위치에
.ebextensions/05-setup-timezone.config
위 형태로 config 파일을 생성 후 아래와 같이 작성 후 배포한다.
commands: create_post_dir: command: mkdir /opt/elasticbeanstalk/hooks/appdeploy/post ignoreErrors: truefiles: "/opt/elasticbeanstalk/hooks/appdeploy/post/01-run-script.sh": mode: "000755" owner: root group: root content: | #! /bin/bash rm /etc/localtime ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
여러가지 .config 파일을 포함한 경우에는
앞단에서 실행되는 .config 파일에
command: mkdir /opt/elasticbeanstalk/hooks/appdeploy/post
위 커맨드가 포함되어 있다면,
위 예제에서 mkdir 은 할 필요가 없고, 밑에 files: 부분만 작성해주면 된다.
그럼 EB에 배포할 때마다 새로 타임존이 KST로 세팅 된다.
반응형
출처: https://mosei.tistory.com/entry/AWS-EBElastic-Beanstalk-ebextensions-사용하기 [씹어먹는 블로그:티스토리]EB의 장점 :
- 서버운영 및 인프라에 대해 잘 알지 못하더라도 AWS 클라우드에서 애플리케이션 배포를 손쉽게 할 수 있다.
- 로드밸런싱, 오토스케일링, 애플리케이션 모니터링 등 주요한 여러 기능들을 자동으로 관리 해준다.
EB의 단점 :
- 서버 인프라에 익숙한 관리자들에게는 제한적인 관리 요소
- 신규 인프라 구성 및 커스텀에 제한적임
- 이를 커버하기 위해 커스텀을 위한 옵션을 제공하는데, .ebextensions 에 옵션을 작성하는 형태로 제공하고, 옵션을 사용하기 위해 이에 맞는 문법을 익혀야 함
.ebextensions 는 애플리케이션이 배포될때 최초에 실행되는 커맨드라고 이해하면 된다.
.ebextensions 사용방법
1. 애플리케이션의 최상위(root) 위치에 .ebextensions 폴더 생성
2. 폴더 안에 .config 파일로 옵션들을 작성한다. (숫자와 문자 순 정렬로 읽게되고, 파일이름은 임의로 정하면 된다.)
myapp
ㄴ .ebextensions
ㄴ 01-setup-networks.config
ㄴ 02-setup-nodejs.config
ㄴ 03-setup-laravel.config
위의 형식으로 파일 구성을 만들어준다.
.config 예제
commands: create_post_dir: command: mkdir /opt/elasticbeanstalk/hooks/appdeploy/post ignoreErrors: true files: "/opt/elasticbeanstalk/hooks/appdeploy/post/01-run-script.sh": mode: "000755" owner: root group: root content: | #! /bin/bash cd /var/www/html container_commands: 01_install_modules: command: npm install --production 02_set_ownership: command: chown -R root storage bootstrap/cache
위 코드 설명
commands 와 container_commands 의 차이는 실행 시점에서 차이가 있다.
commands는 웹서버가 설정되고 애플리케이션 버전이 추출되기 전에 실행되고,
container_commands 는 웹서버가 설정되고 애플리케이션 버전 아카이브의 압축이 풀린 후에 실행된다.
그러므로 chown 처럼 애플리케이션 파일 소유자 권한 등을 세팅할 때에는 container_commands로 해야 한다.
.config 파일에 sudo chown 형식으로 명령어를 실행하는 것은 불가능하기 때문에 위 처럼 hooks을 사용하여
files 옵션을 사용해서 root 권한의 파일을 생성해준 후 chown 커맨드를 날리는 형식으로 사용해야 한다.
docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/ebextensions.html
구성 파일(.ebextensions)을 사용하여 고급 환경 사용자 지정 - AWS Elastic Beanstalk
새 구성 파일을 개발하거나 테스트할 때 기본 애플리케이션을 실행하는 정리된 환경을 시작하고 여기에 배포합니다. 구성 파일의 형식을 잘못 지정하면 새 환경 시작이 복구 불가능하게 실패할