꿈꾸는 새벽하늘

CI/CD & AWS 배포 본문

☁️ AWS

CI/CD & AWS 배포

rovemin 2023. 6. 4. 23:58

CI/CD

CI(Continuous Integration): 개발을 하면서 코드에 대한 통합을 지속적으로 진행함으로써 코드 품질을 유지하는 것

CD(Continuous Delivery/Deploy): 배포를 자동화하여 지속적으로 배포하는 것

 

CI/CD는 탁월한 코드 품질을 보장하고, 릴리즈 속도를 단축한다는 장점이 있다.

 

CI/CD 툴에는 Jenkins, Travis CI, GitHub Actions 등이 있다.

 

GitHub Actions 구성요소

  • Workflow: 자동화된 전체 프로세스
  • Event: 워크플로우를 실행시키는 특정 행동
  • Runner: GitHub Actions Runner Application이 설치된 서버
  • Step: 명령어를 실행시키는 테스크
  • Job: 하나의 처리 단위. Step들의 집합

GitHub Actions와 AWS CodeDeploy를 이용한 CI/CD

1. EC2 인스턴스 시작

2. EC2 설정 추가 - tag 추가

      - 작업 → 인스턴스 설정 → 태그 관리 → 키 페어 입력 후 저장

3. IAM 역할 추가

4. EC2에 IAM 역할 추가

5. EC2에 CodeDeploy Agent 설치

6. EC2 서버에 루트 디렉토리 만들고 JAVA 설치

7. AWS S3 생성

8. CodeDeploy를 위한 IAM 만들기

9. CodeDeploy 애플리케이션 생성

10. CodeDeploy 배포 그룹 생성

11. GitHub Actions를 위한 IAM 사용자 추가

12. GitHub Secrets에 IAM User 엑세스 키 정보와 APPLICATION 정보 추가

      - 각각 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, APPLICATION으로 이름 설정

13. appspec.yml 작성

14. 배포 스크립트 작성: start.sh, stop.sh

15. build.gradle 파일 수정

16. GitHub Actions Workflow 작성

 

'☁️ AWS' 카테고리의 다른 글

AWS EC2에 스프링 부트 프로젝트 배포하기  (2) 2023.05.27
클라우드 컴퓨팅  (1) 2023.05.06
AWS 배포하기: EC2 & RDS  (0) 2023.05.05