AWS로 Spring Boot 프로젝트 배포하기 [3] (수정됨)

김영신·2022년 4월 11일
0

AWS로 배포하기

목록 보기
3/4

해당 포스팅에선 AWS RDS를 쓰지 않고,
Oracle Cloud의 전자 지갑 방식을 사용합니다.
AWS 인스턴스를 보고 만드실 수 있으셨다면 RDS도 엔드포인트와 포트번호 사용만 다를 뿐
데이터베이스를 구축하실 수 있으실 겁니다.
해당 포스팅에선 Gradle을 사용합니다.
해당 포스팅에선 InteliJ Ultimate를 사용합니다.
해당 포스팅에선 Jar를 사용합니다.

자 이제 마지막으로 jar 파일을 서버로 넘겨줄 차례이다.
라고 하기전에 오라클 클라우드 데이터베이스 ATP를 구축해보자

오라클 클라우드 DB 구축

오라클 사이트 (https://www.oracle.com/kr/cloud/free/)

자바를 다운 받을 때의 그 아이디와는 다르게 클라우드 아이디를 회원가입하면 된다.
아 그리고 회원가입간에 홈 영역을 춘천으로 하자
서울로 하면 느릴 수도 있다.
그러고 로그인을 해서 들어가면


이런 화면이 나올 것이다.
만약에 내가 개인 포트폴리오 용으로 오라클 DB를 사용하고, 오라클 클라우드의 인스턴스 컴퓨팅을 사용한다면 AWS와는 다르게 오라클은 평생 무료다. ( 메모 )


이 친구를 클릭해서 들어가주자.

그러면 이제 AWS 인스턴스 설정할 때와 같이 설정하는 창이 뜰 것이다.

여기서 표시 이름은 해당 오라클 페이지에서 표시되는 이름이고
실제 데이터베이스 이름은 하단의 데이터베이스 이름이 된다.


대충 이렇게 바꿔준다. ( 코드에 TNS 주소를 작성할 때 편하다. )


기본값으로 냅둔다.


공짜가 좋다. 이것도 그대로 냅둔다.


해당 데이터베이스로 접근할 때의 비밀번호를 생성해준다.
(* 왠만하면 메모..하자 간단한 글자로는 비밀번호가 안되서... )


밑에 연락처 이메일 하나 적어주고 자율 운영 데이터베이스 생성을 해보자

그러고 조금 기다리면 ATP 라는 창이 초록색으로 바뀐다.

이때부터 설정이 다 된 것이다. 이제 전자 지갑을 만들어보자.
이때 데이터 베이스 작업을 누르면


Instance Wallet을 설정 후 Download Wallet을 누르면 비밀번호를 입력하라고 하는데
이는 우리가 데이터베이스 생성시 설정했던 비밀번호를 입력하면 된다.
그러면 zip 파일을 하나 다운로드 받을 수 있을 건데 고이 보관해 두자.

SQL Developer 다운로드

그리고 sql developer 를 다운받자
https://www.oracle.com/tools/downloads/sqldev-downloads.html

SQL Developer를 다운받고 실행을 해서

이 친구를 우클릭하여 새접속을 누른다.


그럼 이러한 창이 뜨게 되는데
Name같은 경우는 원하는 이름을 작성해도 된다. ( 한글도 가능 )
사용자 이름은 admin으로 작성해주자
그리고 비밀번호는 우리가 데이터베이스 생성시에 만들었던 비밀번호이다.

그 다음으로 접속 유형을 전자 지갑으로 바꾸면 이렇게 나온다.

찾아보기를 눌러서 우리가 받았던 전자지갑 .zip을 넣어준다.

그 후에 테스트를 클릭하여 테스트 결과가 성공이면 성공이다.
이제 접속을 누르자. 그러면 이제 오라클에 접속이 완료됬다.

여기서 이제 sql문을 작성해도 된다.

Spring boot와 오라클 DB 연결

그리고 스프링 부트 프로젝트에서 오라클DB에 접속하고 싶다면.
build.gradle 파일에 dependencies에

runtimeOnly 'com.oracle.database.jdbc:ojdbc8'
implementation 'com.oracle.database.security:oraclepki'
implementation 'com.oracle.database.security:osdt_core'
implementation 'com.oracle.database.security:osdt_cert'


이렇게 작성해주자.
또한 메인 폴더 안에 있는 resources 폴더 안에 있는
application.properties 혹은 application.yml을 수정해 줄 것이다.

application.properties에 해당하는 내용

spring.datasource.url=jdbc:oracle:thin:@내가 설정한 데이터베이스 이름_high?TNS_ADMIN=전자지갑의 경로
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.username="아이디"
spring.datasource.password="비밀번호"

! 중요 : 이때의 전자 지갑 경로는 zip 파일을 풀고 난 뒤의 전자지갑 경로이다.
다시 말해서 이때는 전자지갑의 압축을 풀어야 된다.

spring.datasource.url=jdbc:oracle:thin:@aiclass_high?TNS_ADMIN=/home/ubuntu/ProjectCGV/Wallet_aiclass
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.username="EpsteinKim"
spring.datasource.password="EpsteinKim123"

자 근데 위에서 보면 경로가 조금 이상하다. 분명 C나 D나 E:/로 시작해야 되는 것인데 /로 시작한다.
이는 리눅스 서버 경로이며 전자 지갑이 있어야 DB와 연동할 수 있기 때문에 마찬가지로 우분투 서버에서도 전자 지갑을 전송할 것이다.

서버가 아닌 로컬에서 작업을 할 것이라면 로컬 전자지갑 경로를 작성한다.

다음은 application.yml로 작성했을 때의 예시이다.

spring:
  datasource:
    driver-class-name: oracle.jdbc.OracleDriver
    url: jdbc:oracle:thin:@설정한 데이터베이스의 이름_high?TNS_ADMIN=압축을 푼 전자지갑의 경로
    username: admin
    password: 여기에는 데이터베이스의 비밀번호를 입력한다.
spring:
  datasource:
    driver-class-name: oracle.jdbc.OracleDriver
    url: jdbc:oracle:thin:@aiclass_high?TNS_ADMIN=/home/ubuntu/ProjectCGV/Wallet_aiclass
    username: admin
    password: 123123123213123

이렇게 하면 스프링 부트 시작시에도 에러가 안날 것이다.

자 이렇게 만든 스프링 부트 파일을 가지고 jar파일과
전자 지갑을 리눅스 서버로 넘겨 배포를 해 볼 것이다.

profile
어제보다 오늘 더 Developer

0개의 댓글