.ebextensions/06-setup-crontab.config
파일 생성 후 아래와 같이 작성 & 배포 한다.
commands:
01_create_post_dir:
command: mkdir /opt/elasticbeanstalk/hooks/appdeploy/post
ignoreErrors: true
02_crontab_setup:
command: sudo bash -c 'cat <(crontab -l) <(echo "*/20 * * * * sudo sh /opt/elasticbeanstalk/hooks/appdeploy/post/03-run-script.sh") | crontab -'
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/03-run-script.sh":
mode: "000755"
owner: root
group: root
content: |
#! /bin/bash
aws s3 cp /var/app/current/storage/logs s3://s3domain.com/logs/`date +%F`/$(hostname -s)/ --recursive
03-run-script.sh 파일을 생성하고 logs 파일들을 s3로 복사해서 업로드 시키는 코드를 작성한다.
02_crontab_setup 은 20분마다 03-run-script.sh 를 실행시키는 작업을 crontab에 한줄로 등록한다.
elastic beanstalk 에서 load balancer 사용중이라서
배포시 머신이 변경될 때 마다 s3/logs 폴더 안에 날짜별로 해당 머신의 로그파일들을 올릴수 있게 했다.
위처럼 load balancer로 EC2 머신 4개 운영 시 각각의 머신 hostname 별로 저장된다.
반응형
'AWS' 카테고리의 다른 글
[Cloudflare] AWS S3 보다 저렴한 클라우드플레어 R2 (0) | 2021.11.11 |
---|---|
[AWS] RDS Replication 구성하기 (0) | 2021.07.14 |
[AWS] AWS CLI를 통해 S3 로 파일 업로드 하기 (0) | 2021.03.24 |
[AWS] Elastic Beanstalk 콘솔 에서 Laravel 로그 받는 방법 (0) | 2021.03.16 |
[AWS] Elastic Beanstalk 배포시 타임존 setup (0) | 2021.03.16 |