출처 : 내일배움캠프
1) CI(Continuous Integration) : 지속적 통합 ~ 여러 개발자가 하나의 프로젝트를 같이 개발할 때 발생하는 불일치 최소화
-> CI를 제대로 구현하면 애플리케이션 변경 사항 반영 시 자동으로 빌드 및 테스트되어 잘못된 코드가 공유되는 것을 방지
코드의 신뢰성 증진
2) CD(Continuous Deployment) : 지속적 배포 ~ 프로젝트의 변경사항을 가상 환경에 자동으로 배포
-> CD를 구성해두면 변경사항을 배포할 때 사용하는 파이프 라인을 공유하여 번거로움을 없앨 수 있다
배포 플로우의 동기화
Github Actions : 깃헙에서 제공하는 CI/CD 툴
+JAVA CI with Gradle : gradle.yml 수정하기
on : 워크플로우 수행할 이벤트
jobs: 수행할 워크플로우
깃헙 액션을 사용해 AWS EC2에 배포하기
- Github Actions 에서 AWS 에 배포하는 방법
- AWS EC2 설정 추가
- AWS S3 버킷 생성
- AWS CodeDeploy 앱 생성 및 배포 설정
- Github Actions 에서 사용할 사용자 권한 추가
- AppSpec 파일 작성
- 배포 스크립트 작성
- Github Actions Workflow 작성
- Github 에서 push 로 배포하기
Main 브랜치에 Push 하면 자동으로 EC2까지 배포되는 Workflow ~ 소스코드를 압축하여 AWS 스토리지에 저장 후 서버에 전달해 실행한다

큰 흐름을 요약하면 다음과 같습니다.
- Github Actions 에서 코드 빌드 (테스트는 CI 에서 했다고 검증했다고 판단하여 생략)
- AWS 인증
- 코드 압축해서 AWS S3 에 업로드
- AWS CodeDeploy 실행하여 S3 에 있는 코드 EC2 에 배포
깃허브 프로젝트 코드를 AWS S3에 업로드 한 후 AWS EC2에서 끌어다 쓰는 것이 가장 핵심,
AWS CodeDeploy는 그걸 보조
EC2 설정 추가
1. Tag 추가(CodeDeploy에서 어떤 인스턴스에 실행할 지 구분하는 값)
2. IAM 역할 등록
3. EC2 서버에 CodeDeploy Agent 설치
AWS S3 생성
버킷 생성
일반 구성과 객체 소유권 설정
엑세스, 버킷 버전, 암호화 비활성화
CodeDeploy 생성
CodeDeploy 전용 IAM 역할 만들기
CodeDeploy 애플리케이션 생성
CodeDeploy 배포그룹 생성
Github Actions에서 사용할 IAM 사용자 추가
사용자 이름, 엑세스 유형, 접근 권한 설정
Access Key, Secret Key 생성
깃헙 레포지토리에서 시크릿 추가
AppSpec 파일 작성
files 섹션
permissions 섹션
hooks 섹션
배포 스크립트 작성
stop.sh
start.sh
build.gradle 파일 수정
깃헙 액션 워크플로우 작성
sample workflow -> deploy.yml 작성
깃헙 액션 사용하여 배포하기
repo에서 확인
AWS codedeploy에서 확인
EC2 서버에서 애플리케이션 실행 확인
'인프라' 카테고리의 다른 글
| CICD : Github Action + AWS IAM + AWS S3 + AWS EC2 + AWS Code Deploy (0) | 2025.12.12 |
|---|