🚀 첫 배포 완료: GitHub Actions를 이용한 EC2 자동 배포
📌 개요
이번 이슈에서는 deploy-main.yml 파일을 사용하여 main 브랜치에 변경 사항이 생길 때 EC2 서버에 자동으로 배포되는 CI/CD 파이프라인을 구축했습니다.
이제 수동 배포 없이, 코드를 푸시하면 자동으로 배포되도록 설정되었습니다.
🛠️ 주요 사항
- GitHub Actions를 활용하여
main 브랜치에 push 이벤트가 발생하면 자동 배포 실행
- SSH 키를 이용해 EC2 서버에 접속하고 Node.js 환경 설정
- 프로젝트 파일을 EC2로 복사하고,
npm ci 실행하여 의존성 설치
pm2를 이용하여 tsx 인터프리터로 애플리케이션 실행
📜 배포 스크립트 (.github/workflows/deploy-main.yml) 주요 내용
🔹 빌드 단계
Node.js 20 환경 설정
npm ci 실행하여 의존성 설치
🔹 배포 단계
- SSH 설정 후 EC2 서버에 접속
Node.js 및 tsx 설치
scp를 사용해 프로젝트 파일을 EC2로 전송
npm ci 실행 후 pm2를 이용해 애플리케이션 실행
🏆 기대 효과
✅ 자동 배포: git push만으로 배포 자동화
✅ 일관된 환경 유지: 동일한 환경에서 테스트 및 배포 진행 가능
✅ 빠른 롤백 가능: pm2를 이용한 프로세스 관리
🔧 추가 개선 가능 사항
npm test 추가하여 배포 전 테스트 자동 실행
.env 파일을 안전하게 관리할 방법 추가 (secrets 활용)
pm2 save 및 pm2 startup을 활용하여 배포 후 자동 재시작 설정
🚀 첫 배포 완료: GitHub Actions를 이용한 EC2 자동 배포
📌 개요
이번 이슈에서는
deploy-main.yml파일을 사용하여main브랜치에 변경 사항이 생길 때 EC2 서버에 자동으로 배포되는 CI/CD 파이프라인을 구축했습니다.이제 수동 배포 없이, 코드를 푸시하면 자동으로 배포되도록 설정되었습니다.
🛠️ 주요 사항
main브랜치에 push 이벤트가 발생하면 자동 배포 실행npm ci실행하여 의존성 설치pm2를 이용하여tsx인터프리터로 애플리케이션 실행📜 배포 스크립트 (
.github/workflows/deploy-main.yml) 주요 내용🔹 빌드 단계
Node.js 20환경 설정npm ci실행하여 의존성 설치🔹 배포 단계
Node.js및tsx설치scp를 사용해 프로젝트 파일을 EC2로 전송npm ci실행 후pm2를 이용해 애플리케이션 실행🏆 기대 효과
✅ 자동 배포:
git push만으로 배포 자동화✅ 일관된 환경 유지: 동일한 환경에서 테스트 및 배포 진행 가능
✅ 빠른 롤백 가능:
pm2를 이용한 프로세스 관리🔧 추가 개선 가능 사항
npm test추가하여 배포 전 테스트 자동 실행.env파일을 안전하게 관리할 방법 추가 (secrets활용)pm2 save및pm2 startup을 활용하여 배포 후 자동 재시작 설정