다른 개발자로부터 이해 받길 원하기 보다는 이해 하기를 우선으로 하라!
: 서버란 사용자의 요청을 받고 응답을 반환하는 하드웨어를 말한다.
: 형태의 차이, 등급의 차이, 물리서버가 아닌 형태 등 다양한 선택지가 있다.
5. 서버의 종류
랙 마운트형과 타워형 서버의 차이
랙 마운트형 서버
: 데이터 센터나 서버 룸에 설치된 랙 안에 들어간다.
: 19인치 랙에 수용하는 것을 전제로 함. (1U는 1.75인치)
타워형 서버
: 사내 서버룸에 설치되거나 사무실 또는 점포등에도 설치
: 소음과 설치 장소, 환경을 고려해야 한다.
엔트리, 미들레인지, 하이엔드 서버
: 서버의 용도에 따라 등급이 달라진다.
엔트리 서버
: 웹 서버나 애프릴케이션 서버에 이용
미들레인지 서버
: DB서버나 기간계 서버에 이용(미션 크리티컬 시스템, 엔터프라이즈 시스템, 백본 시스템 등...) - 기업 경영의 핵심이 되는 재무, 업무, 생상관리 시스템
하이엔드 서버
: DB나 기간계 서버에서 시용
IA서버
: 인텔이나 AMD등 인텔 호환 CPU를 탑재하고 일반 컴퓨터와 같은 아키텍쳐를 기반으로 만들어진 서버
엔터프라이즈 서버
: 기간계에 사용되는 서버
TIP - 서버와 일반 컴퓨터의 차이
: 서버는 일반 컴퓨터와 마찬가지로 메인보드, CPU, 메모리, 디스크 등의 부품으로 구성된다.
: 부품 자체의 품질이 더 높아서 고장이 잘 나지 안흔다.
: 업체의 AS가 충실하다.
: 훨씬 더 많은 추가 메모리와 하드디스크를 장착할 수 있다.
: 일반 컴퓨터는 그래픽, 음향등 멀티 미디어 기능에 충실하다.
6. 서버 선정
서버의 조건
: 필요한 하드웨어 자원의 사용량을 정하고 나서 CPU, 메모리, 디스크, NIC 포트 수 등을 결정한다.
서버 사양 결정 방법
: 실제 환경을 시험적으로 구축해 측정 결과를 보고 판단한다.
: 임시로 결정한 서버 사양의 기기를 현장에 투입해 실제 하드웨어 자원의 이용 상황을 측정한 다음, 서버와 서버의 부품을 늘리거나 줄인다.
: 소거법으로 사양을 좁혀간다.
스케일 아웃과 스케일 업
: 스케일 아웃은 서버의 수를 늘려서 수용량을 늘리는 방법
: 스케일 업은 성능이 부족해지면 서버의 하드웨어적인 성능을 높이는 방법
7. CPU
성능과 발열, 소비 전력
: 예전에는 주파수를 높여서 성능을 증가시켰지만, 최근에는 주파수를 높임으로써 발생하는 소비 전력의 비용이 더 크게 되었다.
: 따라서 최근에는 멀티코어나, 하나의 CPU에서 여러 연산을 동시에 처리함으로써 연산 능력을 향상시키려고 한다.
CPU용어
: 소켓수, 코어수, 스레드 수, 동작 주파수, 캐시, 하이퍼스레딩, 터보부스트
CPU 선정의 포인트
: 성능, 가격, 사용할 소프트웨어의 라이선스 체계, 소비전력
8. 메모리
: 단기 기억 영역
: 용량도 중요하지만, 서버용 메모리에서는 내장애성, 성능, 저전력 등이 중시된다.
성능
: 메모리 자체의 속도와, 데이터 전송폭을 고려한다.
메모리 용어
: 슬롯, ECC메모리, 채널, 랭크...
9.디스크의 종류
: 가정용에서는 일반적으로 SATA 하드 디스크와 SSD가 사용, 업무용에서는 더 다양한 디스크가 존재한다.
SATA 하드 디스크
: 저렴하다, 하루 8시간 가동용도로 사용
SAS 하드 디스크
: 고속으로 동작하고 신뢰성이 높다. 24시간 365일 가동
FC 하드 디스크
: 초고속으로 동작하고 신뢰성이 높다, SAN스토리지 등 엔터프라이즈 용도로 사용
그 밖의 디스크
: 니어라인 하드 디스크, ssd, 엔터프라이즈 플래시 메모리 스토리지
10. RAID
: 성능과 내장애성을 높이기 위한 목적으로 이용
: 병렬로 연결하거나 패리티 체크, 로그 저장 용도로 구현
11. 가상화
: 예전에는 한대의 물리 서버에는 보통 하나의 운영체제만 가동할 수 있었다.
: 반면 가상화 기술을 사용하면, 한 대의 물리 서버에서도 여러 개의 게스트 운영체제를 가동할 수 있다.
: CPU, 메모리, 네트워크, 디스크 등의 하드웨어 자원을 각 게스트 운영체제에 자유롭게 할당한다.
물리서버와 가상서버의 특징
물리서버
: CPU 사용률과 디스크 I/O부하, 디스크 사용 용량이 많은 용도에 적합
: DB서버, 애플리케이션 서버 등이 적합
가상 서버
: CPU사용률과 디스크 I/O, 디스크 사용 용량이 적은 용도에 적합
: 웹서버, 개발 서버, 메모리 DB 등이 적합
물리서버를 가상화할 때의 장점과 단점
장점
: 비용을 줄일 수 있다.
: 게스트 운영체제의 하드웨어 자원을 유동적으로 운영할 수 있다
: 하드웨어에 종속적이지 않다.
단점
: 다른 운영체제가 하드웨어 자원을 많이 사용하면, 다른 게스트의 운영체제의 동작이 불안정하다.
: 관리가 생각보다 쉽지 않다.( 까먹고 자원을 계속 할당해놓을 수도 있음 )
가상화 모델
: 하드웨어 자원 및 게스트 운영체제를 관리하는 프로그램이 필요하다.
: OS위에 게스트 운영체제를 관리하는 프로그램을 두고 가상화 환경을 다룸.
: 중간에 OS를 두기 때문에 오버헤드가 생겨 동작 속도가 느려질 수 있음.
: 호스트 운영체제 대신 하이퍼 바이저를 두고 운영
: 빠른 동작속도를 기대할 수 있음.
: 개인 PC에서는 호스트 운영체제 타입을 채용하는 경우가 많지만, 서버에서는 하이퍼바이저 타입을 채용하는 일이 많음.
가상화 환경의 종류
VMware vSphere
: vmware 사가 제공
Hyper-V
: MS가 제공
Xen
: 캠프리지 대학교의 연구 프로젝트로 시작되어 리눅스 재단에서 공동 프로젝트로 진행하고 있다.
: IaaS형 클라우드로써 AWS와 구글이 지원한다.
KVM
: 레드햇 엔터프라이즈 리눅스에서는 KVM만 지원하고 있음.
가상화 환경을 선택하는 방법
: 윈도우와 리눅스가 섞여 있는 환경에서는 VMware를 사용
: 윈도우가 중심인 환경에서는 Hyper-V
: 리눅스가 중심인 환경이고 초기 도입 비용을 들이고 싶지 않을때는 Xen이나 KVM
: 레드햇은 KVM
12. 클라우드 : IaaS
: 인터넷을 거쳐서 제공되는 컴퓨터 자원을 이용하는 것
: SaaS, PaaS, IaaS로 분류된다.
SaaS : 애플리케이션을 서비스로써 제공한다.
PaaS : 애플리케이션 실행 환경을 서비스로써 제공한다.
IaaS : 시스템 인프라를 서비스로써 제공한다.
IaaS특징
: 사내에 물리서버를 두지 않으므로, 물리 서버를 관리하는 엔지니어가 필요없다.
: 이용 신청을 하면 단기간에 운영체제가 설치된 상태로 바로 사용할 수 있다.
: 이용하고 싶은 만큼 서버를 증강할 수 있다.
: 사용한 만큼 비용이 발생하는 종량과금제이다.
: 감가상각을 할 필요가 없고, 이용료를 그대로 비용처리하면 된다.
클라우드 환경에서의 인프라 이용
: 네트워크 환경 구축 - 물리서버 구매 및 장착 - 운영체제를 설치하고 설정의 과정을 생략가능
클라우드와 서버 운영
클라우드의 약점
: 스케일 업에 약하다.
: 이런 이유로 DB만은 물리서버로 제공하는 클라우드 업체도 있다.
: 물리 서버 장애에 대해서 무력하다.
: 바로 다른 물리 서버에서 인스턴스를 시작하는 대처 방법도 있다.
: 업체의 착오로 데이터 소실의 위험이 존재한다.
: 항상 백업을 해야 한다.
클라우드에 맞지 않는 용도
기밀 정보 저장
: 정보가 인터넷을 거쳐 간다는 점.
: 직접 관리할 수 없는 곳에서 기밀 정보 유출이 발생할 위험이 존재한다.
대용량 파일 전송
: 사내에 서버를 설치할 떄 본다 파일 전송이 느려진다.
대규모 시스템
: 시스템 규모가 커지면, 직접 장비를 보유하는 편이 비용면에서 유리하다.