SEB_BE_43 / 23.04.04 회고

rse·2023년 4월 4일
0

코드스테이츠_BE_43

목록 보기
64/65

오늘

  • Git Actions 로 배포 자동화

과정

출처 : 코드스테이츠 유어클래스

  1. github 레포지토리에 push 를 하면 GitHub Actions 가 알아차리고 작동한다.

  2. AWS S3 에 결과물 전송 및 저장. 그리고 동시에 Code Deploy 에게 배포를 명령한다.
    (어제와는 다르게 오늘 S3 는 저장소로 사용됨)

  3. CodoDeploy 가 EC2 에게 프로젝트 전달 후 EC2 인스턴스에서 실행.

어제와의 차이점은 어제는 모든 과정을 AWS 에서 다 했는데 오늘은 Github 에서 변화를 감지하고 전송해준다는 차이점이 있다.

실습

일단 github 에서 레포지토리 생성 후 프로젝트를 push 한다.

그리고 Actions 화면에서 Java with Gradle 구성을 사용한다.

초록색 체크 그림이 뜨면 성공했다는 의미이다.

Github Actions 와 AWS 를 연결하기 위해 액세스 키 를 등록해준다.

키는 코드스테이츠에서 제공해 줬다.

키를 등록하고 gradle.yml 파일을 수정해준다.

ap-norheast-2 는 서울 리전을 의미한다.

그리고 S3 와 연결하기 위해 S3 버킷 이름을 추가해준다.

워크플로가 성공적으로 된다면 S3에 zip 파일이 있는 것을 볼 수 있다.

S3에 저장된 빌드 파일 배포 및 실행

S3 빌드 파일을 EC2 인스턴스로 전달하기 위해 CodeDeploy 배포 그룹 생성.

만들 파일은 appspec.yml 파일과 scripts 디렉토리 안의 deploy.sh 셸 스크립트이다.

만들 때 위치를 정확하게 만들자. 위치가 틀리면 에러가 발생한다.

appspec.yml 파일 코드.

7번 라인의
file_exists_behavior: OVERWRITE 코드는 필수로 작성하지 않아도 괜찮다.

내가 push 를 전에 했던 것과 병합해서 하니까 이미 파일이 존재하고 있는 파일이라고 에러가 떠서 추가해 준 코드이다.

저 코드는 이미 있는 파일을 OVERWRITE 하겠다는 의미로 그냥 덮어씌우겠다는 의미이다.

deploy.sh 스크립트 코드이다.

여기까지 작성하고 push 를 해준다.

그리고 github yml 파일에도 코드를 추가해준다

위 코드는 Code Deploy 배포 명령코드이다.

수정했으면 Actions 에서 결과를 확인하자.

성공적으로 됬다면

Code Deploy 에서 배포가 성공했는지 확인하자.

만약 성공했다면

EC2 IPv4 주소로 들어가면 위와 같은 에러 페이지가 뜰 것이다.

그럼 성공이다.

EC2 인스턴스에서 /home/ubuntu/action 파일로 이동해 우리가 배포한 파일이 있는지 확인하자.

그리고 ps -ef | grep java 명령어로 잘 실행이 되고 있는지 확인하자.

위 사진의 deploy.log 파일과 deploy_err.log 파일은 EC2 인스턴스에서의 빌드 과정이 기록되는 파일이다.

성공적으로 진행된다면 deploy.log 파일에 기록이 되고, 에러가 난다면 deploy_err.log 파일에 기록 될 것이다.

간단하게 컨트롤러 하나를 생성해보자. push 를 하고 다시 접근한다면

이런 화면이 뜰 것이다.

성공이다.

로그는 어떻게 뜰까?

위와 같이 로그가 추가 된 것을 알 수 있다.

추가로 해보기

같이 스터디하시는 분이 공유해주셔서 한번 만들어봤다!

HTML 파일에 jQuery 와 javaScript 를 이용해서 만드셨다고 한다.

라고 입력하면

라고 뜬다.

profile
기록을 합시다

0개의 댓글