Intro

한 명의 사용자를 지원하는 시스템에서 시작하여, 몇백만 사용자를 지원하는 시스템을 설계할 예정

규모 확장성과 관계된 설계 문제를 푸는 데 쓰일 유용한 지식들에 대한 정보를 제공.

단일 서버

규모가 작은 시스템에서는 모든 컴포넌트(웹 서버, 데이터베이스, 캐시)가 단 한 대의 서버에서 실행되는 간단한 시스템 부터 설계해보자.

  1. 도메인 이름을 이용하여 웹사이트에 접속을 시도한다. 도메인이름으로 서버의 주소인 IP를 찾기 위해서는 DNS(Domain Name Service)에 질의해야 한다.
  2. IP를 반환받는다.
  3. IP주소로 HTTP 요청이 전달된다.
  4. 웹서버는 HTML 페이지나 JSON 형태의 응답을 반환한다.

Q. WAS(Web Application Server)을 구축할 때 선호하는 구성이 어떻게 되나요?

데이터베이스

사용자가 늘면 서버 하나로는 충분하지 않아서, 서버를 늘려서 규모를 대응하게 된다.

하나는 웹/모바일 트래픽 처리용도고, 다른 하나는 데이터베이스용으로 분리할 수 있다.

이렇게 하면 각각을 독립적으로 확장해 나갈 수 있다.

데이터베이스를 써야 하는 이유?

데이터베이스는 데이터를 관리하는데 특화된 기능을 제공합니다. 아래와 같은 특징 때문에, 직접 데이터를 관리하기보다는 데이터베이스를 통해서 관리합니다.