🤍스프링부트 프로젝트로 RDS 접근하기
- 책에서는 MariaDB를 사용 중이지만 나는 연결이 한 번에 안 되는 바람에 MySQL로 만들었다.
- MySQL에서 스프링부트 프로젝트 실행하려면 몇 가지 작업이 필요하다.
- 1. 테이블 생성, 2. 프로젝트 설정, EC2 설정
🤍RDS에 테이블 생성
1. 먼저 RDS에 테이블을 생성한다. JPA가 사용될 엔티티 테이블, 스프링 세션이 사용될 테이블 2가지를 생성해야 하는데 JPA가 사용할 테이블은 테스트 코드 수행 시 로그로 생성되는 쿼리를 복사해서 사용하면 된다.
2. 스프링 세션 테이블은 schema-mysql.sql 파일에서 가져오면 된다.
3. 테이블 생성
🤍프로젝트 설정
1. MySQL 드라이버를 build.gradle 에 등록한다.
implementation('mysql:mysql-connector-java')
2. application-real.properties 파일 생성
- 서버에서 구동될 환경 구성하기 위해 생성
- application-real.properties로 파일을 만들면 profile=real인 환경이 구성됨.
- 보안상 이슈가 될만한 설정은 모두 제거
3. 깃허브 푸쉬
🤍EC2 설정
1. application-oauth.properties 파일과 마찬가지로 RDS 접속 정보도 보호가 필요한 내용이니 EC2 서버에 직접 설정 파일을 만든다.
vim ~/app/application-real-db.properties //app 디렉토리에 설정 파일 생성
- url : rds주소:포트명(기본 3306)/database 이름
- username : db계정
- password : db계정 비밀번호
✅spring.jpa.hibernate.ddl-auto=none
- JPA로 테이블이 자동 생성되는 옵션을 None하겠다.(=생성하지 않음)
- RDS는 실제 운영으로 사용될 테이블이니 스프링부트에서 새로 만들지 않도록 설정이 필요하기 때문이다.
- 이 옵션을 하지 않으면 테이블이 모두 새로 생성될 수 있으므로 중요한 옵션임!!
2. real profile을 쓸 수 있도록 deploy.sh 수정
3. deploy.sh 실행. 성공적으로 수행되었다!!!
4. curl localhost:8080 명령어 실행 후 html 코드가 정사적으로 보이면 성공이다!!
🤍EC2에서 구글, 네이버 로그인하기
1.EC2에 스프링부트가 8080포트로 배포되었으므로 8080포트가 보안 그룹에 열려있는지 먼저 확인해야 한다.
AWS EC2 도메인으로 접속
- 왼쪽 사이드바 [인스턴스]메뉴를 클릭 후 본인이 생성한 EC2 인스턴스를 선택하면 상세 정보에서 퍼블릭 DNS를 확인할 수 있다.
- 이 주소가 EC2에 자동으로 할당된 도메인이다. 인터넷이 되는 장소 어디나 이 주소를 입력하면 우리의 EC2 서버에 접근할 수 있다.
2. EC2 도메인 주소에 8080 포트를 붙여 브라우저에 입력하면 짠!
구글에 EC2 주소 등록
- 아직 구글, 네이버에 EC2 도메인을 등록하지 않았기 때문에 소셜 로그인 기능이 작동하지 않는다.
- 먼저 구글에 등록한다.
1. 구글 웹 콘솔로 접속 후 API 및 서비스 - OAuth 동의화면 이동
- 승인된 도메인에 'http:// 없이' EC2 퍼블릭 DNS를 등록한다.
2. 사용자 인증 정보 탭을 클릭, 승인된 리디렉션 URI에 퍼블릭DNS주소 + :8080/login/oauth2/code/google 주소 추가하여 등록
3. 구글 로그인 정상적으로 수행됨!
네이버에 EC2 주소 등록
1. 네이버 개발자센터로 접속, 본인 프로젝트로 이동
2. PC웹 항목에서 서비스URL, Callback URL 2개를 수정한다.
- 서비스 URL : 로그인을 시도하는 서비스가 네이버에 등록된 서비스인지 판단하기 위한 항목, 8080포트는 제외하고 실제 도메인 주소만 입력.
- Callback URL : 전체 주소 등록
2. 네이버 로그인까지 정상 수행된다.
'💻 my code archive > 🏷️JAVA & Spring(Boot)' 카테고리의 다른 글
스프링부트 공부기록(17) - 무중단 배포 만들기 (0) | 2022.03.08 |
---|---|
스프링부트 공부기록(16) - Travis CI 배포 자동화, S3, CodeDeploy 연동 (0) | 2022.03.08 |
스프링부트 공부기록(14) - EC2 서버 배포 스크립트 작성, gradlew test 에러 원인, Junit5 맞게 코드 수정 해결 방법 (0) | 2022.03.05 |
스프링부트 공부기록(13) - AWD 데이터베이스 RDS 만들기, 인텔리제이 연결하기 (0) | 2022.03.04 |
스프링부트 공부기록(12) - AWS 배포 :: 회원가입, EC2 인스턴스 생성하기 (0) | 2022.03.02 |