티스토리 뷰
RDS란?
-AWS에서 제공하는 관계형 데이터베이스 서비스로, 다양한 데이터베이스를 생성 및 운영할 수 있어, 개발자가 필요한 것을 선택하여 데이터베이스를 사용할 수 있는 서비스 입니다.
또한, 자동으로 백업, 복구, 패치관리, 등의 데이터베이스 관리 작업을 자동화하며, 필요에 따라 데이터베이스의 크기를 늘리거나 줄일 수 있습니다.
즉, RDS는 AWS에서 따로 자체적으로 운영하는 데이터베이스 서비스로, 우리가 서버를 개발할때 편의성을 높이는 서비스입니다.
그러면 저희가 따로 데이터베이스를 운영하는거에 비해 RDS를 통해 데이터베이스를 운영할때 어떤 장점이 있을까요??
RDS의 장점은 다음과 같습니다.
RDS의 장점
- 관리 편의성 증가
- 자체적으로 데이터베이스를 운영할땐 백업, 패치 관리, 장애복구 등의 관리를 직접해야하므로 매우 복잡하지만, RDS를 사용함으로 인해 이러한 데이터베이스 관리를 대신 자동으로 해주기 때문에 편의성이 증가합니다. - 데이터베이스 스케일링
- 자체적으로 데이터베이스를 운영하는거에 비해, 들어오는 트래픽 량에 따라 데이터베이스의 크기를 쉽게 스케일링할 수 있어, 데이터베이스를 상황에 따라 빠르게 확장하거나 축소시킬 수 있습니다. - 고가용성 및 내구성
- RDS는 백업 자동화, 데이터베이스 스냅샷, 다중 AZ(Availabilty Zone) 배포 등의 기술을 제공하여 고가용성과 내구성을 보장하여, 높은 데이터베이스 안정성을 보장합니다. - 비용 효율성
- RDS는 해당 서비스를 사용한 만큼만 비용을 지불하므로, 비용 효율성이 높아 서버 운영비용을 줄일 수 있습니다.
이러한 이유로 직접적으로 데이터베이스를 관리하는 것보다 AWS의 RDS를 이용해 데이터베이스를 사용하는 것이 효율적입니다.
이제 이렇게 RDS의 필요성을 알았으니, RDS 인스턴스를 생성하고, 이를 local의 MYSQL Workbench와 스프링 서버와 연동 시켜보겠습니다.
RDS 인스턴스 생성
- 데이터베이스 엔진 선택
-RDS에서 지원하는 다양한 데이터베이스 엔진 중에서 원하는 엔진을 선택하는 과정입니다. 이 포스팅에선 MYSQL로 설정하겠습니다.
데이터베이스 엔진 유형 뿐만아니라, 해당 엔진의 버전까지 선택할 수 있습니다.
- RDS 인스턴스 식별자 및 루트 정보 입력
-DB 인스턴스 식별자 입력칸에 RDS 인스턴스의 식별자 (이름)을 입력합니다. 이 정보는 RDS 인스턴의 이름이 되는 정보로, 해당 정보를 기반으로 RDS 인스턴스들이 식별이 됩니다.
이후 마스터 사용자 이름에 루트 사용자의 ID를 넣습니다.(기본값은 admin이며, 사용자가 수정할 수 있음)
또한 이후에 마스터 암호에 루트 사용자의 비밀번호를 넣습니다. 이 비밀번호 기반으로 RDS에 로그인 할 수 있습니다.
- 인스턴스 구성
-RDS에서 사용할 DB 인스턴수의 클래스를 정합니다. 이를 통해 DB의 성능을 결정할 수 있습니다.
(프리티어로 사용가능한 클래스는 t2.micro, t3.micro, t4.micro가 있습니다.)
- 스토리지
-DB 스토리지의 종류 및 크기를 정합니다. 스토리지의 종류를 정할 수 있고, 해당 스토리지의 크기도 정할 수 있습니다.
- 연결 정보 설정
- 해당 RDS와 EC2연결 유무 및 DB 서브넷 그룹, 퍼블릭 액세스, VPC 보안그룹 등의 설정을 할 수 있습니다.
다른 외부에서 RDS에 접근하게 하기 위해서는 퍼블릭 액세스를 무조건 할당해야합니다.
- 추가 구성 정보
- RDS의 데이터베이스 추가 옵션을 선택할 수 있습니다. 초기 데이터베이스 이름을 설정해 기본으로 자동으로 데이터베이스가 생성되게 할 수 있으며, 백업 정보 및 로그 관리의 설정을 할 수 있습니다.
이렇게 RDS를 생성하였습니다. 생성한 후엔 이제 RDS의 정보를 활용해 스프링 및 MYSQL WorkBench에 연결을 해보도록하겠습니다.
먼저 연결을 하기 위해선 알아야할 정보가 다음과 같습니다.
- RDS 엔드포인트
- RDS 포트번호
- 초기 DB 이름
- 마스터 사용자 이름
- 마스터 사용자 암호
여기서 RDS 엔드포인트와 RDS 포트번호는 RDS 의 '연결 및 보안' 창에서 확인할 수 있습니다.
초기 DB 이름과 마스터 사용자 이름 및 마스터 사용자 암호는 RDS의 '구성' 창에서 확인할 수 있습니다.
우선 스프링부트에서는 application.yml파일에 다음과 같은 정보를 설정하여 연결할 수 있습니다.
spring:
datasource: driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://{RDS엔드포인트}:{RDS포트번호}/{RDS 데이터베이스 이름(초기 DB)}?allowPublicKeyRetrieval=true&useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul
username: {마스터 사용자 이름}
password: {마스터 사용자 비밀번호}
MYSQL WorkBench에서는 다음과 같이 정보를 입력하여 연결할 수 있습니다.
(Store in Vault 를 클릭하여 마스터 사용자 비밀번호를 입력해야 합니다.)
(이때, Test Connection을 이용해 성공적으로 연결됐는지 확인 후 생성하는게 좋습니다.)
'클라우드' 카테고리의 다른 글
로드밸런서를 활용한 Scale-Out (수평확장) (0) | 2023.12.28 |
---|---|
EC2 도메인 연결 및 HTTPS 적용하기 (2) | 2023.12.27 |
도커파일 (0) | 2023.10.08 |
쿠버네티스 기본 개념 (2) | 2023.10.04 |
도커 컴포즈(Docker Compose) (0) | 2023.09.26 |
- Total
- Today
- Yesterday
- sql
- 서버
- 배포
- 웹소켓
- 깃
- 데이터베이스
- IP주소
- 컴퓨터구조
- 메세지큐
- 보안
- 포트포워딩
- 파인튜닝
- 네트워크
- 도커
- 자동화
- nat
- 깃허브
- 컨테이너
- 클라우드
- 테이블
- 데이터
- DB
- 자바
- 소프트웨어공학
- 문법
- 인공지능
- 쿼리
- 프로토콜
- 스프링
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |