[AWS] EC2 배포 (Github Actions 이용)

호호빵·2023년 3월 22일
0

sunflowerProject

목록 보기
4/10

Overview

1. EC2 설정 추가
2. S3 버킷 생성
3. CodeDeploy 앱 생성 및 배포 설정
4. Github Actions에서 사용할 사용자 권한 추가
5. appspec.yml 작성
6. deploy.yml 작성

배포 과정

  • main 브랜치에서 push하면 자동으로 EC2까지 배포되는 Workflow
  • 소스코드를 압축하여 AWS 스토리지에 저장 후 서버에 전달해서 실행
1. Github Actions에서 코드 build
2. AWS 인증
3. 코드 압축해서 AWS S3에 업로드
4. AWS CodeDeploy를 실행하여 S3에 있는 압축 코드를 EC2에 배포




1. EC2 설정

  • 태그 설정 - codeDeploy시 어떤 인스턴스인지 구분하기위해
  • IAM 권한 추가 - EC2 인스턴스에서 S3에 올려놓은 파일에 접근할 수 있도록
  • ubuntu 서버에 CodeDeploy Agent 설치
sudo apt update
sudo apt install ruby-full
sudo apt install wget
wget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto
sudo service codedeploy-agent status

2. S3 - 버킷 생성


3. CodeDeploy 생성

  • CodeDeploy 전용 IAM 역할만들기
  • 애플리케이션 생성
  • 배포 그룹 생성
  • EC2 선택

4. Github Actions에서 사용할 IAM 사용자 추가

  • AWS를 Github Actions - Workflow에서 접근하려면 권한 필요 -> IAM 사용자 추가 필요
  • 인증을 위한 Access Key, Secret Key를 만들어 Repostiroy - secrets에 등록

5. appspec.yml 파일 작성

  • 서버를 띄울 ec2, 배포할 결과물을 저장할 s3, 배포를 도와줄 codedeploy를 실행시킬 yml 파일 작성
  • 프로젝트의 어떤 파일들을 ec2의 어떤 경로에 복사하고, 배포 프로세스 이후에 수행할 스크립트를 지정하여 자동으로 서버 띄우기 가능
  • scripts - start.sh, stop.sh 스크립트 작성
  • build.gradle 파일 수정

6. deploy.yml 파일 작성

  • 필요한 부분들을 secrets의 것들로 넣어주기

이용하지 않고 수동으로

> ssh -i /Users/parkyj/Desktop/sunflower.pem ubuntu@52.00.00.000

ubuntu@ip-000-00-0-255:~$ {repo} java -jar {jar파일}

-> 실행됨





Spring 4기 CI/CD - 정태완 튜터님
Spring 4기 개발자가 공부하면 좋을 CI/CD - 김태선 튜터님
spring boot + react + aws 배포 자동화

profile
하루에 한 개념씩

0개의 댓글