CS/Database

[FlagApp] Springboot - AWS RDS(MySQL) Connection

oxdjww 2023. 6. 29. 22:54
728x90
반응형

개발환경

SpringBoot 2.7.13

JDK 11.0

MySQL 8.0.32


해당 ERD를 기반으로 Database Schema를 구축하였습니다.

Relationship을 활용해 User, Flag(만남약속), 친구목록 등의 Entity-Relationship 관계를 표현하고자 했습니다.

그리고 AWS RDS를 생성하고, DataGrip 툴을 사용하여 연동하였습니다.

Host : Instance End-Point

Port : 3306(default)

User : DB 생성 시 만든 계정 아이디

Password : DB 생성 시 만든 계정 비밀번호

참고) AWS RDS 생성 시 화면

 

이렇게 DB 연동 후, ERD 기반 Query로 스키마를 완성하였습니다.

 

그리고 SpringBoot Project에도 연동해주었는데요,

 

build.gradle에 기본적인 설정을 해줍니다

implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'mysql:mysql-connector-java'

dependencies에 jpa와 mysql을 활용할 것임을 추가해주고..

 

 

application.properties 파일에 로그인 정보들을 적어주었습니다.

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://flag-db.cbutsy3iam3a.ap-northeast-2.rds.amazonaws.com:3306/flag_db
spring.datasource.username=admin
spring.datasource.password=${DBPW}

이때, 비밀번호 부분을 환경변수로 지정해주면 접속 정보를 은닉하여 안전하게 github에 업로드할 수 있습니다.

 

환경변수 지정하는 법

>>

run버튼 왼쪽에 있는 Edit Configuration을 클릭해줍니다

그 후, Modify options를 클릭하고 

환경 변수를 추가해줍니다

 

당장은 local에서 설정해준 것이지만, 나중에 가상 인스턴스를 배포했을 때 거기에서도 이렇게 환경변수로 지정해주면 됩니다!

 

jasypt 라이브러리를 활용하여 MD5와 DES를 통해 암복호화하는 방법을 생각했으나..

그냥 이정도로도 정보은닉은 충분할 것 같다는 생각이 들어 이정도로 마무리했습니다.

하단 블로그에서 설명해주신 jasypt로 id,pw, 심지어 endpoint도 암복호화하여 정말 안전하게 properties를 관리할 수 있을 것 같습니다.

 

Spring Boot | jasypt를 사용하여 프로퍼티 암호화 하기

jasypt란 개발자가 암호화 작동 방식에 대한 깊은 지식 없이도 최소한의 노력으로 프로젝트에 기본 암호화 기능을 추가할 수 있도록 하는 Java 라이브러리이다. 주로 프로젝트가 공개되어도 프로

kitty-geno.tistory.com

 

감사합니다.

728x90
반응형

'CS > Database' 카테고리의 다른 글

[Database] Oracle Datagrip connection  (0) 2023.05.27