escape-room

[AWS] EC2 배포 관련 명령어

기매_ 2023. 5. 17. 17:31

SSH 클라이언트로 인스턴스 연결하는 방법 (SSH 접속)

인스턴스 - 연결 클릭

cmd에서 pem 파일 (프라이빗 키 파일)이 위치한 경로로 이동(cd) 후 위의 사진에서 ssh- 로 시작하는 것을 입력하면 인스턴스에 접속할 수 있다 !

 

ex.

ssh -i "pem파일 이름" ubuntu@ec2-[퍼블릭 IPv4 주소].ap-northeast-2.compute.amazonaws.com

ssh -i "[pem파일 이름]" ubuntu@[ec2 instance의 public IP 또는 public DNS]

EC2 처음 실행할 경우 & Java 설치

$ sudo apt-get update
$ sudo apt-get install openjdk-11-jdk

위의 두 명령어를 입력하여 업데이트하고,

java (11 버전)를 설치할 수 있다

 

$ java -version

을 입력하여 11이 잘 나오면 java가 잘 설치된 것이다 !


IntelliJ에서 Test 제외하고 프로젝트 Build 하는 방법

https://januaryman.tistory.com/257

 

Intellij 에서 Test 제외하고 Clean과 Build 하기

Intellij로 프로젝트를 빌드할때 수많은 Test를 제외하고 본 소스만 빌드를 하고 싶을때가 있다. 그런 상황에서의 빌드 방법이다. - 환경 OS : Windows 10 Intellij : Intellij ultimate 2020.3 빌드 툴 : Gradle 1. 프

januaryman.tistory.com

 

참고로 나는 위 블로그 글에서 Arguments 에 해당하는 부분을 못 찾아서 (IntelliJ 버전이 달라서 그런 듯 하다..)

VM Options에 

clean build -x test

라고 입력해줬다 !

 

 

생성된 jar 파일은

해당 프로젝트 경로의 - build - libs 에서 확인 가능하다


Jar 파일 EC2 에 올리는 방법 [파일 업로드] (Jar -> Ubuntu / Ubuntu -> EC2)

1. Jar 파일을 Ubuntu에 올리는 방법 : scp 명령어

- pem파일(프라이빗 키 파일)이 위치한 경로로 위에서 생성한 jar 파일을 이동(혹은 복붙)한다.

scp -r -i [pem 파일 이름] [jar 파일 이름] ubuntu@[탄력적IP]:/경로

cmd에서 pem파일(프라이빗 키 파일)이 위치한 경로로 이동(cd)한 후,

scp -r -i [pem 파일 이름] [jar 파일 이름] ubuntu@[탄력적IP]:/경로

입력 !

 

ex.

scp -r -i my-aws.pem escape-room-0.0.1-SNAPSHOT.jar ubuntu@43.200.61.12:/home/ubuntu

 

 

2. Ubuntu에 올린 Jar 파일을 EC2에 올리는 방법 (EC2에서 실행시키기)

$ java -jar escape-room-0.0.1-SNAPSHOT.jar

ㄴ 만약 안된다면 앞에 sudo 명령어 붙여서 해보기 !

sudo java -jar escape-room-0.0.1-SNAPSHOT.jar

 


이 단계까지 했다면,

[퍼블릭 IPv4 주소]:8080/hello (예시) 와 같이 웹에서 접속해볼 수 있다 !


nohup 설정 (백그라운드 실행)

 

터미널 세션이 끊어지면 백그라운드로 돌던 프로세스에 hang-up signal이 발생하여 종료가 되는 경우가 있다.

nohup 명령어를 사용하면 터미널 세션이 끊어지더라도 배포 상태를 유지할 수 있다.

= 애플리케이션 실행자가 터미널을 종료해도 애플리케이션은 계속 구동한다.

 

nohup java -jar 파일이름.jar &

또는

$ nohup java -jar [jar파일명] 2>&1  &

해당 명령어로 jar를 실행해주면 프로세스가 백그라운드에서 실행되게 된다. 

또한 종료나 로그아웃을 해도 프로세스가 종료되지 않는다.

 

ex. 

