RDS란 AWS에서 제공하는 Relational DB Service의 약자로
다양한 종류의 데이터베이스 서비스를 제공합니다.
RDS에서 제공하는 관계형 데이터베이스의 종류 중 주로 사용 가능한 서비스들
Data Warehousing은 특히 비즈니스 인텔리전스에서 주로 사용되며
리포트 작성, 데이터 분석 시에 사용됩니다. (Production Database -> Data Warehousing)
즉, 엄청난 양의 빅데이터를 불러올 때 사용되는 시스템입니다.
보통 Data Warehousing은 서로 다양한 소스로부터 데이터가 합쳐지며
도움이 될만한 데이터들을 저장하고 있다가 필요에 의해서 데이터를 불러옵니다.
따라서, 트랜섹션 프로세싱(insert 구문)에는 적합하지 않습니다.
INSERT가 종종 사용될 때, 혹은 규모가 작은 데이터를 실시간으로 불러올 때 사용됩니다.
OLTP와 다르게 Data Warehousing처럼 방대한 양의 데이터를 불러올 때 사용합니다.
예를 들어, 테이블을 조인하거나 셀렉트 구문을 사용할 때 사용합니다.
-> OLAP에서는 트랜섹션 프로세싱이 쓰이지 않습니다.
AWS RDS에는 크게 두 가지의 백업 기능이 존재합니다.
Retention Period라고 포인트 인 타임이라고 말할 수 있습니다.
즉, 지금부터 35일 전까지 아무 날짜에 해당하는 시기로 데이터베이스를 복원시킬 수 있습니다.
Retention Period 안의 어떤 시간으로 돌아가는 것에 대비하기 위해서
AB는 매일 스냅샷과 트랜섹션 로그를 끊임없이 생성합니다.
만약 사용자가 20일 전으로 돌아가길 원한다면 20일 전에 해당하는 스냅샷과 트랜섹션 로그를 참조합니다.
이 기능은 RDS 인스턴스를 생성할 때 디폴트로 설정되어 있는 기능이며
백업 정보는 AWS S3 Bucket에 저장됩니다.
AB 동안이라고 했는 이것은 S3 Bucket에 데이터를 저장할 때 입니다.
이 기간 동안은 약간의 I/O suspension. 즉, 약간의 딜레이가 발생합니다.
DB Snapshots 기능은 사용자에 의해 수동으로 진행됩니다.
이 백업 기능의 가장 큰 장점은 RDS 인스턴스를 삭제하더라도
스냅샷은 S3 Bucket에 그대로 유지된다는 점입니다.
즉, 스냅샷만으로도 RDS 인스턴스를 복원시킬 수 있습니다.
📌 AB 백업 기능은 RDS 인스턴스 삭제 시에 스냅샷이 모두 없어집니다.
원본 RDS 인스턴스를 가지고 새로운 데이터베이스를 복원 시에는
전혀 새로운 RDS 인스턴스와 그에 해당하는 엔드포인트가 생성됩니다.
즉, 두 개는 완전히 다른 객체가 되는 것입니다.
원본 엔드포인트: original.ap-northeast-2.rds.amazonaws.com
백언 엔드포인트: restored.ap-northeast-2.rds.amazonaws.com
ElasticCache는 RDS의 특징은 아니고 전혀 다른 개념입니다.
ElasticCache를 사용하여 RDS가 더욱 효율적인 어플리케이션 퍼포먼스를 보여줄 수 있습니다.
ElasticCache는 말 그대로 Cache 입니다.
ElasticCache는 클라우드 내에서 인메모리 Cache를 생성하여 이를 통해서
RDS 처럼 데이터베이스에서 느리게 데이터를 읽는 것이 아니라
Cache를 통해서 데이터를 빠른 속도를 불러올 수 있도록 합니다.
특히 많은 사람들에 의해서 읽혀지는 데이터들을 Cache에 넣음으로써 빠른 로딩을 가능하게 해줍니다.
이를 통해서 데이터의 양이 많을 경우, ElasticCache를 사용한다면 많은 이득을 볼 수 있습니다.
즉, read-heavy 데이터베이스를 사용할 시에 최고의 효율을 나타낼 수 있습니다.
반면, 개발 및 테스트 용도로는 적합하지 않습니다.
ElasticCache는 두 가지의 타입이 존재합니다.
Memcached는 Object 캐시 시스템으로 널리 알려져 있습니다.
또한, ElasticCachedptj Memcache 를 주 프로토콜로 사용하기 때문에
Memcached의 프로토콜을 디폴트로 지정되어 있습니다.
Memcached의 가장 중요한 특징은 AWS EC2의 AutoScaling처럼
크기가 커졌다 작아졌다 하면서 캐시의 크기가 변화됩니다.
즉, Memcached는 데이터 처리 사용량에 따라 캐시의 크기가 변화됩니다.
Memcached는 Set이나 List와 같은 타입이 아니라 Object Caching이 주된 목적일 때 사용하는 것이 좋습니다.
Redis는 Object와 달리 Set이나 List와 같은 좀 더 정교한 데이터 타입의 데이터를
인메모리에 저장할 수 있게 해줍니다.
또한, Redis는 Multi-Availability Zone(Multi-AZ) 기능을 지원합니다.