본문 바로가기

IT Note/Infrastructure

서버를 좀 더 알아보자

안녕하세요, 일전에 서버에 대해 간략하게 알아보는 시간이 있었습니다. 이번에는 그 서버에 대한 개념을 조금 확장하는 시간을 가져볼까 합니다.

PC라 불리는 데스크톱과 휴대성이 강조된 노트북, 태블릿까지 웬만하면 하나 이상의 컴퓨터를 갖고 있는 시대에 살고 있지만 서버는 친숙한듯하면서 친숙하지 않은 개념입니다. 하지만 인프라에 관심을 갖는다면 빠질 수 없는 핵심 요소이기 떄문에 조금씩 개념을 확장하다 보면 그리 어려운 개념만은 아니라는 것을 알  수 있습니다. (물론 그렇다고 서버가 쉽다는 얘기는 아닙니다..)

서버란 일반적으로 서버 프로그램이 실행되고 있는 컴퓨터 하드웨어를 통칭하며 다른 프로그램에게 서비스를 제공하는 컴퓨터 프로그램을 말하기도 합니다.
이러한 서버는 프린터 제어나 파일 관리 등 네트워크 전체를 감시·제어하거나, 메인프레임이나 공중망을 통한 다른 네트워크과의 연결, 데이터 프로그램·파일 같은 소프트웨어 자원이나 모뎀, 팩스, 프린터 공유, 기타 장비 등 하드웨어 자원을 공유할 수 있도록 도와주는 역할을 하기도 합니다.

이런 서버를 우리는 하드웨어적인 관점과 소프트웨어적인 관점으로 나눠볼 수 있는데요,

#하드웨어적인 관점

IBM Power Systems (AIX, IBM i, Linux), System z (메인프레임),  System x (xSeries), 블레이드센터
HP HP ProLiant 서버(DL, ML, SL 시리즈)  HP Integrity서버(Superdome High-end, mid-range, entry level)
              HP Integrity Non Stop 서버(Tandem), HP Alpha 서버
ORACLE(SUN) SPARC 서버(T4 시리즈, Enterprise M 시리즈), SUN x86시스템, SUN Blade서버

 # 소프트웨어 (프로그램) 관점

DBMS  DB2 Enterprise Server Edition , Informix Dynamic Server, ORACLE Server,  MS SQL Serve
WAS WebSphere Application Server, WebLogic Application Server,  JEUS(Web Application Server)
WEB Internet Information Server(Service), Apache Server, IBM Http Server
미들웨어 CICS, SNA

 

이렇게 제조사 별로 지원하는 운영체제(OS)에 따라 서버를 분류하기도 하고 올라간 프로그램에 따라 서버를 분류하기도 합니다. 예컨데 DB2가 올라간 P서버는 DB2서버가 될 수도 있고 AIX가 올라간 P서버라고 할 수 있는겁니다.

서버에 대해서 좀 더 알아보기 전에 사용자 입장에서 서버에 올라간 서비스를 이용하거나 운영하기 위해서 알아야할 구조(아키텍처)가 있어 잠시 소개할까 합니다. 즉, 서버를 이용하기 위해서 필요한 꾸러미를 IT인프라 관점에서 구조화한 건데요, 하드웨어부터 소프트웨어까지 IT 운영에 필요한 제반 사항들을 말합니다.

가장 많이 접하고 익숙한 형태는 클라이언트/서버 구조로 업무 애플리케이션, 미들웨어, 데이터베이스 등의 소프트웨어를 ‘물리 서버’ 상에서 운영하고, 이들 소프트웨어에 ‘클라이언트’ 라 불리는 소형 컴퓨터가 접속해서 이용하는 형태 입니다.

시스템을 구성하는 방식에 따라 1티어 클라이언트/서버 시스템 구조, 2티어 클라이언트/서버 시스템 구조, 3티어 클라이언트/서버 시스템 구조로 나눌 수 있는데요,

1 티어 클라이언트/서버 구조는 서비스를 제공하는 서버를 업무별로 나누지 않고 통으로 하나의 시스템으로 묶은 구조라고 생각할 수 있습니다. 사용자와 인터페이스 하는 프레젠테이션 계층( Presentation Rule), 애플리케이션 계층(Business Rule), 그리고 데이터 계층(Data Access Rule)을 하나의 서버 시스템에서 수행하는 방식입니다.

 

