일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 즉시로딩
- BOJ
- JPQL
- 데코레이터
- 연관관계
- SQL프로그래밍
- shared lock
- 연결리스트
- 백트래킹
- 이진탐색
- FetchType
- 다대다
- 낙관적락
- 유니크제약조건
- 일대다
- eager
- PS
- 스프링 폼
- execute
- CHECK OPTION
- 다대일
- 스토어드 프로시저
- fetch
- 동적sql
- exclusive lock
- querydsl
- 지연로딩
- 비관적락
- dfs
- 힙
- Today
- Total
흰 스타렉스에서 내가 내리지
스프링 부트 프로젝트로 RDS 접근하기, RDS 설정 본문
JPA가 사용될 엔티티 테이블과 스프링 세션이 사용될 테이블 2가지 종류를 생성하자.
JPA가 사용할 테이블은 테스트 코드 수행 시 로그로 생성되는 쿼리를 사용.
스프링 세션 테이블은 schema-mysql.sql 파일에서 확인한다.
FIle 검색 [Command+Shift+O]
schema-mysql.sql 에서 긁어와서 RDS에 적용
스키마 생성확인
build.gradle 에 mariaDB 의존성 추가
implementation 'org.mariadb.jdbc:mariadb-java-client'
서버에서 구동될 환경을 하나 구성한다.
application-real.yml 파일을 생성한다.
여기에는 실서버의 mariaDB 정보가 들어간다.
application-real.yml 로 파일을 만들면, profile=real인 환경이 구성된다고 보면 된다.
spring:
profiles:
include: oauth, real-db
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL5InnoDBDialect
session:
store-type: jdbc
EC2설정
OAuth와 마찬가지로 RDS 접속 정보도 보호해야 할 정보이니 EC2 서버에 직접 설정 파일을 둔다.
application-real-db.yml 생성
민감정보이니 gitignore에 추가해놓는 것 필수
이떄 주의할점은, 데이터베이스이름이 RDS의 DB Identifier가 아니라, 데이터베이스 이름이다 진짜.
spring.jpa.hibernate.ddl-auto : none
- jpa로 테이블이 자동 생성되는 옵션을 none으로 지정한다.
- RDS에는 실제 운영으로 사용될 테이블이니 절대 스프링 부트에서 새로 만들지 않도록 해야 한다.
- 이 옵션을 하지 않으면 자칫 테이블이 모두 새로 생성될 수 있다.
- 주의해야 하는 옵션이다.
ec2 서버에 접속해서 실제로 application-real-db.yml 생성하고 deploy.sh 에 설정파일 추가
-Dspring.profiles.active=real
- application-real.yml 을 활성화시킨다.
- application-real.yml의 spring.profiles.include=oauth,real-db 옵션 때문에 real-db 역시 함께 활성화 대상에 포함된다.,
이제 ./deploy.sh 를 통해 배포를 해보자.
curl localhost:8080
위 명령어로 정상 수행되는지 체크해보자.
'AWS' 카테고리의 다른 글
VPC 생성하기, 퍼블릭 서브넷, 프라이빗 서브넷 (0) | 2023.05.15 |
---|---|
IAM ROLE, CI/CD, Travis CI, S3, CodeDeploy, IAM ROLE (0) | 2023.01.21 |
[신]배포 스크립트 만들기 - EC2, Amazon Linux (0) | 2023.01.20 |
EC2 서버에 프로젝트 배포하기 - git clone, test (0) | 2023.01.20 |
Amazon Linux EC2에서 RDS 접근하기 (0) | 2023.01.20 |