이번 캡스톤디자인 프로젝트에서 개발 환경(dev)의 RDB와 운영 환경(prod)의 RDB를 분리하기 위해 RDS를 도입했습니다. RDS가 무엇인지 간단하게 설명드리겠습니다.
AWS RDS (Relational Database Service)
아마존 관계형 데이터베이스 서비스(Amazon Relational Database Service) 또는 아마존 RDS(Amazon RDS)는 아마존 웹 서비스(AWS)가 서비스하는 분산 관계형 데이터베이스입니다.
- 애플리케이션 내에서 관계형 데이터베이스의 설정, 운영, 스케일링을 단순케 하도록 설계된 클라우드 내에서 동작하는 웹 서비스
- 데이터베이스 소프트웨어를 패치하거나 데이터베이스를 백업하거나 시점 복구를 활성화하는 것과 같은 복잡한 관리 프로세스들은 자동으로 관리됩니다.
- 스토리지와 연산 자원들을 스케일링하는 것은 하나의 API 호출로 수행할 수 있습니다.
이제 AWS RDS 설정을 통한 RDB 생성과 생성한 RDB Server를 Mysql에서 접속까지 해보도록 하겠습니다.
1. 데이터베이스 생성 클릭
2. 표준 생성 + 본인 프로젝트에 해당하는 DB 선택
3. 템플릿 설정 (프리티어)
4. DB 인스턴스 식별자, 마스터 사용자 이름, 암호, 암호확인 지정 (yml file에 써야 되기에 기억해야 합니다)
5. 인스턴스 사양 및 스토리지 설정 (db.t2.micro, 범용 SSD 20)
6. 스토리지 자동 조정 비활성화 (Free tier에서의 과금 방지)
7. 연결 설정 (퍼블릭 액세스 : 예)
8. 데이터베이스 및 모니터링 설정
9. 보안 그룹 설정 ( EC2 -> 네트워크 및 보안 -> 보안 그룹 생성)
10. 생성한 보안 그룹 추가
11. 데이터베이스 생성 후, Intellij 및 Mysql에서 해당 DB 접속
설정 값
- 호스트: allercheck-db.cqmvfxwdj8z3.ap-northeast-2.rds.amazonaws.com
- 포트: 3306
- 사용자: 본인이 지정한 username
- 비밀번호: 본인이 지정한 password
- URL: 호스트 입력 시 자동으로 매핑
시행착오
1. Communication link Failure (보안 그룹 미지정으로 인한 오류)
2. Access denied for user Error
해결책
- 파라미터 그룹의 log_bin_trust_function_creators 옵션 값 1로 설정
다음과 같이 AWS에서 제공하는 RDS를 통해, DB Server를 대여받고 개발환경의 DB와 운영환경의 DB를 분리할 수 있게 되었습니다. 다음 포스팅에서는 lightsail 서버에서 생성한 DB와의 접속을 어떻게 하는지에 대해 포스팅하도록 하겠습니다.
<참고 자료>
'DevOps > AWS' 카테고리의 다른 글
[AWS] Route 53을 이용해 Gabia에서 구입한 도메인 연결 + Load Balancer, Certificate Manager를 이용하여 http -> https 적용 (0) | 2023.05.29 |
---|---|
[AWS] AWS Lightsail를 이용해서 Spring 프로젝트 배포 (0) | 2023.05.12 |
[메타코딩] cron 주기적 실행 (1) | 2022.10.04 |
[메타코딩 25~39강] AWS 내용정리(배포) (0) | 2022.10.03 |
[메타코딩 24강] AWS 내용정리(배포v1 흐름 이해하기) (0) | 2022.10.02 |