테이블 생성
H2가 자동으로 생성해 주던 테이블들을 보안을 위해 직접 만들어야 한다. 이를 위해서 IntelliJ에서 RDS에 처음 접속했을 때 TEST 테이블은 만든 방식으로 두 개의 테이블을 만들 것이다.
Entity 테이블
IntelliJ에서 Application을 실행하면 콘솔창에 Hibernate와 함께 자동 실행됐던 쿼리문들이 나온다. Hibernate를 제외한 순수 쿼리문만을 복사한다.
엔터티 테이블이 여러개라면 위 처럼 여러개의 Hibernate가 나왔을 것이다. 하나하나 다 만들어 주면 된다. 데이터베이스 탭에서 QL 아이콘을 눌러서 New Query Console을 실행한다.
쿼리가 여러개라면 여러개를 복사해서 붙여 넣어주면 된다. 줄은 띄고 해도 되고 이어서 해도 된다. 다만 각 쿼리문 끝에 세미콜론(;)을 넣어줘야 한다. 그리고 모든 쿼리를 한 번에 실행하기 위해선 모든 쿼리를 블록설정하고 왼쪽 위 실행 버튼이나 command + enter를 눌러주면 된다.
성공적으로 생성되었다면 데이터베이스 탭에서 생성된 테이블 리
스트를 확인할 수 있다.
Session 테이블
스프링 세션 관리를 위해 필요한 세션 테이블을 생성해야 한다. 세션 관리를 위한 테이블 생성 쿼리문은 schema-mysql.sql 파일에서 확인할 수 있다. 애플리케이션 실행을 진행한 IntelliJ에서 Command + Shift + O (윈도우에선 Ctrl + Shift + N)을 실행한다. 여기서 File 탭에서 schema-mysql.sql 파일을 검색하여 실행한다.
파일을 실행하면 아래와 같은 쿼리문을 볼 수 있다. 이 쿼리문 전체를 복사하여 위에 엔터티 테이블 생성과정과 동일하게 실행한다.
쿼리가 정상적으로 실행되었다면 데이터베이스 테이블 목록에서 SPRING_SESSION과 SPRING_SESSION_ATTRIBUTES 테이블을 확인할 수 있따.
DB 세팅
본 포스트는 Gradle과 Spring Boot를 이용해서 작성한 웹사이트를 개시하고 있다. 로컬에서 작업할 때 아직 설정해 두지 않았던 MariaDB 설정을 마무리 지을 것이다.
build.gradle 수정
build.gradle 파일에 아래의 의존성을 추가해준다.
compile("org.mariadb.jdbc:mariadb-java-client")
application-real.properties 생성
/src/main/resources/ 위치에 application-real.properties 파일을 생성해준다. 보안 정보는 따로 없는 아래의 정보만을 입력해준다.
spring.profiles.include=oauth,real-db
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.session.type.store-type=jdbc
작성이 완료 된 후 이 두 파일을 github에 푸쉬해준다.
EC2 서버 세팅
이제 RDS 접속 정보를 OAuth 프로퍼티 파일과 같은 방식으로 EC2 서버에 직접 작성해 줄것이다. 직접 작성하는 이유는 역시나 보안상 안전성을 높이기 위함이다.
application-real-db.properties
EC2 서버에 터미널 접속 후 ~/app/ 위치에 application-real-db.properties 파일을 생성한다.
$ vim ~/app/application-real-db.properties
이 프로퍼티 파일에 다음의 내용을 자신의 정보를 추가하여 작성한다.
spring.jpa.hibernate.ddl-auto=none
spring.datasource.url=jdbc:mariadb://rdsAddress:PortNumber/databaseName
spring.datasource.username=dbId
spring.datasource.password=dbPassword
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
rdsAddress는 RDS 인스턴스의 엔드포인트를 말한다. AWS에 접속 후 RDS페이지에 들어가 해당 RDS의 인스턴스를 클릭하면 연결 & 보안 정보에서 앤드포인트와 포트정보를 확인할 수 있다. 이 두 정보를 rdsAddress와 PortNumber에 작성해주면 된다. databaseName은 RDS 인스턴스의 이름을 작성해 주면 된다.
dbId와 dbPassword는 모두 RDS를 생성할 때 정한 정보를 작성해주면된다. 작성을 마친 다음에는 역시나 "esc", ":wq" 명령어를 실행해 저장 종료한다.
:wq
deploy.sh 수정
역시나 properties 파일을 사용할 수 있도록 deploy.sh의 nohup 부분을 수정해 줄 것이다.
nohup java -jar \ -Dspring.config.location=classpath:/application.properties,/home/ec2-user/app/application-oauth.properties,/home/ec2-user/app/application-real-db.properties,classpath:/applicationnohup java -jar \
-Dspring.config.location=classpath:/application.properties,classpath:/application-real.properties,/home/ec2-user/app/application-oauth.properties,/home/ec2-user/app/application-real-db.properties \
-Dspring.profiles.active=real \
$JAR_NAME > $REPOSITORY/nohup.out 2>&1 &real.properties \ -Dspring.profiles.active=real \ $REPOSITORY/$JAR_NAME 2>&1 &
성공적으로 작동 한다면 아래 명령어를 입력했을 때 메인페이지의 html 내용을 볼 수 있다.
'ICT > AWS' 카테고리의 다른 글
AWS | 현재 이용금액 및 남은 무료 사용량 확인하는 방법 (0) | 2022.08.18 |
---|---|
AWS 이용해서 웹사이트 만들기 - 8080 없애는 방법 (0) | 2022.06.14 |
AWS 이용해서 웹사이트 만들기 - properties 파일 생성하기 (0) | 2022.06.13 |
AWS 이용해서 웹사이트 만들기 - GitHub을 이용한 배포 - deploy script 작성 (0) | 2022.06.13 |
AWS 이용해서 웹사이트 만들기 - GitHub을 이용한 배포 - Git 설치 토큰 Clone (0) | 2022.06.13 |
댓글