AWS EC2에 war파일 배포하기

dev_Shawn·2022년 3월 28일
1

AWS

목록 보기
6/13
post-thumbnail

지난 포스팅에 배포 환경 세팅을 모두 마쳤고 이제 본격적으로 배포에 도전해보자

이 과정에서 경로를 자주 이동하게 되는데 경로 이동은 cd명령어로 하면 된다.

ll		     //현재 경로의 파일 및 폴더 보기
cd [경로]	//[경로]로 이동
cd ..	   //1뎁스 바깥으로 이동

프로젝트 소스 가져오기

본인의 github에 push 해둔 소스를 가져온다.

mkdir [원하는 폴더명]

그 전에 미리 소스를 넣어둘 경로를 만들어두면 좋다.
본인이 원하는 위치로 이동한 뒤 mkdir 명령어로 폴더를 하나 생성한다.

git clone [주소]
git pull origin [브랜치 이름]

해당 폴더로 이동 후에 프로젝트를 가져온다.
처음 가져온다면 git clone 명령어로 프로젝트를 그대로 가져오면 되고, 혹시나 2회차 이상이라면 바뀐 코드만 가져오도록 git pull 명령어를 통해 특정 브랜치의 소스 코드를 내려받는다.

.gitignore에 등록했던 파일 만들기

주로 민감한 정보들은 코드에 직접 입력하지 않고 properties 파일을 통해 입력한 뒤 .gitignore에 등록한다.
따라서 방금 git에서 내려받은 파일에는 .gitignore에 등록 된 파일들이 없다. 필요한 파일들은 직접 경로로 이동해 생성해주어야 한다.

touch xxx.properties

나의 경우에도 필요한 properties 파일이 하나 없었다.
touch 명령어로 경로에 properties 파일을 생성해준 뒤, vim 편집기로properties 파일에 필요한 내용을 입력해주었다.

당연히 캡쳐 내용은 예시로 적어놓았다🌝
properties 파일의 내용을 입력할 때는 복사해서 붙여넣기하면 편하다.

프로젝트에서 war 파일 만들기

본인의 프로젝트에서 pom.xml이 위치한 경로로 이동한다.
대부분 프로젝트의 제일 바깥에 위치한다.

mvn clean

package 명령어를 수행하기 전에는 습관적으로 clean 명령어를 수행하는 편이다.
혹시나 빌드 중에 파일 중첩으로 오류가 날 수도 있기 때문이다.

mvn package

package 명령어를 실행하면 target 폴더가 생성되고 그 안에 war파일이 생성된다.
여기서 war파일의 이름은 pom.xml의 build 태그 내부에 finalName 태그에 명시한 이름으로 생성된다. 혹시나 아무 설정을 하지 않았다면 "artifactId+version.war"로 생성된다.

webapps 폴더로 war 파일 이동시키기

이제 war파일을 배포 경로인 tomcat의 webapps 폴더로 이동시키면 된다.

mv xxx.war [톰캣 경로]/webapps/ROOT.war

mv 명령어로 target 폴더에 있는 war파일을 이동시킬 때 이름을 ROOT.war로 변경해준다.
특별히 tomcat의 server.xml을 수정한 것이 아니라면 서버가 실행 될 때 webapps 내부에 있는 ROOT.war를 찾아 압출을 풀며 서버에 올라가기 때문이다.
이동시킨 뒤에는 해당 경로로 이동해서 war파일이 제대로 이동되었는지 확인해본다.

rm -rf ROOT

만약 이미 ROOT 폴더가 있다면 기존에 있던 내용이니 폴더는 rm 명령어로 지워준다.
다른 폴더도 지우고 싶으면 지워도 된다.
우리의 애플리케이션과는 크게 상관은 없다.

Tomcat 구동시키기

배포 경로에 war 파일까지 위치시켰으니 이제 tomcat 구동만 남았다.

./startup.sh

tomcat의 bin 폴더로 이동한 후 경로 내부를 보면 다양한 실행 파일들이 들어있다.
여기서 startup.sh 파일을 실행하여 tomcat을 구동시킨다.
반대로 tomcat을 종료시킬 때는 shutdonw.sh 파일을 실행시키면 된다.

탄력적 ip, 퍼블릭 ip 등으로 접속하여 확인하기

지금까지 우리가 만든 프로젝트의 코드를 내려받아 war 파일을 생성한 뒤 배포 경로에 위치시켰고, tomcat 구동까지 완료했다.

이제 AWS의 탄력적 ip 혹은 퍼블릭 ip를 브라우저 주소창에 입력하여 확인해본다.
tomat에 설정되어있는 포트가 8080이었기 때문에 ip:8080으로 입력해주어야 한다.

접속이 제대로 되지 않는다면

잘 따라온 것 같은데 접속이 제대로 되지 않는다면 다음 내용을 확인해본다.

  1. tomcat경로/conf/server.xml

server.xml의 Connector 태그 속성을 확인한다.
여기서 port 번호가 8080으로 되어있는지 확인한다.

  1. AWS 보안 그룹에 8080포트가 열려있나?

우리는 지금 AWS를 이용하고 있기 때문에 AWS 보안그룹에서 해당 포트번호를 열어놓지 않았다면 백번 시도해봐도 접근이 안된다.
8080 포트가 열려있지 않다면 우측에 인바운드 규칙 편집 버튼을 누르고 아래와 같이 8080 포트를 추가한다.

profile
안주는 술 마실 때나

0개의 댓글