스케일업과 스케일 아웃
- 스케일 업 : 하나의 서버의 사양을 높여 더 많은 요청을 처리할 수 있게 함
- 유지 보수 및 관리 : 쉬움
- 확장성 : 제약이 있음
- 장애복구 : 서버가 1대, 다운 타임이 있음
- 스케일 아웃 : 서버의 대수를 늘림 → 하나의 서버에서 더 이상 처리하기 힘든 요청이 왔을 때 서버의 대수를 늘려 부하를 분산 시켜 문제를 해결하는 방식
- 유지 보수 및 관리 : 여러 노드에 적절히 부하분산 필요
- 확장성 : 스케일업에 비해 자유로움
- 장애복구 : 장애 탄력성이 있음
언제 스케일 아웃이 가능한가?
스케일 아웃을 해서 여러 대의 서버가 되더라도 클라이언트 입장에서 보았을 때 마치 하나의 서버처럼 동작하는 것으로 보이게 해야 함 → 같은 입력에 대해 항상 같은 결과를 반환
예를 들어 서버가 3대라고 해서 각각의 서버가 요청에 대해 다른 결과를 반환하면 안됨
따라서 여러 개의 서버는 하나의 데이터를 공유할 수 있도록 하나의 데이터베이스를 공유함
데이터베이스를 스케일 아웃을 하기는 어려운가?
- 스케일 아웃을 하기 위한 가장 중요한 전제 조건 : 상태가 없어야 함
- 데이터베이스는 데이터라는 상태를 관리하고 있어 서버보다 스케일 아웃을 하기 위해서는 훨씬 많은 비용이 필요 → 그렇다고 해서 불가능한 것은 아님 ****(ex. 독립적인 데이터끼리의 파티셔닝)
- 현대 서버 아키텍처는 상태 관리를 데이터베이스에 위임하고, 서버는 상태관리를 하지 않는 방향으로 발전 → 이로 인해 서버는 자유롭게 스케일 아웃 할 수 있음
- 스케일 아웃외에도 서버는 메모리 데이터 활용하고 이를 기반으로 요청을 처리, 데이터베이스는 디스크의 데이터를 접근해서 가져옴 따라서 처리 속도가 서버보다 늦다.
- 또한, 서버와 데이터베이스 사이에는 네트워크 구간이 존재 → 네트워크 상황에 따라 요청 속도가 느려질 수 있음
2023 KAKAO Tech Campus_BackEnd 필수 과정
DB(MySQL) 강의 정리 내용입니다.
'CS > 데이터베이스' 카테고리의 다른 글
MySQL 소개 - 02. MySQL 아키텍처 소개 (0) | 2023.06.04 |
---|---|
MySQL 소개 - 01. MySQL을 학습하는 이유 (0) | 2023.06.04 |
대용량 시스템에 대한 이해 - 03. 대용량 시스템 아키텍처 맛보기 (0) | 2023.06.04 |
대용량 시스템에 대한 이해 - 01. 웹의 기본 아키텍처 (0) | 2023.06.04 |
실습 환경 구축하기 (MySQL, Intellij) (0) | 2023.06.04 |