배포하기
- region 확인
- environment_name 확인
- application_name 확인
10-1 deploy.yml 파일은 github action에서 활용되는 파일
name: aws-v5
on:
push:
branches:
- main
# actions/setup-java@v2는 사용자 정의 배포를 지원하고 Zulu OpenJDK, Eclipse Temurin 및 Adopt OpenJDK를 기본적으로 지원합니다. v1은 Zulu OpenJDK만 지원합니다.
jobs: #어떤 임무를 할것인지 적는다.
build: # 마음대로 적어도됨.
runs-on: ubuntu-18.04 #키워드이다.
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Grant execute permission for gradlew
run: chmod +x ./gradlew
shell: bash
- name: Build with Gradle
run: ./gradlew clean build
shell: bash
# UTC가 기준이기 때문에 한국시간으로 맞추려면 +9시간 해야 한다.
- name: Get current time
uses: 1466587594/get-current-time@v2
id: current-time
with:
format: YYYY-MM-DDTHH-mm-ss
utcOffset: "+09:00"
- name: Show Current Time
run: echo "CurrentTime=${{steps.current-time.outputs.formattedTime}}"
shell: bash
EB에 CD 하기 위해 추가 작성
- name: Generate deployment package
run: |
mkdir -p deploy
cp build/libs/*.jar deploy/application.jar
cp Procfile deploy/Procfile
cp -r .ebextensions deploy/.ebextensions
cd deploy && zip -r deploy.zip .
- name: Deploy to EB
uses: einaregilsson/beanstalk-deploy@v20
with:
aws_access_key: ${{ secrets.AWS_ACCESS_KEY }}
aws_secret_key: ${{ secrets.AWS_SECRET_KEY }}
application_name: aws-v5 # 엘리스틱 빈스톡 애플리케이션 이름!
environment_name: Awsv5-env # 엘리스틱 빈스톡 환경 이름!
version_label: aws-v5-${{steps.current-time.outputs.formattedTime}}
region: ap-northeast-2 # 서울 ap-northeast-2 버지니아북부 us-east-1
deployment_package: deploy/deploy.zip
10-2. 프로젝트/.ebextensions/00-makeFiles.config 생성
00-makeFiles.config 파일은 EB에서 활용되는 파일
파일을 여러개 만들 수 있는데, 파일 실행 순서는 00, 01, 02 이런순으로 실행된다.
뒤에 이름은 자유롭게 만들면 되고, 확장자는 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
로그를 남기려면 nohup으로 실행해주자.
10-3. 프로젝트/Procfile 생성
Procfile은 jar파일을 실행하기 위해서 EB에서 활용되는 파일
springapp: appstart
push가 시작하는 순간 외곡?이 트리거 된다.
외곡이 트리거에서 deploy.yml을 읽는다.
deploy.yml이 os를 설치하고 스텝들을 실행한다
스텝들이 끝나면 deploy.zip파일을 만들어서 던진다.
1. deploy.zip 파일에 application.jar, .ebextensions, Procfile 을 압축한다.
2. deploy.zip 파일을 EB에 전송한다.
3. EB는 deploy.zip의 압축을 푼다.
4. 압축이 풀리면 자동으로 내부 파일들이 /var/app/current 로 이동된다.
5. .ebextensions/00-makeFiles.config 파일이 실행되면서 /sbin/appstart 파일이 생성되고
해당 00-makeFiles.config는 삭제된다.
6. Procfie이 실행된다.
'AWS' 카테고리의 다른 글
AWS-V5(CI/CD 배포) 11 최종 EC2 내부 확인해보기 (0) | 2022.11.10 |
---|---|
AWS-V5(CI/CD 배포) 9 Github Repo에 시크릿 키 생성 (0) | 2022.11.09 |
AWS-V5(CI/CD 배포) 8 IAM 사용자 생성 (0) | 2022.11.09 |
AWS-V5(CI/CD배포) - 7. 데이터베이스 및 테이블 생성 및 한글 입력 테스트 해보기 (0) | 2022.11.09 |
AWS-V5(CI/CD배포) - 6. 한글 설정 확인 (0) | 2022.11.09 |