관리 메뉴

생각해보기

3계층형 시스템을 살펴보자 본문

IT인프라

3계층형 시스템을 살펴보자

정한_s 2021. 10. 21. 10:17
더보기

앞서...

2 계층(클라이언트 - 서버형 아키텍처)

클라이언트 - 화면표시나 단순한 계산만 실행하고, 필요한 경우 서버에 의뢰한다

서버 - 모든 클라이언트 처리를 접수한다

장점

  • 클라이언트 측에서 많은 처리를 할 수 있어 소수의 서버로 다수의 클라이언트 처리 가능하다

단점

  • 클라이언트 측의 소프트웨어 필요하고, 정기 업데이트가 필요하다
  • 서버 확장성에 한계가 발생할 수 있다

 

 

3 계층이란?

클라이언트-서버형을 발전시킨 것

'프레젠테이션 계층', '애플리케이션 계층', '데이터 계층'의 3층 구조로 분할되어 있다.

 

프레젠테이션 계층

  • 사용자 입력을 받는다
  • 웹 브라우저 화면을 표시한다

애플리케이션 계층

  • 사용자 요청에 따라 업무 처리를 한다

데이터 계층

  • 애플리케이션 계층의 요청에 따라 데이터 입출력한다

장점

  • 서버 부하 집중 개선
  • 클라이언트 단발의 정기 업데이터가 불필요
  • '처리 반환'에 의한 서버 부하가 덜 든다(정적 리소스는 웹서버만 거친다)

단점

  • 구조가 클라이언트-서버 구성보다 복잡하다

웹 데이터 흐름

클라이언트 PC부터 웹 서버까지

 

  1. 노트북의 '웹 브라우저'가 특정 인터넷 사이트에 요청 보낸다
  2. DNS 서버에 질의해 해당하는 IP주소로 '웹 서버'에 요청을 보낸다
  3. 웹 서버의 'httpd' 프로세스가 요청을 접수한다
  4. http가 받은 요청 내용을 분석해 디스크에 읽을지, AP(application) 서버에 질의할지 판단한다
  5. 디스크 경우 -> 커널의 '시스템 콜'로 실행되어 디스크 내용 취득, AP서버 질의의 경우 -> 커널을 통해 NIC에 대한 네트워크 통신이 요청된다
  6. (AP 서버 질의의 경우) 스위치를 경유 해서 AP 서버에 대한 질의 수행

웹 서버부터 AP 서버까지

 

  1. 웹 서버에서 온 요청이 NIC를 경유하고 커널이 인터럽트 수행한다
  2. 위의 스레드가 요청을 접수하고 계산을 한다, DB에 질의가 필요한 부분이 있다면 대기한다
  3. DB 접속은 '드라이버'를 통해서 '연결 풀'로 관리되고, JVM 전체가 리소스를 관리하기 때문에 DB 접속성도 유지한다, DB에 대한 접속 요청은 OS '시스템 콜'로 실행되고 DB 서버(외부)와 커널을 통해서 네트워크 통신이 이루어진다
  4. 네트워크 경유로 DB 서버에 대한 질의가 이루어진다

# DB 서버 이외의 옵션

  1. 웹 서버에 처음부터 JVM에 데이터가 캐시 되어 있으면 데이터 바로 반환
  2. DB 서버보다 빠른 '캐시 전용 서버'가 있으면 그곳에 접속

AP 서버부터 DB 서버까지

 

  1. DB 서버에서 DB프로세스가 요청을 접수한다
  2. 이전에 사용한 정보가 있다면 캐시되어 있기 때문에 공유 메모리를 검색한다
  3. 공유 메모리에 없는 경우 시스템 콜을 통해 디스크를 읽는다
  4. 디스크의 데이터는 요청을 보낸 프로세스로 반환된다
  5. 한번 액세스 한 데이터는 메모리에 캐시 형태로 저장된다
  6. 요청 보낸 AP 서버로 반환한다

'IT인프라' 카테고리의 다른 글

인프라와 병목현상  (0) 2021.10.31
인프라 구조에 대해 알아보자  (0) 2021.10.30
네트워크와 처리 흐름  (0) 2021.10.26
인프라 응용 이론에 대해 알아보자  (0) 2021.10.25
인프라에 앞선 기본 이론  (0) 2021.10.22
Comments