스프링부트 공부기록(15) - EC2 배포하기, RDS 접근, EC2에서 구글,네이버 로그인하기
my code archive
article thumbnail
반응형

🤍스프링부트 프로젝트로 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. 네이버 로그인까지 정상 수행된다.

반응형
profile

my code archive

@얼레벌레 개발자👩‍💻

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

반응형