1. 3계층형 시스템의 구성도
3계층형 시스템은 웹 서버와 AP 서버, DB 서버로 구성되어 있습니다.
가장 아래 물리서버는 세 대의 서버가 배열되어 있고, 스위치를 경유해서 연결되어 있습니다.
그 위는 CPU와 메모리 영역으로 '오퍼레이팅 시스템(OS)' 영역을 보여줍니다.
2. 3개층형 구성도 개념
2.1 프로세스 및 스레드
프로세스 및 스레드는 OS 상에서 실행되기 때문에 독립성을 가지고 동작합니다. 프로세스 및 스레드가 활동하기 위해서는 메모리 공간이 필요합니다. 해당 공간은 커널에 의해 확보됩니다.
WEB 서버에서는 httpd 프로세스의 메모리 공간이 존재합니다. 해당 공간들은 독립되어 있습니다.
AP 서버는 스레드로 httpd 프로세스와 다르게 하나의 메모리 공간을 공유하고 있습니다.
|
프로세스
|
스레드
|
장점
|
개별 처리 독립성이 높습니다. |
생성 시 부하가 낮습니다. |
단점
|
독자 메모리 공간이기에 CPU 부하가 높습니다. |
메모리 공간을 공유하여 의도하지 않은 데이터 읽기/쓰기가 발생합니다. |
2.2 OS 커널
커널 자체가 OS의 '인프라' 라 할 수 있습니다.
커널이 존재하기 때문에 Hardware나 다른 APP에 끼치는 영향을 의식하지 않고 개발할 수 있습니다.
커널의 역할을 확인해보겠습니다.
① 시스템 콜 인터페이스
프로세스/스레드에서 커널로 연결되는 인터페이스입니다.
APP이 OS를 통해서 어떤 처리를 하고 싶을 때 시스템 콜이라는 명령을 이용하여 커널에 명령을 내립니다.
이때 명령이 인터페이스를 통해서 전달된다.
② 프로세스 관리
언제, 어떤 프로세스가 어느 정도의 CPU 코어를 이용할 수 있는지, 처리 우선순위 결정 등을 관리합니다.
③ 메모리 관리
물리 메모리 공간의 최대치를 고려하여, 프로세스가 이용하는 독립 메모리 공간을 확보하거나 상호 간의 참조 영역을 지키기 위해 독립성을 관리하는 등 메모리 영역을 관리한다.
④ 네트워크 스택
크게 유저(user) 영역, 커널(kernel) 영역, 디바이스로(device) 영역으로 나눌 수 있습니다.
데이터 전송(패킷 송수신) 하는데 여러 성질이 있는데 해당 내용은 다음에 이어 설명하겠습니다.
⑤ 파일 시스템 관리
파일 시스템용 인터페이스를 제공하며, 물리 디스크에 제공된 데이터를 관리하는 기능이 있습니다.
APP은 ‘파일’이라는 단위로 데이터를 작성하거나 삭제할 수 있으며, 주로 디렉터리 구조 제공과 액세스 관리, 고속성, 안정성 향상 기능을 갖고 있습니다.
⑥ 장치 드라이버
디스크나 NIC 등의 물리 장치용 인터페이스를 제공합니다.
3. 웹 데이터 흐름
3.1 Client PC → WEB SERVER
① 웹 브라우저가 요청을 발행합니다.
② 이름 해석 후, 해당 웹 서버에 요청을 전송합니다.
③ 웹 서버가 요청을 접수합니다.
④ 웹 서버가 정적 콘텐츠인지 동적 콘텐츠인지 판단 후, 필요한 경로로 데이터에 액세스합니다.
정적 콘텐츠 : 실시간으로 변경할 필요가 없는 데이터를 가리킵니다. 웹 서버에서는 데이터 갱신 빈도가 낮은 것을 디스크에 저장해서 요청이 있으면 저장해 둔 내용을 HTTP를 통해 사용자 웹 브라우저로 반환합니다.
동적 콘텐츠 : 높은 빈도로 변경되는 데이터를 가리킵니다. 동적으로 변경되는 데이터를 서버 내부의 디스크에 저장하면 갱신 빈도가 높기 때문에 디스크 성능이 병목 현상의 원인이 될 수 있습니다. 일반적으로 AP 서버가 HTML 파일을 동적으로 생성하고, 웹 서버는 동적 콘벤츠에 대한 요청을 AP 서버에게 전송 후 결과를 기다립니다.
3.2 WEB SERVER → AP SERVER
① 웹 서버로부터 요청이 도착합니다.
② 스레드가 요청을 받으면 자신이 계산할 수 있는지, 아니면 DB 접속이 필요한지를 판단합니다.
③ DB 접속이 필요하면 연결 풀에 액세스합니다.
④ DB 서버에 요청을 보냅니다.
3.3 AP SERVER → DP SERVER
AP 서버가 DB 서버에 접속하려면 드라이버가 필요합니다.
DB 서버에서는 여러 개의 프로세스가 역할을 분담하는 경우가 있습니다.
① AP 서버로부터 요청이 도착합니다.
② 프로세스가 요청을 접수하고 캐시가 존재하는지 확인합니다.
③ 캐시에 없으면 디스크에 액세스합니다.
④ 디스크가 데이터를 반환합니다.
⑤ 데이터를 캐시 형태로 저장합니다.
⑥ 결과를 AP 서버에 반환합니다.
3.4 AP SERVER → WEB SERVER
DB 서버에서 데이터가 돌아왔기 때문에 AP 서버의 요청 스레드로 결과가 반환됩니다.
① DB 서버로부터 데이터가 도착합니다.
② 스레드가 데이터를 가지고 계산 등을 한 후에 파일 데이터를 생성합니다.
③ 결과를 웹 서버로 반환합니다.
3.5 AP SERVER → WEB SERVER
AP 서버에서 돌아온 데이터를 받아서 웹 서버의 httpd 프로세스가 PC의 웹 브라우저로 반환합니다.
① AP 서버로부터 데이터가 도착합니다.
② 프로세스는 받은 데이터를 그대로 반환한다.
③ 결과가 웹 브라우저로 반환되고 화면에 표시된다.
지금까지의 해당 서버의 동작들은 공통점이 존재합니다.
1. 프로세스나 스레드가 요청을 받습니다.
2. 도착한 요청을 파악해서 필요에 따라 별도 서버로 요청을 보냅니다.
3. 도착한 요청에 대해 응답합니다.
'Develop > Infra' 카테고리의 다른 글
무정지를 위한 인프라 구조 (0) | 2022.05.08 |
---|---|
인프라 네트워크 구조 (0) | 2022.05.08 |
인프라 응용 이론 (0) | 2022.05.08 |
인프라 이론 (0) | 2022.05.08 |
인프라 아키텍처 (0) | 2022.05.08 |