AWS기초 - RDS
AWS기초 - RDS
RDS
Relational Database Service이며, 관계형 데이터베이스이다.
DB
- RDBS
행과 열로 이루어져있는 2차원적인 공간이다. 테이블, 데이터, 필드로 구성되어있는 데이터베이스이다.
e.g. Oracle, MySQL, PostgreSQL, MariaDB
- NoSQL
비관계형 DB이고 데이터를 이진 JSON 형식으로 저장해서 딕셔너리처럼 구별되는 데이터베이스이다.
Data WareHouse
테이터를 보관하고 사용하는 공간이며 주로 데이터 분석 작업을 지원한다.
DB와 Data WareHouse의 차이를 알아두어야 한다.
DB
DB는 데이터가 담긴 테이블을 물리적으로 보관하고 있는 시스템이다.
Data WareHouse
Data WareHouse는 여러 소스로부터 데이터를 수집하고 보관하여 큰 규모의 데이터를 불러오는 시스템이다.
(소스 : 다른 DB 또는 Cloud Platform..)
데이터를 테이블에 저장할 때 테이블 크기와 사용 목적에 따라 DB를 관리하고 사용하는 방법이 다르다.
OLTP
OLTP는 Online Transaction Processing을 뜻하고, 데이터가 DB에 저장되자마자 SQL을 사용해서 데이터를 불러올 때 사용되는 시스템이다. 실시간으로 데이터를 처리해야할 필요가 있을 때 OLTP 시스템을 사용한다.
OLAP
OLAP는 Online Analytical processing을 뜻하고, 다차원 데이터 분석 때 사용한다. 큰 데이터를 한 번에 사용할 때와 비실시간 데이터를 처리해야할 필요가 있을 때 OLAP를 사용한다.
DB 백업
AB(Auto Backup)
RDS에서 DB를 생성할 때 자동으로 활성화되는 AB는 1~30일의 보유기간 내에 특정 시간의 DB로 복원할 수 있다.
- AB는 백업 정보를 S3버킷에 저장
- S3버킷에 백업 정보를 저장하려고 할 때 약간의 I/O Suspension이 발생
- 원본 RDS 인스턴스를 삭제하면 백업 정보는 없어진다.
DB 백업 종류
DB의 인스턴스를 백업하거나 SQL문을 백업할 수 있다. 여기에는 SnapShot, Transaction Log가 있다.
SnapShot
DB 인스턴스를 그대로 복사하며, 원본 RDS 인스턴스를 지워도 남아있다. 단,수동으로 실행해야한다.
(인스턴스 : 파일 크기나 스냅샷 발생 시간 등의 정보)
Transaction Log
SQL 서버에서 실행되는 모든 SQL문을 기록한 로그이다. 어느 세션이 어떤 SQL을 실행했는지 순차적으로 기록된다.
DB 백업 원리
원본 인스턴스에서 백업을 생성하면 인스턴스 이름과 엔드포인트가 다른 인스턴스가 생성된다. 이 둘은 다른 객체이다.
RDS 성능 향상
엘라스틱 캐시 (AWS 리소스)
캐시로 데이터를 불러오면 속도가 굉장히 빠르다. 엘라스틱캐시는 클라우드 내에서 인메모미를 만드는데, Instagram, Facebook 등에서 동시에 많은 읽기 요청이 있다면 캐시에 저장된 데이터를 불러와 빠르게 보여준다.
캐시에는 두 가지 종류가 있다.
Memcached
오픈소스이며 분산 메모리 캐싱 시스템이다. Object Chche가 있어서 문자열 자료형을 처리할 때 주로 사용한다.
텍스트 기반의 데이터를 처리할 때 좋은 Caching 기법이다. 또한 Elastic한 성질을 가지고 있어서 데이터 처리 사용량에 따라 캐시 크기가 변한다.
Radis
복잡한 List, Hash Table 등을 메모리에 저장할 수 있다. 실시간으로 업데이트되는 LeaderBoard Data를 사용할 때와 다중 가용 영역을 설정할 때 사용한다.