$ nohup java -jar escape-room-0.0.1-SNAPSHOT.jar &

$ nohup java -jar escape-room-0.0.1-SNAPSHOT.jar 2>&1 &

 

+)

nohup 명령어 이후에 아래와 같은 메세지가 나타나는데, 

$ nohup: ignoring input and appending output to 'nohup.out'

이는 nohup으로 수행되는 프로세스는 stdout 결과가 nohup.out 파일에 저장된다는 뜻이다.

콘솔 프로그램이 stdout으로 메시지를 출력한다면 nohup.out 파일을 열어보면 출력 메시지를 확인할 수 있다.

 

참고로 로그를 찍고 싶지 않으면 뒤에 /dev/null을 붙여주면 된다 !

(/dev/null은 log를 저장하지 않겠다는 뜻이다)

nohup java -jar escape-room-0.0.1-SNAPSHOT.jar & > /dev/null

 

참고

https://green-joo.tistory.com/26

 

nohup 사용법과 nohup.out 파일 명 변경, 로그 없이, 날짜 별로 rotation 하는 방법 ( Linux )

안녕하세요. 그린주입니다 ๑'ٮ'๑ 오늘도 힘차게 시작해보겠습니다! 개요 이번 글에서는 nohup 사용법과 nohup.out 로그 관련 설정, 프로세스를 종료하는 방법을 공유하고자 합니다. 목차 nohup 설명

green-joo.tistory.com

https://suyeoniii.tistory.com/52

 

[SpringBoot][AWS EC2] nohup을 이용하여 무중단 서비스 만들기

빌드 먼저 Git을 통해 받은 프로젝트 폴더로 이동하여, build를 진행한다. ./gradlew build build가 완료되었다 실행 java -jar build/libs/demo-0.0.1-SNAPSHOT.jar 정상적으로 잘 실행되었다. 하지만 이상태에서 터

suyeoniii.tistory.com


웹 애플리케이션의 로그를 확인하기

전체 로그 확인

sudo cat nohup.out

 

실시간 로그 확인

tail -f nohup.out

 

참고

https://seongbindb.tistory.com/146

 

[Linux] nohup.out 원하는 로그 보기 (tail 명령어)

tail 명령어 파일의 뒷부분을 지정된 만큼 보여주는 명령어 기본 출력은 파일의 마지막 10줄을 보여준다 옵션 -f: 파일의 마지막 10라인을 실시간으로 계속 출력한다 예) tail -f nohup.out -n : 원하는

seongbindb.tistory.com


프로세스 종료하기

1. PID 확인

ps -ef | grep [실행시켰던 파일이름]

ps -ef | grep java

 

내가 배포한 escape-room의 PID는 26570인 것을 알 수 있다 !

2. PID로 프로세스 종료

$ sudo kill -9 [PID]

 

$ sudo kill -9 26570 로 종료시키고

$ ps -ef | grep java 로 확인해보면 잘 종료된 것을 알 수 있다 ! ㅎㅎ


이용중인 포트 확인하기 

1. net-tools 설치 (이미 설치되어있다면 패쓰 !)

sudo apt install net-tools

 

2. 이용중인 포트 확인

sudo netstat -lntp

또는

sudo netstat -tnlp

 

나의 경우 8080, 22 포트 등이 돌아가고 있다는 것을 확인할 수 있었다.

 

참고

https://yeopbox.com/%EC%9A%B0%EB%B6%84%ED%88%ACubuntu-22-04-server-netstat%EC%9C%BC%EB%A1%9C-%EC%9D%B4%EC%9A%A9%EC%A4%91%EC%9D%B8-%ED%8F%AC%ED%8A%B8-%ED%99%95%EC%9D%B8%ED%95%98%EA%B8%B0/

 

우분투(Ubuntu) 22.04 Server netstat으로 이용중인 포트 확인하기 | YeopBox

안녕하세요. YeopBox의 상큼한놈 입니다. 프로젝트를 진행하다 보면 의도치 않게 다른 프로젝트와 이용하는 포트가 겹치는 경우도 간혹 있더라구요. 설치 하고 구동 시 에러가 발생하여 확인하기

yeopbox.com