본문 바로가기
CS/데이터베이스

대용량 시스템에 대한 이해 - 02. 왜 데이터베이스가 병목일까?

by 컴쏘 2023. 6. 4.

스케일업과 스케일 아웃

  • 스케일 업 : 하나의 서버의 사양을 높여 더 많은 요청을 처리할 수 있게 함
    • 유지 보수 및 관리 : 쉬움
    • 확장성 : 제약이 있음
    • 장애복구 : 서버가 1대, 다운 타임이 있음
  • 스케일 아웃 : 서버의 대수를 늘림 → 하나의 서버에서 더 이상 처리하기 힘든 요청이 왔을 때 서버의 대수를 늘려 부하를 분산 시켜 문제를 해결하는 방식
    • 유지 보수 및 관리 : 여러 노드에 적절히 부하분산 필요
    • 확장성 : 스케일업에 비해 자유로움
    • 장애복구 : 장애 탄력성이 있음

언제 스케일 아웃이 가능한가?

스케일 아웃을 해서 여러 대의 서버가 되더라도 클라이언트 입장에서 보았을 때 마치 하나의 서버처럼 동작하는 것으로 보이게 해야 함 → 같은 입력에 대해 항상 같은 결과를 반환

예를 들어 서버가 3대라고 해서 각각의 서버가 요청에 대해 다른 결과를 반환하면 안됨

따라서 여러 개의 서버는 하나의 데이터를 공유할 수 있도록 하나의 데이터베이스를 공유

데이터베이스를 스케일 아웃을 하기는 어려운가?

  • 스케일 아웃을 하기 위한 가장 중요한 전제 조건 : 상태가 없어야 함
  • 데이터베이스는 데이터라는 상태를 관리하고 있어 서버보다 스케일 아웃을 하기 위해서는 훨씬 많은 비용이 필요 → 그렇다고 해서 불가능한 것은 아님 ****(ex. 독립적인 데이터끼리의 파티셔닝)
  • 현대 서버 아키텍처는 상태 관리를 데이터베이스에 위임하고, 서버는 상태관리를 하지 않는 방향으로 발전 → 이로 인해 서버는 자유롭게 스케일 아웃 할 수 있음
  • 스케일 아웃외에도 서버는 메모리 데이터 활용하고 이를 기반으로 요청을 처리, 데이터베이스는 디스크의 데이터를 접근해서 가져옴 따라서 처리 속도가 서버보다 늦다.
  • 또한, 서버와 데이터베이스 사이에는 네트워크 구간이 존재 → 네트워크 상황에 따라 요청 속도가 느려질 수 있음

2023 KAKAO Tech Campus_BackEnd 필수 과정
DB(MySQL) 강의 정리 내용입니다.