Chapter 01 서버의 기본
어떠한 시스템이든 일정한 규모의 역활을 하기 위해서는 반드시 서버가 있어야 한다. 서버는 애플리케이션 소프트웨어를 동작시키는 주역이고, 하드웨어의 중심적인 역활이다.
서버에는 다음과 같은 3가지 이용 형태가 존재한다.
1. 클라이언트의 요청에 대응하여 처리하는 형태
- 서버에 접속된 클라이언트 PC 같은 산하 컴퓨터의 요청에 대응해 수동적으로 처리한다.
- 예시로는 파일 서버, 프린트 서버, 메일이나 웹 서버, IoT 서버(디바이스가 수시로 데이터를 올리는 경우) 등이 있다.
2. 서버에서 능동적으로 처리하는 형태
- 서버가 산하 컴퓨터나 디바이스에 대해 능동적으로 처리한다.
- 예시로는 운용 감시 서버, RPA 서버, BPMS 서버, IoT 서버(IoT 디바이스를 호출하는 기능 ) 등이 있다.
- 예시에서 본 것처럼 기업이나 단체의 시스템이나 업무 운영에서 중요한 역활을 하는 서버임을 알 수 있다.
3. 높은 성능을 활용하는 형태
- 서버 자체가 고성능 하드웨어이므로, 그 특징을 살려 처리한다. 최근 주목받는 기능이다.
- 예시로는 AI 서버(사람보다도 많은 학습 데이터), 빅데이터 서버(다양한 대량의 데이터를 고속으로 분석)가 있다.
'어떤 기기를 서버에 연결하는가?'라는 질문에 많은 분들이 클라이언트 PC라고 대답할 것이다.
예전부터 클라이언트-서버라는 호칭이 있을 정도이므로 이것은 모범적 답안이다.
BUT, 노트북 PC에 더해 테블릿, 스마트폰 등 폭이 넓어지고 있는 만큼 다양한 클라이언트(디바이스)가 서버에 접속할 수 있다.
서버를 생각할 때 무엇을 하고 싶은지, 무엇을 시키고 싶은지가 중요한 포인트이다.
애플리케이션 시점에는 일반적으로 두 가지로 나눌 수 있다. 순발력과 지구력!
1. 입출력을 중요시하는 시스템
- 입력한 데이터에 대해 처리 결과를 신속하게 돌려주는 시스템
2. 집계나 분석을 중요시하는 시스템
- 개별적으로 입력된 데이터의 집계나 분석을 중요시하는 시스템
이처럼 축을 정해서 모델화를 하면, 관계자가 시스템이나 서버에 관한 기대나 요구를 구체적으로 확인할 수 있는 동시에, 필요하지 않은 기능도 명확하게 알 수 있다. 나아가 내용과 외형, 애플리케이션 소프트웨어와 하드웨어 양면에서 생각해야 합니다.
모델화를 할 때는 무엇을 하고 싶은지, 어떤 처리가 필요한지에 관하여 관계자 간의 공통된 인식을 갖는 것이 중요하다.
추가로 어떤 시스템인지 명확하게 정리하고, 접속하는 디바이스들, 네트워크 구성, 입출력 시 원하는 서비스, 이용 형태(수동적인지 능동적인지)를 고려하는 것이 필요하다. 소프트웨어와 하드웨어의 시점에서의 요구에 따라 검토하면 이해가 쉽다.
Chapter 02 하드웨어로서의 서버
서버와 PC의 큰 차이점은 서버는 24시간 가동하여 운용하며, 멈출 수가 없다는 것이다. PC와의 큰 차이점으로는 아래와 같다.
1. CPU, 메모리, 디스크 등 유닛별로 교환 및 증설이 가능하게 되어 있다.
Ex) 운용을 정지하지 않고, 각 유닛을 교환할 수 있는 타입도 존재한다
2. 각종 부품으로 다중화가 되어 있다. Ex) 전원, 디스크, 팬 등을 다중화
그림 1. 서버와 PC 비교
※서버의 CPU, 메모리, 디스크 등의 성능과 신뢰성은 PC 보다 높고 수량도 많다.
그림 2. 서버의 구조
구성상으로 PC는 CPU, 메모리, 디스크 등이 효율적으로 배치됩니다. 반면에 서버는 교환이나 증설에 대비해 정연하게 배치됩니다.
서버는 개별 부품의 신뢰성이 높을 뿐만 아니라, 만약의 경우에도 운용을 정지하지 않고 일부 유닛을 교환할 수 있는 시스템 등을 탑재한 타입도 있습니다. 또한 원래 부품이 좋고 다중화를 포함한 고신뢰성과 함께 가능한한 운용을 멈추지 않는 구조이므로, 지속적으로 이용할 수 있는 높은 가용성도 가지고 있습니다.
3종류의 서버 OS
1. Windows Server(마이크로소프트가 제공)
- 기업이나 단체에서 필요로 하는 기능이 미리 패키지로 되어 있고 마이크로소프트의 지원도 있다.
2. Linux(오픈소스 OS의 대표 격, 상용 OS로는 Red Hat 등이 제공됨)
- 비교적 간단하고 저렴하게 시스템을 구축할 수 있다.
- 역사정 배경에서 UNIX 계열과의 친화성이 높다.
3. UNIX 계열(서버 제조사들이 제공)
서버의 사양
서버에서 주의해야 할 것은 전원이나 다중화 기구*에 관한 항목입니다.
그림 3. 서버 사양 예시
그림 4. 서버 선정
예전에는 서버를 선택할 때 필요한 처리 성능이나 데이터양 등을 계산하고 서버 성능과 대조해서 선정하였다. 하지만 지금은
'사용자 수'나 '용도' 등으로도 검토할 수 있습니다.
서버의 형태
그림 5. 서버의 다양한 형태
그 밖에 대형 컴퓨터의 메인프레임이나 슈퍼컴퓨터는 유닛별로 각각 전용 케이스를 갖고 있습니다. 또한 CPU, 메모리 디스크 등의
케이스가 분리되어 있습니다.
서버의 표준, PC 서버
PC 서버는 간단히 말하면, PC와 같은 구조로 PC가 대형화된 것 같은 서버이다. IA(Intel Architecture) 서버 등으로 불리기도 한다.
최근에 성능이 향상되고 다양화되면서 중·소규모 업무는 PC 서버로 대응이 가능하기 때문에 서버의 표준이 되었다.
Intel의 x86이라는 CPU나 그 호환 CPU를 내장한다는 점에서 x86 서버라고 불리기도 합니다.
CPU 아키텍처 이야기가 나왔는데, x86 이외에 대표 격으로 RISC라고 하는 아키텍처의 SPARC(Oracle, 전 선마이크로시스템즈)가 있습니다. 동일한 형태로 IBM의 Power 등이 있다.
서버의 등급
서버는 상위 기종과 표준 등으로 나눌 수도 있다. 기본적으로 크기가 큰 서버가 일반적으로 고가이다.
상위의 개념
1. 다중화 장치가 충실한 형태를 상위로 한다.
2. x86 서버를 표준으로, UNIX계 등을 상위로 한다.
상위와 표준을 판단 하는 포인트
1. 형태는 제외하고 우선 CPU와 OS를 확인한다.
2. 차이가 없으면 다중화 장치의 충실도로 확인한다.
Ex) 다중화, 부하 분산이 잘 되어 있는지
최상위 | 메인프레임, 슈퍼컴퓨터 |
상위 | UNIX 계열 or 다중화 장치가 충실하거나 CPU 등의 성능이 아주 높다. |
표준 | x86서버, IA 서버 |
네트워크의 기본은 LAN
서버 네트워크 접속의 기본은 LAN이다. TCP/IP로 불리는 네트워크의 공통 언어(프로토콜)로 통신한다.
LAN 이외의 네트워크로는, 넓게 보면 통신 사업자가 제공하는 WAN이 있다. 좁게 보면 단말기끼리의 Bluetooth가 있다.
서버 설치 장소
이전에는 서버를 자사에 설치해 운용하는 방식이 주류였지만, 현재는 데이터 센터에 설치하는 경우도 늘고 있다. 또한, 자체 서버를 가지지 않고 데이터 센터의 서버를 빌리는 등의 선택지도 있다.
자사에 직접 설치하는 방식을 온프레미스(On-Premise)라고 한다.
온프레미스와 데이터 센터를 이용하는 것에는 각각의 장단점이 존재한다.
온프레미스 이용 |
자사에서 자유롭게 설정할 수 있지만, 유지 보수가 필요하고 데이터가 외부 네트워크로 나가지 않는다. |
장점: 자사에서 자유롭게 설정할 수 있다. 서버 도입에 관한 기술을 익힐 수 있다. | |
단점: 설치에 이르기까지 시간이 필요하다. 직접 유지 보수해야 한다. 비용이 낮아지지 않는다. | |
데이터 센터 이용 |
유지 보수는 서비스 사업자에게 맡기는 방식으로, 데이터가 외부 네트워크로 나간다. |
장점: 조건이 맞으면 바로 사용 가능, 유지 보수는 데이터 센터 사업자가 수행, 직접 설치보다 비용이 낮아지는 경우가 많다. | |
단점: 데이터가 외부 네트워크로 나간다. |
※필자의 경험으로 공공기관 같은 경우에는 보안 이슈로 인해 데이터가 외부로 나가는 것을 지향하지 않는다.
공공기관에서는 보통 자사에 데이터 센터를 구축하여 온프레미스 환경을 구축한다.
클라우드 서비스의 종류
IaaS: 사용자가 직접 미들웨어, 개발 환경(필요한 경우), 애플리케이션을 준비해서 IaaS 서버상에 구현한다. 클라우드 사업자에 따라서는 IaaS에 옵션을 추가해 PaaS에 가까워지는 경우도 있다.
PaaS: 사용자는 애플리케이션을 PaaS 서버상에 구현한다.
SaaS: 사용자는 사업자가 제공하는 애플리케이션의 이용이나 설정에 그친다.
그림 6. IaaS, PaaS, SaaS
클라우드의 장단점에 관해서 확인해보자
1. 유지 보수 불필요
- 특히 SaaS는 모두 포함하고 있어 바로 사용할 수 있어 간단하다. 서버나 네트워크 기기의 구입이나 유지 보수를 생각할 필요도 없다.
2. 유연한 대응
- 업무의 확대나 축소로 서버를 증설하거나 축소할 때 임기응변으로 대응할 수 있다.
3. 비교적 낮은 비용
- 직접 서버를 구입, 개발, 운용하는 것과 비교해서 비용을 낮출 수 있다.
사실 가장 주의해야 할 것은 '데이터를 어떻게 다루는가' 이다. 클라우드를 사용하면 그 안에서 흐르는 데이터는 서비스 사업자의 서버에 들어가는데 비밀 정보나 개인 정보 등 높은 보안 수준이 요구되는 데이터를 외부에 내보내도 되느냐 하는 문제가 종종 논의된다.
메인프레임, 슈퍼컴퓨터와의 차이
메인프레임은 범용기 또는 범용 컴퓨터라고 부른다. 특징으로는 OS와 하드웨어가 개별 사양이다. 모두 각사의 범용기 전용 OS를 사용한다. 유닛별로 케이스가 나누어져 있다. CPU, 메모리, 디스크 등으로 각각 케이스가 다르다. 신뢰성이 매우 높다. 일반 서버보다 신뢰성이 높다. 전체적으로 비용이 많이 드는 것도 사실이다.
기업이나 단체의 대규모 업무용으로 사용된다. 견고함이 특징이지만 비교적 비용은 비싸다. 본 서버와 대기 서버의 다중화된 구성을
취하는 일이 많다. 메인프레임에서 관리를 위한 조작은 '콘솔'이라는 전용 입력 장치를 사용한다. 채널이라는 전용 장치를 통해서 CPU와 스토리지 등의 주변장치와 접속한다.
그림 7. 메인프레임
슈퍼컴퓨터는 과학기술계산용으로 특화된 컴퓨터로, 그 뛰어난 성능에서 실로 컴퓨터의 정점이라고 말할 수 있습니다.
계산기능, 통신성능, 기억용량을 추구한다. 최근에는 저소비전력도 테마로 삼고 있다.
그림 8. 슈퍼컴퓨터
서버 전용 소프트웨어
미들웨어란? OS의 확장 기능이나 애플리케이션에 공통되는 기능을 제공하는 역활을 한다. 예시로는 DBMS, 웹 서비스 등이 대중적입니다.
미들웨어의 대표 선수로는 DBMS(DataBase Management System)은 데이터를 보관하는 그릇으로써 데이터를 주고받는 것부터 보관까지를 효율화합니다.
아래는 소프트웨어 계층이다.
애플리케이션(Ex. 업무 시스템, Excel) |
미들웨어(Ex. DBMS, 웹 서비스) |
OS(Ex. Windows, Linux) |
하드웨어(Ex. 서버, PC) |