단일 서버

단일 서버의 사용자 요청 처리 흐름

  1. 사용자는 도메인 이름(api.mysite.com)을 이용하여 웹사이트에 접속한다. 이 접속을 위해서는 도메인 이름을 도메인 이름 서비스에 질의하여 IP 주소로 변환하는 과정이 필요하다. DNS는 보통 제 3 사업자가 제공하는 유료 서비스를 이용하게 되므로, 우리 시스템의 일부가 아니다.
  2. DNS 조회 결과로 IP 주소가 반환된다. 여기 예제에서는 그 주소가 15.125.23.214라고 하겠다. 이 주소는 그림 1-2에 나온 웹 서버의 주소이다.
  3. 해당 IP 주소로 HTTP 요청이 전달된다.
  4. 요청을 받은 웹 서버는 HTML 페이지나 JSON 형태의 응답을 반환한다.

데이터 베이스

보통 웹 서비스를 할 때 웹/모바일 트래픽 처리 서버(웹 계층)와 데이터베이스 서버(데이터 계층) 으로 나눈다.

데이터 베이스는 전통적인 관계형 데이터베이스(RDBMS)와 비-관계형 데이터베이스(NoSQL)로 나뉜다.

관계형 데이터베이스는 자료를 테이블과 열, 칼럼으로 표현한다. SQL을 사용하면 여러 테이블에 있는 데이터를 그 관계에 따라 조인하여 합칠 수 있다.

비 관계형 데이터베이스는 네 부류로 나눌 수 있는데, 키-값 저장소, 그래프 저장소, 칼럼 저장소 그리고 문서 저장소가 있다.

보통은 관계형 데이터 베이스를 사용하지만 아래와 같은 경우에는 비 관계형 데이터베이스가 바람직한 선택일 수 있다.


수직적 규모 확장 vs 수평적 규모 확장

스케일 업 이라고도 하는 수직적 규모 확장 프로세스는 서버에 고사양 자원을 추가하는 행위를 말한다. 반면 스케일 아웃 이라고도 하는 수평적 규모 확장 프로세스는 더 많은 서버를 추가하여 성능을 개선하는 행위를 말한다.