이안의 평일코딩

[AWS] RDS Relational Database Service 본문

Front-end/AWS

[AWS] RDS Relational Database Service

이안92 2021. 5. 28. 18:29
반응형

 RDS (Relational Database Service)

 

AWS에서 관계형 데이터베이스를 쉽게 사용할 수 있게 도와주는 서비스이다.

관계형 데이터베이스 관리의 부담을 덜어주지만 추가적인 비용이 발생한다.

쉬운 백업과 복구, 고가용성 확보, 수직 확장 수평 확장시 다운타임이 최소화된다.

AWS 타 서비스들과의 통합이 편리하고 다양한 기능과 높은 성능이 갖고 있다.

 

관계형 데이터베이스 (RDBMS)

 

테이블 모양의 2차원 데이터(행과 열, 레코드와 필드)를 저장

데이터와 데이터 사이의 관계를 활용하여 중복데이터를 방지하고 검색 성능을 높임

가장 대표적인 데이터베이스의 형태로 Oracle, MySQL, MS-SQL Server 등이 가장 유명하다.

RDS에서 지원하는 RDB는 Oracle, MySQL, MariaDB, Aurora, PostgreSQL, SQL Server

 

사전 준비

 

1. Admin 계정으로 로그인(IAM 권한이 필요한 경우가 많음)

2. DB 서브넷 그룹 생성

 - 두 개 이상의 서브넷의 집합

 - 서로 다른 두 개 이상의 AZ 필요

 - 주로 private subnet 사용

3. DB용 보안 그룹 생성하기

 - 3306 포트 열어놓기

 - 보통은 public-sg에 열어 놓는 경우가 많음

 

RDS 생성

 

생성시 다양한 설정을 할 수 있고 생성 후 수정이 가능하지만 불가능한 항목도 존재

Admin 권한이 필요한 경우가 많다

DB 서브넷: RDS가 위치하는 서브넷 설정, 최소 두개의 AZ 필요

자동 백업 기간: point-in-time recovery 기간 설정

백업 윈도우: 특정 기간에만 백업 하도록 지정

유지보수 윈도우: 특정 시간에만 업데이트 패치 등을 수행함

보안 그룹: RDS 인바운드 트래픽 제어에 사용

 

RDS 연결하기

 

일반적으로 데이터베이스는 외부 연결을 허용하지 않는다

보통 점프 서버 등을 통해 접속한다

IDE를 통해 연결할 경우 SSH 터널링을 사용할 수 있다

 

RDS 수직 확장 및 축소

 

수직 확장 / 축소 => Scaling Up / Down

서버의 성능을 높이거나 줄이는 방법 (CPU, memory, Disk, 네트워크 대역폭 등)

RDS는 거의 다운타임 없이 수직 확장 및 축소 가능

지정된 유지보수 기간 또는 즉시 반영 중 선택 가능

 

RDS 수평 확장 - 읽기 복제본 추가

 

수평 확장: Scaling Out

여러 대의 서버를 이용해서 성능을 높이는 방법

NoSQL 들은 좀 더 유연한 수평확장이 가능한 경우가 많다.

읽기 복제본 또는 샤딩과 같은 기술이 대표적

개발자의 추가적인 개발비용이 발생

Oracle이나 SQL Server처럼 RDBMS 자체적으로 지원해주는 경우도 있다.

반응형
Comments