RSD Intro (Relational Database Service)
AWS에서 제공하는 관계형 데이터베이스 서비스입니다.
RDS 사용의 이점
- EC2 인스턴스를 사용하면 데이터베이스와 관련해서 자동으로 관리를 담당하는 부분이 매우 적기 때문에, 사용자가 일일이 시간을 투자하여 데이터베이스 엔진의 설치와 버전 관리, 데이터 백업을 해야 합니다.
- RDS를 이용하면 데이터베이스 유지 보수와 관련된 일들을 RDS에서 전적으로 자동 관리합니다.
- 기타 RDS 이용 시 얻을 수 있는 장점으로 다양한 데이터베이스 엔진 선택지를 제공한다는 점을 들 수 있습니다.
RDS Architecture
관계형 데이터베이스의 개요 : 관계형 데이터베이스에서 정보는 열과 행으로 이뤄진 테이블에 저장되고, 테이블에 저장된 데이터는 공통 키 또는 공통 컨셉에 따라 서로 관계를 유지하며, 테이블에서 데이터를 인출할 때 이와 같은 관계성을 이용한다는 측면에서 관계형 데이터베이스라는 이름이 붙었습니다.
Amazon RDS의 개요
AWS는 관계형 데이터베이스 호스팅 및 관리 서비스인 Amazon Relational Database Service(RDS)를 제공합니다.
- Aurora MySQL
- Aurora PostgreSQL
- Oracle
- SQL Server
- MySQL
- PostgreSQL
- MariaDB
RDS 고가용성 구현
RDS는 고가용성(high availability) 아키텍처를 지원합니다. 데이터베이스가 잠시라도 셧다운되면 기업의 모든 업무가 마비될 수 있기 때문에, 모든 데이터 서비스의 근원인 데이터베이스는 본질적으로 고가용성 아키텍처를 따릅니다.
가장 단순한 아키텍처 : 싱글 AZ 배포 : 개발 환경에서 데이터베이스를 사용하거나 클라우드 기반 데이터베이스에 대한 경험을 얻는 차원에서 사용하는 거라면, 싱글 AZ 환경에서 RDS 인스턴스를 론칭해도 됩니다.
고가용성 아키텍처 : 멀티 AZ 배포 : 기업에게 매우 중요한 데이터베이스를 실행하거나, 데이터를 절대 잃어버려서는 안되는 경우, 설정된 복원 소요 시간이 매우 촉박하거나 가동 정지 시간이 일절 허용되지 않는 경우, 멀티 AZ 환경에서 데이터베이스를 배포해야 합니다. 멀티 AZ 아키텍처에 데이터베이스를 배포하려면, 사용자가 먼저 기본 데이터베이스 인스턴스를 어느 AZ에 놓을지 정해야 합니다.
멀티 AZ 아키텍처의 경우 마스터 데이터베이스라고 부르는 기본 데이터베이스가 모든 트래픽을 처리하고, 스탠바이 데이터베이스는 애플리케이션이 실행되고 있는 기본 데이터베이스가 셧다운되는 상황을 대비해 가동 가능 상태에서 대기 하게 됩니다.
대기 데이터베이스는 대기라는 상태에 있는 한 작동시킬 수 없고, 기본 데이터베이스와 대기 데이터베이스에 동시에 트래픽을 분산시킬 수는 없으며 이는 액티브 및 패시브(active/passive) 데이터베이스 모델과 비슷한 개념입니다.
RDS는 장애 발생 시 다양한 유형의 대응 방식을 자동으로 적용해, 호스트 인스턴스 셧다운, 스토리지 장애, 기본 인스턴스의 네트워크 연결 단락, AZ 자체 셧다운 등의 장애 상황에 대처 가능합니다.
RDS 확장성 구현
인스턴스 타입 변경 : 하나의 인스턴스 클래스에서 다른 인스턴스 클래스로 변경함으로써 스케일업 또는 스케일 다운 할 수 있습니다. 인스턴스 클래스 변경에 따라 약간의 가동 정지시간(downtime)이 발생할 수 있으므로, 애플리케이션이 이러한 가동 정지시간에 영향을 받지 않도록 확인해야합니다.
읽기 사본 활용 : 읽기 사본은 마스터 데이터베이스의 Read-Only 복사본으로 마스터베이스와 동기화 상태를 유지하며, RDS는 RDBMS 엔진에 따라 최대 15개의 읽기 사본을 지닐 수 있습니다. 읽기 사본은 read-only 쿼리의 부담을 줄여주며, 결과적으로는 마스터 데이터베이스의 워크로드를 감소 시키는 장점이 있습니다. 다만 데이터가 비동기적으로 복제되므로 데이터의 손실 가능성이 존재하기 때문에 데이터 손실에 주의해야 합니다.
'AWS' 카테고리의 다른 글
DevOps Day 30 (4.17) AWS_Sprint 3 Tier 아키텍처 배포 (2) | 2023.04.18 |
---|---|
DevOps Day 30 (4.17) AWS_VPC (0) | 2023.04.18 |
DevOps Day 29 (4.14) AWS - Storage (0) | 2023.04.14 |
DevOps Day 29 (4.14) AWS - EC2 (0) | 2023.04.14 |
DevOps Day 29 (4.14) AWS - Cloud Computing (0) | 2023.04.14 |