유광열 튜터님 강의

- 클라우드: IT 서비스를 운영할 시 필요한 기계들을 온라인으로 대여할 수 있는 서비스

- AWS : 아마존에서 서비스하는 클라우드

- EC2 : AWS에서 대여해주는 서버용 컴퓨터 (Elastic Compute Cloud)

- MobaXterm : 클라우드 서버에 접속하기 위한 프로그램 (콘솔 사용 및 파일 관리, putty와 filezilla 합친 느낌)

 

EC2에 리눅스를 설치하면 해당 컴퓨터의 시간대가 초기화(UTC+0)되어 DB에 데이터 업데이트 시 잘못된 시간이 저장될 수 있음

→ 대한민국 서울 시간대로 조정해야 함

 

 

1) 프로젝트 빌드

# ./gradlew 파일에 실행 권한 부여 해야 할 수 있음
chmod +x ./gradlew

./gradlew build
# 또는
./gradlew bootJar

 

 

2) EC2 대여 (인스턴스 생성)

 

- 키 페어 : 서버에 접속할 수 있는 암호 파일

 

- 인바운드 규칙 편집 : 외부에서 서버 컴퓨터로 접근할 수 있는 규칙 정함

해당 프로젝트는 8080포트를 사용하고 있음 외부에서 해당 포트로 접근할 수 있도록 설정해야 함

모든 사람들이 접근할 수 있도록 IP는 0.0.0.0/0으로 설정

 

 

3) SSH 접속

✅ EC2 인스턴스 생성 시 .pem 키 파일 다운로드
✅ 보안 그룹에서 포트 22 (SSH) 열려 있어야 함
✅ 인스턴스 퍼블릭 IPv4 주소 확인

 

1. 키 파일 권한 설정

키 파일 있는 디렉토리 이동 후

chmod 400 first_key.pem # 400: 읽기만 허용

 

2. SSH 접속

OS가 Ubuntu일 경우 유저네임 ubuntu

ssh -i first_key.pem ubuntu@IPv4 주소

 

 

4) TimeZone 설정

관리자(루트) 권한 사용

$ sudo su

현재 시간대 확인

timedatectl

 

 

대한민국 시간대로 변경

timedatectl set-timezone Asia/Seoul

 

 

 

5) JDK 다운로드

 

다운로드 목록 받아옴 (패키지 목록을 업데이트해서 새로운 버전이 있는지 확인)

sudo apt update

 

목록에 openjdk가 있는지 검색

apt-cache search openjdk

 

openjdk-17-jdk  설치

apt install -y openjdk-17-jdk

 

자바가 잘 설치되었는지 확인

java -version

 

 

6) 폴더 만들기 / 배포

mkdir my_app # /home/ubuntu/my_app

 

- 로컬에 있는 mybatis_project-0.0.1-SNAPSHOT.jar 파일을 my_app 디렉터리에 넣기

 

my_app 디렉토리의 권한을 수정해서 ubuntu 사용자에게 쓰기 권한을 부여

sudo chown ubuntu:ubuntu /home/ubuntu/my_app

 

# 로컬 터미널
scp -i /Users/t2024-m0206/Documents/Dev/key/first_key.pem /Users/t2024-m0206/Documents/git/Sparta_CodingClub/AWS/build/libs/mybatis_project-0.0.1-SNAPSHOT.jar ubuntu@IPv4:/home/ubuntu/my_app/

 

ls -l /home/ubuntu/my_app/

 

 

7) 서버 프로그램 실행

 

cd my_app/
nohup java -jar mybatis_project-0.0.1-SNAPSHOT.jar 1>log.out 2>err.out &

nohup: 유저가 콘솔에 접속 중이지 않더라도 서버 실행 유지 (터미널 세션이 끊겨도 계속 실행되도록 해줌)

java -jar : 자바 jar파일 실행 (내부 톰캣용)

파일명 : m + tab 자동완성

1>log.out : 1은 표준 출력, 문제 없을 때 log.out 파일에 로그 기록

2>err.out : 2는 에러 출력, 문제 있을 때 err.out에 출력

&: 백그라운드 실행 (유저가 로그아웃하면 꺼짐. nohup과 같이 사용하면 실행 유지 가능)

 

 

8) 로그 확인

cat err.out
cat log.out
tail -f log.out (파일 내용 중 마지막만 보여줌. -f 붙이면 실시간 업데이트)

 

 

9) 프로세스 확인 및 kill

자바 프로세스 확인

ps -ef | grep mybatis_project-0.0.1-SNAPSHOT.jar

자바 프로세스 아이디 : 3790

프로세스 종료

kill -9 프로세스아이디

+ Recent posts