devops

AWS의 RDS(Relational Database Service) 본문

DevOps/AWS

AWS의 RDS(Relational Database Service)

vata500 2022. 5. 19. 16:11
반응형

RDS(Relational Database Service)

AWS에서 제공하는 관계형 데이터베이스 서비스다. AWS가 직접 DB 유지보수와 관련된 일을 자동 관리해주기 때문에 사용자는 초기 설정을 제외하곤 번거로운 작업이 필요없어 큰 편의를 느낄 수 있다.

또한, 다양한 DB 엔진을 제공하여 필요와 목적에 맞게 엔진을 선택할 수 있어, 효율성을 높일 수 있다.

* 관계형 데이터베이스 : 관계형 DB는 열과 행으로 이뤄진 테이블에 저장되어, 테이블에 저장된 데이터는 공통 키, 컨셉에 따라 서로 관계를 유지한다. 

Amazon RDS 제공 엔진

  • Aurora MySQL
  • Aurora PostgreSQL
  • Oracle
  • SQL Server
  • MySQL
  • PostgreSQL
  • MariaDB

Amazon RDS 특징

AWS가 DB 설치부터 업그레이드 등 호스팅과 관련된 모든 복잡한 업무를 대신 처리한다.

- 인프라 관리 불필요
유저는 DB와 관련된 인프라를 관리할 필요가 없다. AWS가 다 해줌.

- 즉각적인 프로비저닝
RDS에서 DB 프로비저닝은 즉시 이루어진다.

- 확장성 관리
매우 간단하게 스케일업 및 스케일 다운이 가능하며, 사용자가 원하는 내용대로 환경 설정이 가능하다. 컴퓨팅과 메모리 리소스의 확장성을 자유롭게 조절할 수 있다.

- 어플리케이션 호환
다양한 DB 엔진을 지원하기 때문에 DB 어플리케이션 및 커스텀 코드, 기업에서 사용하는 DB 도구와 호환된다.

- 고가용성
멀티 AZ 환경에 데이터를 프로비전하면 RDS는 데이터를 복제하여 다른 AZ의 대기 인스턴스에 저장한다.

- 보안유지
대기 상태 데이터 및 이동 상태 데이터의 암호화를 지원한다. 이로써 대기 상태의 데이터를 암호화하고 SSL 기법을 이용해 전송 상태의 데이터를 암호화할 수 있다.

RDS 고가용성 구현

RDS는 고가용성 아키텍처를 지원한다. 옵션은 다음과 같다.

1. 싱글 AZ 배포
개발환경에서 DB를 사용한다면 싱글 AZ에서 RDS 인스턴스를 사용해도 좋다.

2. 멀티 AZ 배포
매우 중요한 DB를 실행하거나 손실되어선 안되면 멀티 AZ 환경에서 배포해야한다.

Master DB라고 불리는 Primary DB가 모든 트래픽을 처리, Standby DB는 어플리케이션이 실행되는 Primary DB가 셧다운되는 상황을 대비해 가동 가능 상태에서 대기한다. RDS는 Primary DB가 정상 상태를 유지하도록 하고, Standby DB는 즉시 복구가 가능한 대기 상태를 유지한다.

* 대기상태에 있을 경우 작동이 불가, 트래픽 분산도 불가능하다. (active, passive 상태와 비슷한 개념) 그러나 Primary DB의 데이터는 동기적으로 Standby DB에 복제된다.

장애 대응 상황 발생 시, Standby DB가 Primary DB의 역할을 이어받아 새 Primary DB로써 모든 어플리케이션의 트래픽을 처리한다.

RDS 확장성 구현

인스턴스 타입변경

DB 인스턴스 타입을 변경하는 것은 간단하다. 하나의 인스턴스 클래스를 다른 인스턴스 클래스로 변경하여 Scale-up, Scale-down 할 수 있다. 그러나 변경 시, 약간의 downtime이 발생하기 때문에 확인할 필요가 있다.

읽기 사본 활용

Master DB의 Read-Only 복사본으로 동기화 상태를 유지하며, RDS는 RDBMS 엔진에 따라 최대 15개의 읽기 사본을 지닐 수 있다. 읽기 사본은 Read-only 쿼리의 부담을 줄여서 결과적으로 Master DB의 워크로드를 감소시키는 장점이 있다.

반응형
Comments