https://velog.io/@jaybon/AWS-EC2-%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0
이 예제 사용시 RDS는 배포하지 않아도됨
(h2 메모리DB 사용)
https://velog.io/@jaybon/AWS-RDS-mariaDB-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0
mobaXterm으로 EC2에 접속한다.
clear를 입력하여 화면을 비운다.
수월하게 작업하기 위해 슈퍼유저를 사용한다.
sudo su
ubuntu 계정에서 root 계정으로 변경
타임존 확인.
timedatectl
한국시간으로 타임존을 설정한다.
타임존 설정을 하지 않으면, 서버에서 날짜 관련 데이터를 처리할 때 잘못된 날짜가 들어갈 수 있다.
아래 코드를 한줄씩 입력한다.
mobaXterm은 Ctrl + V 가 되지 않고 Shift + Insert로 붙여넣기를 한다.
sudo ln -snf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
또는
sudo timedatectl set-timezone Asia/Seoul
sudo echo Asia/Seoul > /etc/timezone
입력하면 반응이 없는데, 리눅스는 성공적으로 작업이 되면 반응이 없다.
아래 명령어로 시간이 바뀌었는지 확인해본다.
timedatectl
.
apt 리파지토리 목록을 업데이트한다.
sudo apt update
openjdk 17 버전을 다운로드 한다. (버전은 자신에게 맞게 다운로드)
sudo apt install -y openjdk-17-jdk
아래와 같이 입력했을 때 버전이 잘 나오면 설치 된 것이다.
java --version
스프링 부트의 yml 파일로 이동한다.
주소 넣는 곳에 RDS 엔드포인트를 입력하자.
터미널에서
./gradlew bootJar
또는
./gradlew build
코드를 입력하고 엔터를 친다.
build 경로에 jar파일이 생성되어 있다.
윈도우 탐색기에서 오픈한다.
.
mobaXterm의 오른쪽 화면에서
아래 경로를 잘 확인하고,
/home/ubuntu/
아래 이름의 폴더를 만든다.
todo_app
todo_app 폴더로 이동하고, 빌드한 jar 파일을 드래그 앤 드롭한다.
todo_app 폴더로 이동한다.
아래와 같이 타이핑한다.
nohup java -jar mybatis_project-0.0.1-SNAPSHOT.jar 1>log.out 2>err.out &
아래 코드로 잘 작동되는지 확인해보자.
ps -ef | grep m*.jar
.
인터넷 창을 켜서 EC2 아이피 주소를 입력해보자.
아이피주소/todoList 를 입력하고 화면이 뜨는지 확인.
.
tail은 파일의 끝 10줄을 출력한다.
2번 에러출력은 리눅스의 에러만 처리한다. 서버 내부에러는 처리하지 않는다.
tail err.out
tail에 -f 옵션을 붙이면 새로 들어오는 로그를 모니터링 할 수 있다.
tail -f log.out
Ctrl + C 로 빠져나올 수 있다.
.
프로세스의 PID를 확인하려면 아래와 같이 검색한다.
ps -ef | grep m*.jar
pgrep는 PID만 출력한다.
pgrep -f m*.jar
하나더 나오는 것은 grep의 프로세스다.
java라고 적혀 있는 프로세스의 번호를 찾는다.
.
프로세스를 멈추려면
kill -9 프로세스아이디