2 티어 클라이언트/서버 구조는 네트웍의 발전과 PC와 단말이 보급화되면서, 기존의 더미 터미널이 할 수 없었던 기능을 클라이언트로 이동한 방식을 말합니다. 클라이언트는 기존에 서버가 수행하던 작업 중, 사용자와 인터페이스 하기 프레젠테이션 계층(Presentation Rule), 애플리케이션 계층 (Business Rule), 그리고 데이터 계층(Data Access Rule) 시스템으로 구성하게 되었고, 서버 시스템은 주로 데이터를 관리하는 작업을 맡게 되었습니다. 1티어 방식과 가장 큰 차이는 클라이언트와 서버가 물리적으로 서로 독립된 시스템에 존재하게 되었다는 것입니다.

 

마지막으로 현재 서버/클라이언트 구조에서 가장 범용적으로 구성되어 있는 3티어 클라이언트/서버 구조를 알아보겠습니다. 3 계층 클라이언트/서버 시스템은 기존의 2 계층 클라이언트/서버 시스템의 문제점을 해결하기 위해 새로 도입된 방식으로, 사용자와 인터페이스 하기 위한 프레젠테이션 계층( Presentation Rule)을 클라이언트 시스템이 담당하고, 애플리케이션 계층(Business Rule)과 데이터 계층(Data Access Rule)의 운용을 서버 시스템에서 담당하여 서버와 클라이언트가 작업을 분담하는 형태로 시스템을 운용하는 방식입니다. 이 방식에서 서버 시스템은 업무 규칙을 처리하는 부분과 자료 관리를 위한 부분을 물리적으로 나누어 구성할 수 있습니다.

대부분의 인터넷/모바일 등 대부분의 시스템에서 3계층 구조로 되어있습니다. 서버에 부하가 집중되는 것을 분산시키는 장점이 있지만 초기 설치비용이 많이 들고 1,2티어 클라이언트 서버보다 복잡합니다.

 

마지막으로 서버에 필수적인 운영체제(OS:Operating System)을 알아보겠습니다. 운영체제는 시스템 하드웨어를 관리할뿐 아니라 응용 소프트웨어를 실행하기 위하여 물리적인 하드웨어를 추상화하는 플랫폼과 공통 시스템 서비스를 제공하는 시스템 "소프트웨어"라고 할 수 있습니다. 흔히 운영체제는 별도의 시스템으로 생각할 수 있는데 이것도 어떻게 보면 하드웨어를 제어할 수 있는 하나의 소프트웨어인 셈이죠.

일반 사용자에게 친숙한 운영체제는 마이크로소프트의 Windows, OS X, 리눅스등이 있습니다.

 

입출력(I/O)과 메모리 할당과 같은 하드웨어 기능의 경우 운영 체제는 응용 프로그램과 컴퓨터 하드웨어 사이의 중재 역할을 하는데요, 그러나 응용 프로그램 코드는 일반적으로 하드웨어에서 직접 실행됩니다. 운영 체제는 휴대 전화, 게임기에서부터 슈퍼 컴퓨터, 웹 서버에 이르기까지 컴퓨터를 포함하는 거의 모든 장치에서 볼 수 있습니다.

운영체제가 하는 일은 실행되는 응용 프로그램들이 메모리와 CPU, 입출력 장치 등의 자원들을 사용할 수 있도록 만들어 주고, 이들을 추상화하여 파일 시스템 등의 서비스를 제공하기도 하고, 멀티태스킹을 지원하는 경우, 여러 개의 응용 프로그램을 실행하고 있는 동안, 운영 체제는 이러한 모든 프로세스들을 스케줄링하여 마치 그들이 동시에 수행되는 것처럼 보이는 효과를 내기도 합니다..

운영 체제는 하드웨어 제어뿐만 아니라 그 위에 올라와있는 애플리케이션에 대한 제어 그리고 사용자 인터페이스 제공 등 한마디로 개발자와 이용자 모두 접근할 수 있는 양면형 플랫폼이라고 할 수 있는데, 하나의 연구분야로 자리잡을 만큼 복잡하고 어려운 개념입니다. 여기서는 잠시 소개에 소개를 하는 정도이니 깊이있는 것은 전문서적을 찾아서 공부를 하는 것을 추천드립니다.

 

서버를 알아보다 조금 옆길로 새서 아키텍처와 서버를 동작하는 운영체제를 잠깐 알아보았는데요,

다음시간에는 서버 특히 유닉스를 제어하거나 관리할 수 있는 구조에 대해서 알아볼 수 있도록 하겠습니다.

반응형