2. 배포 서버 환경 구축
이제 우리는 실제 서버에서 우리의 프로젝트를 배포할 것이다.
먼저, gitHub에 Repository를 생성 후, 서버를 구축한다.
1. gitHub Repository 생성
gitHub에서 repository를 생성한다.
다음으로, 우리가 이전에 만들었던 프로젝트 폴더를 탐색기로 열자.
폴더에서 마우스 우클릭 > 추가 옵션 표시 > Git Bash Here를 선택한다.
이후, 다음 명령어를 순서대로 입력하자.
git init .
git config --global user.name "gitHub 계정 이름"
git config --global user.email "gitHub 계정 이메일"
순서대로
1 - 폴더를 git이 관리하도록 초기화 시켜준다.
2,3 - gitHub 계정 정보를 설정한다.
의 역할을 한다.
다음으로, 해당 폴더에 gitHub Repository를 연동하자.
먼저, gitHub 저장소의 <>code 버튼을 클릭 후 아래 나오는 주소를 복사한다.
다음으로 Git Bash에 복사한 주소를 사용해 저장소를 추가해 준다.
git remote add origin [repository 주소]
이제 우리 프로젝트를 repository에 올려보자.
git branch -m master main
git add .
git commit -m "init : make project"
git pull origin main
git push origin main
명령어는 차례대로 다음의 역할을 한다.
1 - master 브랜치의 이름을 main으로 변경한다.
2 - 변경사항을 추가한다.
3 - 변경사항에 대한 버전을 만든다.
4 - 저장소의 기존 내용을 다운로드 한다.
5 - 새 버전을 저장소에 업로드 한다.
non-fast-forward 문제
저장소에 push 하려고 하니 오류가 발생했다.
To https://github.com/[Repository 주소]
! [rejected] main -> main (non-fast-forward)
error: failed to push some refs to 'https://github.com/[Repository 주소]'
관련해서 찾아보니, 서로 관련이 없는 두 저장소를 병합하려는 시도에서 오류가 난 것이다.
위 블로그의 도움을 받았다.
git pull을 할 때 서로 관련없는 두 저장소의 병합을 허용하는 설정을 추가해 주면 해결이 된다.
git pull origin master --allow-unrelated-histories
이후 다시 push를 해 주면 문제가 해결된다.
2. 배포 서버 구축
2-1. EC2 생성
AWS > EC2 탭 > 인스턴스 시작에서 인스턴스 시작 버튼을 눌러준다.
이미지는 Ubuntu를 선택하였다.
적절한 이름을 가진 키페어를 생성해 주자.
이 키페어를 사용해서 우리가 구축한 서버로 접속할 것이다.
보안그룹에서는 HTTP 통신을 위한 80, 8080포트, MySQL 통신을 위한 3306 포트를 추가적으로 인바운드 규칙에서 추가해 주었다.
다른것들은 기본 설정을 거의 그대로 유지하여 인스턴스를 생성하였다.
이후 탄력적 IP를 생성 / 연결 하였다.
2-2. Java, Tomcat 설치
apt list | grep [openjdk | tomcat]으로 설치할 수 있는 패키지를 검색 후, apt-get install [패키지 명] 으로 설치해 주었다.
버전은 각각 java 11, tomcat 9이다.
자바 설치 이후 /etc/profile 파일에 JAVA_HOME 환경 변수를 설정해 주었다.
톰캣 설치 이후에는 /etc/systemd/system 위치에 tomcat.service를 작성해 주려 했으나, 사실 그럴 필요가 없이 /lib/systemd/system 위치에 tomcat9.service가 자동으로 작성되어 있었다.
해당 파일의 위치는 systemctl status tomcat9를 실행 후 loaded 뒤에 나오는 경로를 참고하였다.
Tomcat까지 모두 제대로 설치 하였으면 Tomcat을 실행시켜보자.
service tomcat9 start
이후, 우리 배포서버의 탄력적 IP를 이용하여 톰캣으로 접근해 보자.
'http://[탄력적 ip 주소]/[tomcat 포트번호 (보통 8080)]'
정상적으로 톰캣이 실행되는 것을 확인할 수 있었다.