IntelliJ Maven Package Lifecycle을 통해 새로운 WAR 파일을 생성한다.
<1>에서 만들어진 WAR 파일을 PEM 파일이 있는 동일한 위치로 옮긴다.
AWS EC2 연결 기능을 통해 SSH에 접속한다.
AWS EC2 인스턴스의 /home/ubuntu 경로에 아무것도 남아있지 않게 하기 위해 아래 명령어를 입력한다.
ubuntu@a.b.c.d:~$ cd ~
ubuntu@a.b.c.d:~$ rm *
<1>에서 만든 WAR 파일을 EC2 인스턴스로 업로드하기 위해 윈도우는 명령 프롬프트(cmd), 맥은 터미널(terminal)에서 아래 명령어를 입력한다.
cd [WAR 및 PEM 파일이 있는 위치]
scp -i [PEM 파일 이름][WAR 파일 이름] ubuntu@[탄력적 IP]:/home/ubuntu
<5>의 과정이 끝나면 AWS EC2 인스턴스로 돌아가 Tomcat 서비스를 중단시킨다.
ubuntu@a.b.c.d:~$ sudo service tomcat9 stop
구 버전의 WAR 파일을 제거하기 위해 올바른 위치로 접근한다. (webapps는 랜딩용 디렉토리이고, 프로젝트 디렉토리는 각자 다름)
ubuntu@a.b.c.d:~$ cd /var/lib/tomcat9/webapps/ 혹은
ubuntu@a.b.c.d:~$ cd /var/lib/tomcat9/[프로젝트 이름]/
구 버전의 WAR 파일 및 기타 디렉토리를 삭제하기 위해 아래 명령어를 입력한다.
ubuntu@a.b.c.d:/var/lib/tomcat9/??:$ sudo rm -rf *
ubuntu@a.b.c.d:/var/lib/tomcat9/??:$ ls -l
신 버전의 WAR 파일을 옮겨온다.
ubuntu@a.b.c.d:/var/lib/tomcat9/??:$ sudo mv ~/[WAR 파일 이름] ./ROOT.war
Tomcat 서비스를 구동한다.
ubuntu@a.b.c.d:/var/lib/tomcat9/??:$ sudo service tomcat9 start
1-2분 후 도메인으로 접근하여 새로운 버전이 잘 배포되었는지 확인한다.
만약 톰캣이 정상 작동하지 않는 것으로 보이면 아래 명령어를 통해 로그를 확인한다.
ubuntu@a.b.c.d:/var/lib/tomcat9/webapps:$ journalctl -xe