Spring Boot와 앞서 생성한 RDS 내의 MySQL 환경을 연동해보고,
.jar
파일을 EC2에 배포하여 탄력적 IP와 Swagger UI를 통한 테스트를 합니다.
EndPoint(엔드포인트)
가 필요합니다. +
→ Data Source
→ MySQL
Name
: 편한 이름을 설정합니다.Host
: 엔드포인트 입력User & Password
: MySQL의 계정 정보 입력application-cloud.yml
spring:
datasource:
url: jdbc:mysql://[endpoint]:3306/[DB 이름]
username: jinmin2216
password: [password]
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
#show_sql: true
format_sql: true
default_batch_fetch_size: 100
defer-datasource-initialization: true
application.yml
spring:
profiles:
include: cloud
EC2 인스턴스를 생성할 때 다운로드 받은 키파일 (xxx.pem
)을 src/resources
로 옮깁니다.
(관리를 위해)
Gradle의 clean
과 build
를 통해 .jar
파일을 추출합니다.
Show Excluded Files
를 통해 모든 파일을 보이도록 설정한 후, build/libs/xxxx.jar
가 생성된 것을 확인할 수 있습니다.FileZilla를 통해 EC2(클라우드 서버)에 JAR 파일을 배포합니다.
생성한 EC2의 EIP를 확인합니다.
FileZilla를 통해 EC2 서버에 연결하도록 관리자를 연결합니다.
프로토콜
: SFTP - SSH File Transfer Protocol호스트
: 탄력적 IP / 포트
: 22 (ssh)로그온 유형
: 키파일사용자
: “ec2-user”키 파일
: xxxx.pem
(src/resources
에 존재하는 xxx.pem
)Local
/ 오른쪽은 EC2(Cloud Server)
.jar
파일을 리모트 사이트에 복사합니다. Mac의 터미널로 EC2에 접속하여 .jar
파일을 확인할 수 있습니다.
.jar
를 실행시키는 명령어
$ sudo yum install java # java cli 다운
$ java -jar [JAR 파일] # JAR 빌드 파일 실행(배포)
$ nohup java -jar [JAR 파일] & # 아래 설명 참조
nohup
명령어는 리눅스에서 프로세스를 실행한 터미널의 세션 연결이 끊어지더라도 지속적으로 동작 할 수 있게 해주는 명령어입니다. 마지막에&
를 추가하면.jar
파일이 백그라운드로 실행될 수 있게 합니다.
$ tail -t nohup.out # JAR 파일이 실행됨을 실시간으로 볼 수 있습니다.
$ cat nohup.out # nohup.out의 결과를 텍스트의 형태로 볼 수 있습니다. (터미널 창에 맞도록)
실행됨을 확인한 뒤, 주소창에 입력하여 Swagger UI로 진입합니다.
< 주소창 >
1. [퍼블릭 IPv4 address]:8080/swagger-ui.html
2. [퍼블릭 IPv4 DNS]:8080/swagger-ui.html
nohub
으로 실행중인 JAR 파일 종료
$ ps -ef | grep [xxx.jar] # 파일 실행 확인
$ kill [pid] # 프로세스 ID에 해당하는 프로세스 종료