출처 : 원티드 & 멘토 훈님
기본 개념
1. 데이터베이스
CAP 이론
- 일관성(Consistency) : 데이터를 저장하는 장비에 상관없이 데이터는 모든 장비에서 동일한 데이터가 저장되어야 한다.
- 가용성(Availablity) : 모든 요청에 대해서 정상적인 응답을 보내줘야 한다. 다른 노드의 장애랑 상관없이 영향을 받지 않아야 한다.
- 부분 결함(Partition tolerance) : 노드 간의 부분 결함이 발생하더라도 (통신 장애) 동작해야 한다.
RDBMS: 관계형 데이터 베이스
- MySQL, Oracle DB, PostgreSQL 등이 있다.
- 관계형 데이터베이스는 자료를 테이블과 열, 컬럼으로 표현한다.
- Join 을 하여 여러 관계를 합칠 수 있다.
NoSQL: 비 관계형 데이터 베이스
- MongoDB, DynamoDB, Cassandra 등이 있다.
- 키-값 저장소, 그래프 저장소, 칼럼 저장소, 문서 저장소 등으로 구분할 수 있다.
- Join 연산은 지원하지 않는다.
2. 규모의 확장
수직적 확장(Scale Up)
- 일반적으로 비용이 수평적 확장보다 많이 든다.
- 재부팅이 필요하다.
- (고사양의) 두배 이상의 CPU, Memory 를 갖춘 시스템은 두배 이상의 비용이 들지만, 두배 이상의 부하를 처리할 수 있는 것은 아니다.
수평적 확장(Scale Out)
- 여러대의 서버 갯수를 늘리는 방식
- 무중단 배포가 가능하다.
- Autoscaling 기능을 통해 자동으로 Scale Out이 가능하다.