Cloud

[클라우드 컴퓨팅] DB

  • -
728x90

* 데이터베이스 consideration

본 내용은 아마존 공식 문서의 RDS 관련 내용을 참조하였습니다. (링크)

관계형 데이터베이스

관계형 데이터베이스란 테이블(table)로 이루어져 있으며, 이 테이블은 키(key)와 값(value)의 관계를 나타냅니다. 테이블은 이름을 가지고 있으며, 행(row)과 열(column) 그리고 거기에 대응하는 값을 가집니다. 즉, 관계형 데이터베이스는 위와 같이 구성된 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체로 이해할 수 있습니다. 이처럼 데이터의 종속성을 관계(relationship)로 표현하는 것이 관계형 데이터베이스(RDBMS)입니다.

 

특징

- 데이터의 분류, 정렬, 탐색 속도가 빠름

- 오랫동안 사용된 만큼 신뢰성이 높고, 어떤 상황에서도 데이터의 무결성을 보장기존에 작성된 스키마를 수정하기가 어렵다.

- 데이터베이스의 부하를 분석하는 것이 어렵다

AWS RDS(Relational Database Service)

  • Amazon Relational Database Service는 클라우드에서 관계형 데이터베이스를 쉽게 설치, 운영 및 확장 할 수 있는 관리형 서비스입니다.

RDS의 특징

  • RDS는 필요에 따라 CPU, 메모리, 스토리지, IOPS를 각각 독립적으로 확장할 수 있습니다.
  • RDS는 백업, 소프트웨어 패치, 자동 장애 감지 및 복구를 관리합니다.
  • Amazon Aurora, MySQL, MariaDB, PostgreSQL, Oracle, Microsoft SQL Server를 지원합니다.
  • DB 인스턴스에 대한 shell을 제공하지 않고, OS 제어가 불가능합니다.
  • RDS DB 인스턴스에 대해 Storage Auto Scaling을 활성화 할 수 있습니다.
  • AWS Database Migration Service 를 이용하면 기존에 사용하던 데이터베이스를 AWS로 마이그레이션 가능합니다.

  • RDS는 다중 AZ 배포(Multi-AZ deployments)를 통해 high availability(고가용성)과 failover(장애극복)를 제공합니다.
  • 다중 AZ 배포를 활성화 하면 RDS는 자동으로 서로 다른 AZ에 동기식 예비 복제본(standby)을 프로비저닝하고 유지합니다.
  • 예비 복제본은 같은 리전에 다른 AZ에 프로비저닝 됩니다.
  • 다중 AZ(Multi-AZ) 배포가 활성 된 경우 동기식 복제를 수행하기 때문에 단일 AZ(Single-AZ)에 비해 쓰기(write)와 커밋(commit)의 레이턴시(latency)가 증가 할 수 있습니다.
  • 예비 복제본(standby)는 읽기 요청을 처리할 수 없습니다. 다중 AZ 배포는 가용성과 내구성을 제공하도록 설계되어 있고 기본(primary)와 예비 복제본(standby)가 지속적으로 동기화하는 것도 이러한 이유 때문입니다.
  • Single-AZ에서 Multi-AZ로 DB 인스턴스가 수정되는 경우, RDS는 DB 인스턴스의 스냅샷을 캡쳐하여 다른 AZ로 복원한 뒤
  • 기본(primary) 인스턴스와 새로운 인스턴스는 동기식 복제를 설정합니다.
  • 다중 AZ배포를 사용하면 primary인스턴스에서 I/O가 중단되지 않도록 자동 백업 및 DB 스냅샷이 예비 복제본에서 수행됩니다.
  • DB 인스턴스나 AZ에 장애가 발생할 경우 RDS가 자동으로 예비 복제본(standby)으로 failover됩니다.
  • 이때 예비 복제본이 promoted(승격)되자 마자 데이터베이스에 읽기쓰기가 재개됩니다.

Read Replicas(읽기 전용 복제본)

  • 애플리케이션의 읽기 트래픽을 분산하기 위한 용도
  • Read Replicas를 지원하는 DB 엔진 : MariaDB, Microsoft SQL Server, MySQL, Oracle, PostgreSQ
  • Read Replicas가 생성되면 먼저 기존 DB 인스턴스를 source DB로 지정합니다.스냅샷에서 Read Replicas 생성이 완료되면, RDS가 기존 DB 인스턴스가 변경할 때 마다 DB 엔진이 비동기적으로 Read Replicas를 업데이트합니다.
  • 이후 RDS가 source 인스턴스의 스냅샷을 생성하여 해당 스냅샷에서 Read Replicas를 생성합니다.
  • 어플리케이션은 DB인스턴스와 동일하게 Read Replicas에 연결됩니다.

