Skip to content

feature/ CI/CD 파이프라인 구축 #3

@synuo

Description

@synuo

🚀 첫 배포 완료: 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) 주요 내용

🔹 빌드 단계

  1. Node.js 20 환경 설정
  2. npm ci 실행하여 의존성 설치

🔹 배포 단계

  1. SSH 설정 후 EC2 서버에 접속
  2. Node.jstsx 설치
  3. scp를 사용해 프로젝트 파일을 EC2로 전송
  4. npm ci 실행 후 pm2를 이용해 애플리케이션 실행

🏆 기대 효과

자동 배포: git push만으로 배포 자동화
일관된 환경 유지: 동일한 환경에서 테스트 및 배포 진행 가능
빠른 롤백 가능: pm2를 이용한 프로세스 관리

🔧 추가 개선 가능 사항

  • npm test 추가하여 배포 전 테스트 자동 실행
  • .env 파일을 안전하게 관리할 방법 추가 (secrets 활용)
  • pm2 savepm2 startup을 활용하여 배포 후 자동 재시작 설정

Metadata

Metadata

Assignees

Labels

featureNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions