728x90
반응형
설정 파일 작동 원리
Elastic Beanstalk은 배포 파일을 전달 받으면,
각종 설정 파일들을 실행하고 나서, 애플리케이션 실행 단계를 거치게 된다.
이때, Elastic Beanstalk이 배포 애플리케이션을 실행한다는 것의 의미는,
Procfile 파일을 실행하는 것이다.
그래서 Procfile 안에는 .ebextensions 파일에 /sbin/appstart 스크립트를 실행하는 코드만이 담겨져 있다.
* Procfile
springapp: appstart
* .ebextensions/00-makeFiles.config
files:
"/sbin/appstart":
mode: "000755"
owner: webapp
group: webapp
content: |
#!/usr/bin/env bash
JAR_PATH=/var/app/current/application.jar
# run app
java -Dspring.profiles.active=prod -Dfile.encoding=UTF-8 -jar $JAR_PATH
Elastic Beanstalk 같은 경우, 자동으로 대부분의 시스템을 처리해주기 때문에 커스텀을 하기 위해서는,
.ebextensions 디렉토리에 사용자가 실행하고자 하는 명령어를 스크립트로 작성하여 커스텀할 수 있다.
/sbin 아래에 appstart 스크립트를 배치하여 전역에서 실행 가능하게 해준다.
755 권한, webapp 사용자로 content를 실행하게 된다.
#!/usr/bin/env은 절대경로에 상관 없이 인터프리터의 위치를 찾아서 실행해준다는 의미이다.
최종 배포 순서 정리
1. Github Actions가 deploy.yml 파일 실행, deploy.zip 파일 생성
2. Elastic Beanstalk에 deploy.zip 파일 전달
3. Procfile 실행
4. /sbin/appstart 스크립트 실행
5. application.jar 파일 실행
728x90
반응형
'Skills > DevOps' 카테고리의 다른 글
#3 AWS Elastic Beanstalk 기반 CI/CD 블루그린 배포 - deploy.yml (0) | 2023.05.23 |
---|---|
#0 AWS Elastic Beanstalk 기반 CI/CD 블루그린 배포 - 배포 프로세스 (0) | 2023.05.22 |
#2 AWS Elastic Beanstalk 기반 CI/CD 블루그린 배포 - Procfile, .ebextensions (1) | 2023.05.22 |
가상화, 가상머신(Virtual Machine)과 컨테이너(Container) 비교 (0) | 2023.05.16 |
#1 AWS Elastic Beanstalk 기반 CI/CD 블루그린 배포 - RDS, Elastic Beanstalk, IAM, Github Actions (0) | 2023.05.16 |