[AWS] 스프링 부트 jar 파일을 AWS EC2에 배포하기
1. 내 컴퓨터에 있는 jar 파일을 리눅스로 옮기기 위해 새로운 프로그램을 설치해야 한다.
먼저 WinSCP 사이트에 접속한 후 DOWNLOAD NOW를 클릭한다.
https://winscp.net/eng/index.php
2. 아래 버튼을 눌러 파일을 설치한 후 실행한다. 모두 기본값으로 두고 설치하되, 마지막 질문은 [아니요]를 누른다.
3. 수업 때 만든 rC:\fullstack405\react\backend\build\libs에 있는 jar 파일을 리눅스에 옮긴다.(jar 파일은 gradle에서 bootJar을 더블클릭하면 생성됨, 근데 bootJar를 누르기 전에 build.gradle에서 버전 설정해두는 게 좋음 예를 들면
version = '1.0.1'
이런 식)
4. 새 탭을 눌러서 로그인을 진행한다.
파일 프로토콜은 SCP를 선택하고, 호스트 이름에는 AWS의 퍼블릭 IPv4 DNS 부분을 복사해서 붙여넣는다.
포트 번호는 22로 설정하고, 사용자 이름은 ec2-user로 했다. 그리고 고급 버튼을 누른다.
(로그인은 아직 아래 단계를 하고 나서 누르기!)
5. PuTTYgen에서 .pem 키 파일을 .ppk로 바꿨었는데 개인키 파일에 ...을 눌러 그 .ppk 파일을 선택한다. 그리고 이전 단계에서 본 하단의 로그인 버튼을 누르면 된다.
6. 아래는 로그인이 되었다면 나오는 화면이다.
왼쪽 부분이 내 윈도우 컴퓨터이고 오른쪽이 리눅스 서버다.
왼쪽에 올릴 파일을 마우스 우클릭하여 업로드를 누르면 리눅스쪽으로 옮겨진다.
7. putty로 리눅스 서버에 접속하여 jar 파일이 있는 경로에서 아래와 같은 명령어를 실행하면 서버가 돌아간다.
java -jar backend-0.0.1-SNAPSHOT.jar
8. 백그라운드에서 실행하고 싶으면 아래의 명령어를 입력한다. 서버가 돌아간 후 엔터치면 다른 작업을 할 수 있다.
java -jar backend-0.0.1-SNAPSHOT.jar &
(8-2.) 백그라운드로 실행하지 않고 PuTTY를 하나 더 열어서 거기서 다른 작업을 해도 된다.
9. 종료하고 싶으면
ps -ef | grep java
를 입력하여 돌아가고 있는 번호(아래 사진에서는 34067)를 확인하고
kill -9 방금본번호(아래 사진에서는 kill -9 34067)
를 입력하면 된다.(아래의 사진은 java -jar awsweb-1.0.0.jar를 입력한 상태이다.)
10. 다른 포트로 돌아가는 서버랑 같이 돌리고 싶으면 앞에 sudo를 불이면 된다. 종료할 때도 kill 앞에 sudo를 붙인다.(sudo를 안 붙이고 싶다면 포트번호를 1024 이상으로 설정해둔다.)
sudo java -jar awsweb-1.0.1.jar
sudo kill -9 34067
7. 사이트에 접속할 때는 aws 사이트에서 퍼블릭 IPv4를 확인하고 포트번호와 함께 url에 입력하면 된다. 아래의 예시는 8080포트로 접속한 것이다.
퍼블릭 IPv4 DNS:8080