DB 인스턴스 백업 및 복원

  • RDS는 DB 백업을 위해 자동백업(automated backups)DB 스냅샷(DB snapshots)을 제공합니다.
  • 기본적으로 RDS는 DB 인스턴스를 자동으로 백업합니다. 이때 보존 기간은 7일입니다.
  • 자동 백업(automated backups)은 DB 인스턴스 전체를 백업(완전한 스냅샷을 만드는것)하는것 입니다.
  • 스냅샷(snapshots)은 DB 인스턴스의 특정시점을 스냅샷으로 생성하는것 입니다.
  • DB 스냅샷과 자동 백업은 S3에 저장됩니다.

그 외 AWS 데이터베이스의 종류

Aurora

MySQL 및 PostgreSQL 호환 관계형 데이터 베이스

  • 온라인 트랜잭션 처리(OLTP)에 사용
  • MySQL*의 최대 5배에 달하는 처리량 제공
  • PostgreSQL의 최대 3배의 처리량 제공*
  • 3개의 가용 영역에서 6가지 방식으로 데이터 복제
  • 기존 애플리케이션을 거의 변경할 필요가 없음

RedShift

  • 온라인 분석 처리 (OLAP). S3 쿼리가 많고 복잡하며 집계하는 등 집중적인 데이터 웨어하우스(창고)
  • S3의 임시 쿼리라면 Athena, 쿼리가 많고 복잡하며 집계하는 등 집중적인 데이터 웨어하우스라면 Redshift
  • 매우 큰 데이터셋 저장
    • 매우 구조화되고 자주 엑세스되는 데이터 저장
    • Amazon S3의 엑사바이트 규모의 정형, 반정형, 비정형 데이터를 저장할 수 있음

DynamoDB

  • Amazon DynamoDB는 완전 관리형 비관계형 키-값 및 문서 NoSQL 데이터베이스 서비스입니다.
  • DynamoDB는 서버리스이며, 수평적 확장과 짧은 지연 시간을 제공합니다.
  • DynamoDB 글로벌 테이블은 데이터가 여러 리전으로 복제되도록 보장합니다.
  • DynamoDB는 기본적으로 이벤트 일관성을 제공합니다(일반적으로 쓰기 후 1초 후에 읽기에 대해 완전히 일관성 있음). 강력한 일관성 또한 옵션입니다.

일관성 모델 consistency options

최종적 일관된 읽기(기본값)
– 최종 일관성 옵션은 읽기 처리량을 최대화합니다. 그러나 최종적 일관된 읽기는 최근 완료한 쓰기 결과를 반영하지 못할 수 있습니다. 모든 데이터 사본은 일반적으로 1초 내에 일관성을 가지게 됩니다. 짧은 시간 이후 읽기를 반복하여 갱신한 데이터를 반환해야 합니다.
강력한 일관된 읽기
– DynamoDB는 최종 일관성 외에도 애플리케이션 또는 애플리케이션의 요소에서 요구하는 경우 강력한 일관된 읽기를 요청할 수 있는 유연성과 제어도 제공합니다. 강력한 일관된 읽기는 읽기 전에 성공적인 응답을 수신한 모든 쓰기를 반영한 결과를 반환합니다.
ACID 트랜잭션

  • DynamoDB 트랜잭션에서는 개발자에게 단일 AWS 계정 및 지역에서 ACID(원자성, 일관성, 격리성 및 지속성)를 제공합니다. 단일 논리 비즈니스 작업의 일부로 여러 항목에 대한 통합된 삽입, 삭제 또는 업데이트가 필요한 애플리케이션을 구축하는 경우 트랜잭션을 사용할 수 있습니다.

AWS Database Migration Service

AWS Database Migration Service(AWS DMS)는 데이터베이스 및 분석 워크로드를 AWS로 빠르고 안전하게 이동하여 가동 중단 시간 및 데이터 손실을 방지하는 데 도움이 되는 관리형 마이그레이션 및 복제 서비스입니다. AWS DMS는 20개 이상의 데이터베이스 및 분석 엔진 간의 마이그레이션을 지원합니다.

실습: Module 5 Challenge Lab - Migrating a Database to Amazon RDS

  • Create an RDS database instance
  • Export data from MariaDB database by using mysqldump
  • Connect a SQL client to an RDS database.
  • Migrate data from a MariaDB database that runs on an EC2 instance to an RDS database instance
  • Configure a web application to use the new RDS database instance for data storage

'Cloud' 카테고리의 다른 글

[ACC] 아키텍처 설계 과정  (0) 2024.04.29
[클라우드 컴퓨팅] 컨테이너와 ECS  (0) 2023.12.05
[Virtualization 101] 2. Vt-d  (0) 2023.10.29
[클라우드 컴퓨팅] Intro  (0) 2023.10.24
[Virtualization 101] 1. Introduction  (0) 2023.10.17
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.