본문 바로가기
클라우드 서비스

[클라우드 서비스] Database Service _ 20241204

by 황오독 2024. 12. 6.

* RDS, DynamoDB, ElastiCache

더보기

실습 내용

# 4. DB 인스턴스 생성

- RDS 인스턴스 생성

- RDS 인스턴스 접속

- MySQL 명령문 실행

1. 관계형 vs 비관계형 DB

  관계형(RDB) 비관계형(NoSQL)
데이터 행과 열 Key-value, document, columnar, graph등
스키마 고정 동적(유연)
SQL 지원 미지원
확장성 수직적 확장 (Scale up) 수평적 확장 (Scale out)
가용성 장애 조치(Fail-over) 구성 필요 기본적으로 고가용성 지원
활용 - 명확한 스키마가 중요하고 데이터 구조 변경이 불필요할 경우
- 데이터 변경(업데이트)이 잦은 경우
- 데이터 구조 변경이 필요한 경우
- 대규모 데이터의 읽기/쓰기 성능이 필요한 경우

 

(1) 인메모리 DB

- In-memory DB

- 디스크 기반 DB와 달리 메모리에 데이터를 저장하여 디스크 기반 DB보다 수십~수백배 이상 처리 속도가 빠르다.

- 데이터 양의 빠른 증가로 인한 응답 속도가 떨어지는 문제를 해결하는 대안으로 활용되기 때문에 캐싱, 실시간 데이터 처리 및 분석 등에 적합하다.

- 하지만 In-memory DB는 시스템 장애 시 데이터가 유실될 수 있고, 메모리 저장공간이 한정되어 있고 비용이 비싼 단점이 존재한다.

 

(2) 비관리형 vs 관리형 DB 서비스

 

(3)  AWS Database Services

관계형 / 비관계형 / 인메모리 DB

 

2. Amazon RDS

- 클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영 및 확장할 수 있는 관리형 서비스

- MySQL, PostgreSQL, MariaDB, Oracle Database, SQL server, Amazon Aurora 6개의 데이터베이스 엔진 중 선택

- 하드웨어 프로비저닝, DB 설정, 패치 및 백업과 같은 시간 소모적인 관리 작업을 자동화하고 암호화, 고가용성 및 읽기전용 복제본 구성 기능을 제공한다.

- 운영 중 컴퓨터 리소스 및 스토리지 용량 확장을 지원한다.

https://interconnection.tistory.com/125

  Fail-over Read Replicas
목적 가용성 (장애발생 시 대응) 확장성(읽기성능 향상, 지연시간 최소화)
배포 영역 단일 리전 내 2개의 가용영역(AZ) 하나의 AZ, 여러 AZ, 여러 리전 가능
복제 방식 동기식 복제 비동기식 복제
읽기/쓰기 기본 인스턴스만 읽기/쓰기(O)
대기 인스턴스는 읽기/쓰기(X)
읽기 전용
장애 조치 장애 발생 시 자동 조치 필요 시 수동 승격 가능
- 장애복구 목적은 아니지만 기능상 예외

 

(1) Amazon Aurora

- RDS 옵션..?

- 클라우드용으로 구축된 MySQL 및 PostgreSQL 호환 관계형 DB 엔진으로 엔터프라이즈 데이터베이스의 성능과 가용성에 오픈 소스 데이터베이스의 간편성과 비용 효율성을 결합한 것이다.

- 표준 MySQL 보다 최대 5배, PostgreSQL 보다 3배 빠른 성능을 제공하고, 가용성 및 안정화를 강화시킨 것이다.

- Aurora DB 클러스터는 기본 DB 인스턴스 이외에 최대 15개까지 읽기 복제본을 별도의 가용 영역에 구성할 수 있어 뛰어난 성능과 고가용성을 제공한다.

- 데이터 용량이 증가함에 따라 클러스터 볼륨이 최대 128TB까지 자동 확장되며, Aurora Serverless 활용 시 DB 용량 관리가 불필요하다. (자동 확장 및 축소_서버리스)

 

2. Amazon DynamoDB

- 완전 관리형 NoSQL DB 서비스로, 페타바이트 규모의 스토리지를 제공하고 초당 수천만 건의 읽기 및 쓰기 요청을 지원한다.(10밀리초 미만의 성능)

- 데이터 자동 복제를 통해 1개의 리전 내 3개의 가용영역에 복제본을 구성하여 한 곳에서 장애가 나더라도 가용성을 유지한다. (글로벌 테이블 기능을 이용하여 여러 리전에 복제하여 운영 가능)

- 서버리스 서비스로 인프라를 배포하고 관리할 필요가 없다.

 

- 기본 키(Primary key)로 파티션 키와 정렬 키를 조합하여 활용할 수 있다.

- 파티션 키 값을 기준으로 저장할 파티션(물리적 스토리지)을 결정하여 데이터를 분할하여 분산 저장한다.

- 파티션 키 값이 같은 항목은 동일한 파티션에 저장되며 정렬 키를 기준으로 정렬된다.

- 테이블에서 항목을 읽기 위해 항목의 파티션 키 값을 지정하면 데이터가 지정된 파티션을 빠르게 찾아서 데이터를 반환한다.

- RDB는 테이블 형식으로 내용 처음부터 끝까지 읽어서 찾기 때문에 시간이 많이 걸리는데, NoSQL DB는 분산 저장을 통하여 빠르게 찾을 수가 있다.

 

- 뛰어난 수평적 확장성과 적절한 용량 조정 능력을 보유하여 읽기/쓰기 작업이 많고 속도가 빨라야 하는 애플리케이션에 적합하다.

- 예를 들어 글로벌하게 다수의 플레이어의 게임 데이터가 지속적으로 업데이트될 때 손실없이 빠르게 DB에 기록되고 조회할 수 있다.

- 또한 읽기와 쓰기 속도가 빨라야 하는 쇼핑몰 장바구니용 DB로도 활용중이다.

 

3. Amazon ElastiCache

- 클라우드에서 인 메모리 캐시를 배포, 운영, 조정하는데 사용되는 완전 관리형 서비스

- 1밀리초 미만의 응답시간을 지원함으로써 웹 애플리케이션의 성능을 향상시키며, 이 또한 서버리스 서비스이다.

- 게임 리더보드, 스트리밍 및 분석과 같이 내구성이 필요하지 않는 사용 사례에서는 기본 데이터 스토어로 사용할 수 있다.

 

4. Data Migration Serviece

- AWS DMS는 운영중인 소스 DB를 원하는 대상 DB로 마이그레이션하기 위한 서비스

- 지속적인 복제(CDC)를 통한 동기화를 수행하여 가동시간 중단없이 클라우드 환경으로 운영 DB 마이그레이션이 가능하다.

- 이기종 DB인 경우 AWS Schema Conversion Tool을 사용하여 소스 DB 스키마, 데이터 유형 및 코드 객체를 대상 DB와 일치하도록 변환한 후 데이터 마이그레이션을 수행한다.