* 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
2. Amazon RDS
- 클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영 및 확장할 수 있는 관리형 서비스
- MySQL, PostgreSQL, MariaDB, Oracle Database, SQL server, Amazon Aurora 6개의 데이터베이스 엔진 중 선택
- 하드웨어 프로비저닝, DB 설정, 패치 및 백업과 같은 시간 소모적인 관리 작업을 자동화하고 암호화, 고가용성 및 읽기전용 복제본 구성 기능을 제공한다.
- 운영 중 컴퓨터 리소스 및 스토리지 용량 확장을 지원한다.
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와 일치하도록 변환한 후 데이터 마이그레이션을 수행한다.
'클라우드 서비스' 카테고리의 다른 글
[클라우드 서비스] Elasticity & HA _ 20241205 (2) | 2024.12.08 |
---|---|
[클라우드 서비스] Microservices_20241205 (1) | 2024.12.08 |
[클라우드 서비스] Storage Service _ 20241204 (4) | 2024.12.06 |
[클라우드 서비스] Computing Service _ 20241203 (4) | 2024.12.05 |
[클라우드 서비스] Networking Service _ 20241203 (0) | 2024.12.04 |