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
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 포트 등이 돌아가고 있다는 것을 확인할 수 있었다.
참고
우분투(Ubuntu) 22.04 Server netstat으로 이용중인 포트 확인하기 | YeopBox
안녕하세요. YeopBox의 상큼한놈 입니다. 프로젝트를 진행하다 보면 의도치 않게 다른 프로젝트와 이용하는 포트가 겹치는 경우도 간혹 있더라구요. 설치 하고 구동 시 에러가 발생하여 확인하기
yeopbox.com