프로젝트/글로런

[글로런] 배포(1) - AWS RDS로 전환하기

LBACK 2023. 3. 22. 15:11

이번엔 배포를 위해 먼저 DB를 로컬DB에서 AWS RDS를 통해 생성한 DB로 전환하겠습니다. 

 

간단한 프로젝트이므로 EC2 내에서 DB를 사용해도 되겠지만, DB를 별도로 관리하는 것이 일반적이므로 나중을 위해서라도 일반적인 사례를 따르겠습니다. 마찬가지의 이유로 이미지 저장소 또한 S3 저장소로 전환할 예정입니다.

 

1. RDS MySQL 생성하기

저는 프리티어를 사용중이므로, 프리티어 인스턴스 조건에 맞춰 생성하도록하겠습니다.

AWS는 프리티어의 경우 월별 750 시간 무료로 사용가능하므로 하나의 인스턴스만 이용하면 무료로 사용가능합니다. 

(※참고 - 프리티어 요금 정리 글)

 

먼저 AWS에 접속하고 가입한 후, 검색창에 'RDS'를 검색하고 이동하면 다음과 같은 화면이 나옵니다.

'데이터베이스 생성' 버튼을 클릭하여 새로운 데이터 베이스를 생성합니다.

 

위와 같이 데이터 베이스 생성 옵션을 선택하는 화면이 나옵니다.

 

기본 옵션에서 많이 수정할 부분은 없고, 다음 부분만 신경써주면 됩니다. (프리티어 기준)

  • DB - MySQL
  • 버전 - 자유
    • 단, 8.0대 사용하시는 분들은 대소문자 구분 이슈가 있어, 다음 글 참고하고 진행하시면 됩니다. https://zzang9ha.tistory.com/328 -> 인스턴스를 생성할 때 부터 직접 설정한 파라미터로 설정하면 됩니다!
    • 위 이슈가 있는 경우 -> 추가 구성 - DB 파라미터 그룹 선택
  • 템플릿 - 프리 티어
  • 사용자 이름, 암호 설정
  • 인스턴스 구성 - t2.micro or t3.micro 선택 (t2.micro가 더 일반적인 듯 합니다.)
  • 할당된 스토리지 - 20GB
  • 연결 - EC2 리소스에 연결 안 함 (추후에 추가 설정이 필요할 수도 있습니다.)

생성이 완료되고, 상태가 '사용 가능'으로 표시되면 이용할 수 있습니다. 

 

2. MySQL workbench 연결하기

저는 이미 MySQL workbench가 설치된 상황이므로, 좀 더 편하게 관리하기 위해 이를 이용하겠습니다.

새로 커넥션을 만들고, Hostname을 생성한 RDS의 엔드포인트로 변경 및 비밀번호를 입력하고 연결하면 됩니다. 

이후 로컬에서 개발할 때 사용한 DDL을 그대로 입력하여 바로 DB를 생성하였습니다.

 

3. application.yml 설정하기

이제 스프링 프로젝트의 application.yml에서 DB 연결 설정만 변경해주면 됩니다. 

url에서 가려진 부분이 생성한 인스턴스의 엔드포인트이고, 뒤에 포트와 DB 이름을 명시해주면 됩니다.

username과 password는 인스턴스를 생성할 때 이용한 사용자 이름과 비밀번호를 입력하면 됩니다.

(※ 이런 정보들이 노출되기 때문에 application.yml은 git ignore를 통해 설정해주어야 합니다!)

 

이제 변경된 RDS DB로 잘 연결되는지 테스트해보겠습니다.

스프링에서 빌드한 후 회원가입을 하고, MySQL workbench를 통해 DB를 조회하니 성공적으로 회원 데이터가 저장되었네요.

 

다음엔 이미지 파일의 저장소를 S3 저장소로 변경해보겠습니다.