RDS(Relational Database Service)
SQL을 언어로 사용하는 managed database service
- 프로비저닝, OS 패칭 전부 자동
- 지속적 백업 & 특정 시간으로 복구 (Point in Time Restore)
- 모니터링 대시보드 존재
- read Replicas
읽기 요청 몰리면 읽기 전용 용량 자동으로 늘어남
ex. 회사에서 하루/한달에 한번씩 통계용으로 데이터 읽어오는데 성능에 문제발생
- multi AZ 셋업 가능
High Availability
다중AZ 설정-> AZ별 인스턴스에 마스터DB의 Sync 복제
여러 rds지만, 하나의 DNS
active가 아닌 standby - 장애 대비 용도
- Scaling capability
Storage Auto Scaling (Horizontal scaling)
데이터베이스 인스턴스 수를 조절(증가/감소), 읽기부하높을 때 read replica 생성해 부하 분산
- EBS 스토리지 사용
+) active-active VS activce-standby :(서버를 이중화 하는 방법)
Active-active: 여러 개의 자원이 동시에 서비스 되는것
Active-standby: 말 그대로 하나의 서버가 대기(Stanby) 상태
EC2에서 MySQL vs RDS
rds는 HA, Scalability지원 / EC2보다 비쌈
-> 데이터를 오래 관리해야하고, 안정성이 중요한 입장(데이터 무결성, 내결함성이 너무 중요)이라면 rds
DynamoDB
AWS에서 만든 DBMS (독점기술)
managed serverless NoSQL DB
Managed: 완전 관리형
Serverless: 서버리스
NoSQL: 관계형 DB 아님
Key-value store, 키-값 데이터베이스
기본 연산
put(key, value): 키-값 쌍을 저장소에 저장
get(key): 인자로 주어진 Key에 대응되는 값 조회
테이블: 데이터를 저장하는 기본 단위
아이템: 테이블 내의 개별 레코드 (RDB의 row)
Primary Key = PK + SK
- key/value 스토어, TTL 기능 지원
- HA, Multi AZ, Read and Writes are decoupled, transaction capability
- DAX 클러스터를 읽기 캐시로 생성할 수 있다. -> ms 단위의 latency
- IAM을 통한 보안, 인증, 인가
- Event Processing: DynamoDb 스트림과 Lambda/Kinesis Data Streams를 통합할 수 있음.
- 따라서 Dynamo 테이블의 모든 변화에 따라 함수를 호출할 수 있다.
- Global Table 기능: active-active 설정이 가능하다.