AWS EC2 Spring boot 배포

merci·2023년 3월 8일
0

AWS

목록 보기
3/6

목표

  • EC2와 mobaXterm을 연결한다.
  • 리눅스에 한국 시간으로 timezone 설정을 한다.
  • 리눅스에 JDK를 설치한다.
  • Spring boot와 AWS RDS와 연결한다.
  • 프로젝트를 jar 파일로 빌드한다.
  • Spring boot 서비스를 배포한다.
  • 로그파일에서 로그를 확인한다.

EC2 접속

clear 로 콘솔 새로고침

수월하게 작업하기 위해 슈퍼유저를 사용한다.

sudo su

타임존 확인.

timedatectl

한국타임존으로 변경

sudo ln -snf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

또는

sudo timedatectl set-timezone Asia/Seoul
sudo echo Asia/Seoul > /etc/timezone

변경 결과

ubuntu@ip-172-31-28-120:~$ sudo su
root@ip-172-31-28-120:/home/ubuntu#
root@ip-172-31-28-120:/home/ubuntu# timedatectl
              Local time: Wed 2023-03-08 01:50:14 UTC
          Universal time: Wed 2023-03-08 01:50:14 UTC
                RTC time: Wed 2023-03-08 01:50:14
               Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
             NTP service: active
         RTC in local TZ: no
root@ip-172-31-28-120:/home/ubuntu# sudo ln -snf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
root@ip-172-31-28-120:/home/ubuntu# sudo echo Asia/Seoul > /etc/timezone
root@ip-172-31-28-120:/home/ubuntu# timedatectl
              Local time: Wed 2023-03-08 10:51:10 KST
          Universal time: Wed 2023-03-08 01:51:10 UTC
                RTC time: Wed 2023-03-08 01:51:10
               Time zone: Asia/Seoul (KST, +0900)
System clock synchronized: yes
             NTP service: active
         RTC in local TZ: no
root@ip-172-31-28-120:/home/ubuntu#

타임존 변경 확인하면 업데이트

sudo apt update

jdk 버전에 맞게 입력 - 다운로드

sudo apt install -y openjdk-11-jdk

이후 자바 버전확인

java --version

이후 스프링부트 yml 이동
주소에 RDS 엔드포인트 입력

스프링부트 프로젝트 실행 확인하고
터미널에 다음 입력

./gradlew bootJar

또는

./gradlew build


build 에 jar 파일 다운 확인

경로 복사

mobaXterm에 폴더 하나 생성

드래그해서 복사


경로 이동후

아래와 같이 타이핑한다.

nohup java -jar mybatis_project-0.0.1-SNAPSHOT.jar 1>log.out 2>err.out &
nohup java -jar [war파일일경우 이렇게].war 1>log.out 2>err.out &

nohup : 유저가 콘솔에 접속 중이지 않더라도 서버 실행 유지
java -jar : 자바 jar파일을 실행시킨다. (내부 톰캣용)
파일명 : m 만 치고 탭을 누르면 자동완성 된다.
1>log.out : 1은 표준출력을 뜻한다. 문제가 없을 때는 log.out 파일에 로그를 기록
2>err.out : 2는 에러출력을 뜻한다. 문제가 있을 때는 err.out에 출력
& : 백그라운드 실행 (유저가 로그아웃하면 꺼진다. nohup과 같이 사용하면 실행 유지 가능)


실행 했는지 확인

ps -ef | grep project


리눅스의 에러 확인

tail err.out

tail에 -f 옵션을 붙이면 새로 들어오는 로그를 모니터링 할 수 있다.

tail -f  log.out


ctrl + C 로 빠져나올수 있다.

프로세스 끝내기

kill -9 PID

배포를 위한 스프링 부트 yml 설정

spring:
  datasource:
    # url: jdbc:h2:mem:test;MODE=MySQL
    # driver-class-name: org.h2.Driver
    # username: sa
    # password: 
    url: jdbc:mariadb://connect-maria-db.cwsubpcdpw5x.ap-southeast-2.rds.amazonaws.com:3306/temp?characterEncoding=utf-8&serverTimezone=Asia/Seoul
    driverClassName: org.mariadb.jdbc.Driver
    username: sa
    password: green123
profile
작은것부터

0개의 댓글