on my way

EC2 서버에 GitHub Actions 없이 브랜치 배포하기 본문

experiences/DevLog

EC2 서버에 GitHub Actions 없이 브랜치 배포하기

wingbeat 2024. 9. 9. 17:58
반응형

EC2 서버에 GitHub Actions 없이 브랜치 배포하는 과정

이번 포스팅에서는 GitHub Actions를 사용하지 않고, 로컬에서 직접 GitHub의 특정 브랜치를 EC2 서버에 배포하는 방법에 대해 설명한다.

이 방법은 간단하게 SSH를 사용하여 EC2 서버에 접근하고, 코드를 업로드한 후 Tomcat 서버를 재시작하는 과정을 포함한다.


1. 로컬에서 배포할 브랜치 체크아웃

배포를 시작하기 전에, 로컬에서 배포하고자 하는 브랜치를 먼저 가져와야 한다.

이 과정에서는 Git을 사용하여 원격 저장소의 브랜치를 체크아웃하고, 최신 상태로 업데이트하는 과정을 설명한다.

로컬에서 브랜치 체크아웃 및 업데이트:

# 원격 저장소에서 최신 브랜치를 가져온다
git fetch origin

# 배포하고자 하는 브랜치를 체크아웃
git checkout 배포하고 싶은 브랜치명

# 최신 상태로 업데이트
git pull origin 배포하고 싶은 브랜치명

위 과정으로 로컬에서 배포할 브랜치를 최신 상태로 가져온다.

이 과정은 git fetch 명령어로 원격 브랜치의 최신 커밋을 확인하고, git checkout을 사용하여 해당 브랜치를 로컬로 가져온 후, git pull로 최신 상태로 유지하는 방식이다.


2. EC2 서버에 코드 배포

이제 EC2 서버에 코드를 배포할 차례다.

로컬에서 Maven을 사용하여 프로젝트를 빌드하고, scp 명령을 사용하여 WAR 파일을 EC2 서버로 업로드한다.

2.1. 프로젝트 빌드 (WAR 파일 생성)

mvn clean package

위 명령어는 Maven을 사용하여 프로젝트를 빌드하고, 결과물인 WAR 파일을 target 디렉토리에 생성한다.

WAR 파일은 웹 애플리케이션을 패키징한 파일로, 이 파일을 Tomcat 서버에 배포한다.

2.2. WAR 파일을 EC2 서버로 업로드

WAR 파일을 빌드한 후, 이를 EC2 서버의 Tomcat 웹앱 디렉토리로 업로드한다.

이때 scp 명령어를 사용한다.

scp -i [YOUR_PEM_FILE].pem target/프로젝트명.war ubuntu@[EC2_PUBLIC_IP]:/opt/tomcat/webapps/ROOT.war

여기서:

  • [YOUR_PEM_FILE].pem: EC2 인스턴스에 접근할 수 있는 SSH 키 파일이다.
  • 프로젝트명.war: Maven 빌드를 통해 생성된 WAR 파일 이름이다.
  • [EC2_PUBLIC_IP]: EC2 인스턴스의 퍼블릭 IP이다.
  • /opt/tomcat/webapps/ROOT.war: Tomcat의 웹앱 디렉토리 경로이다. 이 경로에 WAR 파일을 업로드하면, Tomcat이 이를 자동으로 배포한다.

이 과정에서 기존에 배포된 WAR 파일이 있다면, 덮어씌워지며 새로운 애플리케이션이 배포된다.


3. Tomcat 서버 재시작

WAR 파일을 업로드한 후에는 Tomcat 서버를 재시작해야 한다.

EC2 서버에 접속하여 Tomcat 서버를 재시작하는 방법을 설명한다.

3.1. EC2 서버에 SSH로 접속

ssh -i [YOUR_PEM_FILE].pem ubuntu@[EC2_PUBLIC_IP]

위 명령어를 사용하여 EC2 인스턴스에 SSH 접속을 한다.

3.2. Tomcat 서버 재시작

Tomcat 서버가 설치된 디렉토리로 이동하여 서버를 재시작한다.

# Tomcat이 설치된 경로로 이동
cd /opt/tomcat/bin

# Tomcat을 중지
sudo ./shutdown.sh

# Tomcat을 재시작
sudo ./startup.sh
  • shutdown.sh 스크립트는 현재 실행 중인 Tomcat 서버를 중지한다.
  • startup.sh 스크립트는 Tomcat 서버를 다시 시작한다.

이 과정을 통해 Tomcat이 새로운 WAR 파일을 읽고, 새로운 애플리케이션이 서버에 배포된다.


4. 배포 확인

Tomcat 서버를 재시작한 후, 브라우저에서 EC2 서버의 퍼블릭 IP도메인을 통해 배포된 애플리케이션에 접속하여 배포 상태를 확인할 수 있다.

http://[EC2_PUBLIC_IP]:8080

8080 포트는 Tomcat의 기본 포트이다. 이를 통해 배포된 웹 애플리케이션이 정상적으로 작동하는지 확인한다.


요약

  1. 로컬에서 배포할 브랜치를 체크아웃하고 최신 상태로 업데이트했다.
  2. Maven을 사용하여 WAR 파일을 빌드했다.
  3. scp 명령어를 사용하여 WAR 파일을 EC2 서버의 Tomcat webapps 디렉토리에 업로드했다.
  4. EC2 서버에 접속하여 Tomcat 서버를 재시작했다.

이렇게 하면 GitHub Actions를 사용하지 않고도 원하는 브랜치의 코드를 EC2에 손쉽게 배포할 수 있다.

반응형