관계형 데이터베이스로 세상에 존재하는 많은 데이터베이스 서비스들을 제공
Microsoft SQL, Oracle, MySQL, Postgre, Aurora, Maria DB
(참고로 오로라는 aws제공, 프리티어 제공x)
다양한 소스로부터 데이터가 합쳐지며 필요시 데이터를 불러오므로 트랜잭션 프로세싱에는 적합하지 않음
OLTP
INSERT와 같이 종종 사용되어지는, 혹은 규모가 작은 데이터를
불러올때 사용되는 SQL쿼리가 필요할때 유용 -> xm
ex) Order # 210에만 해당되는 이름, 주소, 시간 정보 INSERT
OLAP
매우 큰 데이터를 불러올때 사용. 주로 덩치가 큰 SELECT 쿼리가 사용됨 -> 조인, select, 트랜잭션 프로세싱이 쓰이지 않음
ex) 특정 회사 부서의 Net Profit, Products
Automated Backups (자동 백업)
RDS 생성 시 디폴트 설정 기능, 백업 정보는 S3 버킷(특정 조건에 도달시 무료x)에 저장된다. RDS 스토리지만큼만 S3 스토리지를 갖게 된다.
① Retention Period(1-35일) 안의 어떤 시간으로 돌아가게 할 수 있음 //Retention Period은 Point In Time(PIT)기능이라고 할 수 있음,
② AB는 그날 생성된 스냅샷과 Transaction logs(TL)을 참고함
③ 디폴트로 AB기능이 설정되어 있으며 백업 정보는 S3에 저장
④ AB동안 약간의 I/O suspension이 존재할 수 있음 -> Latency
DB Snapshots (데이터베이스 스냅샷)
① 주로 사용자에 의해 실행됨
② 원본 RDS Instance를 삭제해도 스냅샷은 존재함 (vs AB) //가장 큰 장점, 스냅샷만으로도 RDS인스턴스 복원가능, AB는 인스턴스 삭제시 스냅샷 모두 삭제
즉, RDS 데이터베이스 백업시 새로운 RDS 인스턴스와 그에 해당하는 RDS Endpoint가 생기는 것이다.
original.ap-northeast-2.rds.amazonaws.com(원본 엔드포인트)
restored.ap-northeast-2.rds.amazonaws.com(백업 엔드포인트)
원본 엔드포인트과 백업 엔드포인트는 두개는 완전 다른 객체가 된다.
성능 개선을 위해서 사용되지는 않음. 따라서 성능 개선을 기대하기 위해선 Read Replica가 사용되어져야 함
즉 쓰기 기능이 실행된 후 복제본이지만 다른 AZ에 쓰여진다. 2A에 문제가 생기면 2B에 fail over를 보냄 재해복구 시 시간 감소된다.
성능을 극대화시키기 위해 존재
즉, 쓰기 작업에 의해 Read Replica
메인 프로모션 DB에만 EC2 연결을 시키는게 아니라 하나의 EC2를 Read Replica로 각각 연결 가능
메인 DB워크로더를 낮툴 수 있으며 성능개선 효과
캐시를 의미, 초반 어플리케이션 개발 및 테스트 용도로는 적합 x
Memcached - 이럴때 사용하세요
1. 가장 단순한 캐싱 모델이 필요한가요? o
2. Object caching이 주된 목적인가요? o
3. 캐시 크기를 마음대로 scaling하기를 원하나요? o
Redis - 이럴때 사용하세요
1. List, Set과 같은 데이터셋을 사용하나요? o
2. 리더보드처럼 데이터셋의 랭킹을 정렬하는 용도가 필요한가요? o
3. Multi AZ기능이 사용되어져야 하나요? o
EC2, RDS의 대략적인 역할만 알고 있었는데, 이렇게 세부적인 이론을 배울 수 있어 좋았고, EC2와 RDS 사이의 연결도 배울 수 있어 좋았다. 그치만 3강의 실습 1이 잘 되지 않아 다시 시도해봐야겠다 ㅠㅠ 혼자 하면 소홀해졌을텐데 소학회를 통해서 같이 공부할 수 있어서 기쁘다!!