본문 바로가기
책/인프라엔지니어

[IET] Chapter 2 - 3 서버에서 사용되는 개념들

by 파이어볼러 2015. 3. 7.

가상화

 

한 대의 물리 서버에는 보통 하나의 OS만 가동할 수 있다 반면 가상화 기술을 사용하면 한 대의 물리 서버에서도 여러 개의 게스트 운영체제를 가동할 수 있다 이것을 서버 가상화라고 부른다

 

가상화 환경에서는 물리 서버가 제공하는 CPU, 메모리, 네트워크, 디스크 등의 하드웨어 자원을 각 게스트 운영체제에 자유롭게 할당한다 여러 운영체제마다 물리서버를 분비하는 것과 비교했을 때 한 물리 서버의 하드웨어 자원을 최대한 활용할 수 있는 가상화를 잘 이용하면 비용을 많이 줄일 수 있다

 

물리 서버와 가상 서버의 특징

 

물리 서버와 가상 서버의 특징은 다음과 같다

 

물리 서버

 

CPU 사용률과 디스크 I/O 부하, 디스크 사용 용량이 많은 용도에 적합하다 주된 용도는 데이터베이스 서버, 애플리케이션 서버 등이다

 

가상 서버

 

CPU 사용률과 디스크 I/O 부하 , 디스크 사용 용량이 적은 용도에 적합하다 가상 서버의 주된 용도는 웹 서버 개발 서버 메모리 DB등이다

 

물리 서버를 가상화할 때의 장점과 단점

 

장점

 

- 비용을 줄일 수 있다

- 게스트 운영체제의 하드웨어 자원을 쉽게 늘리거나 줄일 수 있다.

- 물리 서버는 하드웨어가 노후화되므로 일정 기간이 지나면 하드웨어를 교체해야 한다 하지만 게스트 운영체제는 다른 새로운 물리 서버에 가상화 환경을 준비한 다음 간단히 옮길 수 있다.

 

단점

 

- 다른 게스트 운영체제가 하드웨어 자원을 많이 사용하면 다른 게스트 운영체제의 동작이 불안정해진다

- 한 번 만들어진 게스트 운영체제는 이후에 사용하지 않아도 삭제되지 않고 그대로 남기기 십상이다(이는 가상화의 단점이라고 하기보다는 관리상의 문제다 물리 서버에서도 철거되지 않고 그대로 남는 예가 있다 하지만 가상 서버는 눈에 보이지 않는 만큼 관리가 잘 되지 않는 경향이 있다 결좌적으로 물리 서버보다 사용하지 않는 서버가 없어지지 않고 남기 쉽다.

 

가상화 모델

 

가상화를 구현하려면 하드웨어 자원 및 게스트 운영체제를 관리하는 프로그램이 필요하다 윈도우와 리눅스 같은 일반 운영체제에 게스트 운영체제를 관리하는 프로그램을 설치해서 가상화 하는 방식을 호스트 운영체제 타입이라고 부른다 호스트 운영체제상에서 다른 애플리케이션처럼 가상화 환경을 다룰 수 있어 손쉽게 구현할 수 있지만 호스트 운영체제를 중간에 두는 것인만큼 동작에 오버헤드가 생겨서 동작 속도가 떨어질 때가 있다

 

호스트 운영체제 대신 가상화 전용 운영체제를 사용하는 방식을 hypervisor 타입 이라고 부른다 호스트 운영체제 타입처럼 중간에 개입하는 운영체제가 없으므로 빠른 동작 속도를 기대할 수 있다

 

개인이 사용하는 CP에서 가상화를 구현할 때는 비교적 호스트 운영체제 타입을 채용하는 경우가 많지만 서버 용도로 사용할 때는 hypervisor 타입을 채용하는 일이 많다.

 

가상화 모델 비교

 

Host OS

 


 

 

Hypervisor

 

 

가상화 환경의 종류​ 

 

서버 가상화를 실현하는 다양한 방식이 있지만 현재 주류인 상용 소프트웨어 두 가지와 오픈소스 두가지를 본다

 

상용 소프트웨어

 

- VM ware vSphere(VMware)

- Hyper-V(MS)

 

오픈 소스

 

- Xen

- KVM

 

VM ware vSphere

 

VMware사는 가상화 업계의 리더적 입장이라고 말할 수 있다 vSphere 제품의 안정성과 편리성은 최고 수준이다

 

VMware사의 제품은 다양한 종류가 있지만 일반적으로 하이퍼바이저인 VMware vSphere와 종합 관리 도구인 VMware vCenter Server를 구매한다 VMware vSphere에서는 물리 서버에 설치된 CPU의 개수만큼 라이센스가 필요하다 초기 도입 시에는 VMware vSphere와 VMware vCenter Server의 라이센스가 포함된 Essential Kit이나 Acceleration Kit를 구매할 수 있다. 

 

VNware와 Hyper-v

 

기본적으로 윈도우와 리눅스가 섞여 있는 환경에서는 VMware를 선택하고, 윈도우가 중심인 환경에서는 Hyper-V를 선택하는 것이 비용면에서 이득이다

 

시스템의 안정성이라는 관점에서는 두 제품 모두 엔터프라이즈 용도를 목적으로 하는 제품이기에 비교적 안정되어 있는 것이 주관적인 평가다 기능면에서도 둘 다 경쟁 관계인 점도 있어 중요한 기능은 양 쪽 모두 지원하는 경향이 있으므로 기능의 차이를 보고 결정하기도 어렵다 따라서 두 제품 중 하나를 선택할 때는 일상적인 운영에서 발생하는 다양한 작업을 파악해서 실제로 조작해보고 쓰기 쉬운 쪽을 고르는 방법이 좋다

 

Xen KVM

 

리눅스가 중심인 환경이고 또한 초기 도입 비용을 들이고 싶지 않을 때는 Xen이나 KVM을 선택하는 것이 좋은 생각이다 특히 레드햇 엔터프라이즈 리눅스(RHEL)를 사용할 때는 레드햇에서 전면적으로 지원하는 KVM을 선택하는 것이 최선이다

 

두 제품 모두 세계적으로 매우 많은 운영 실적이 있으므로, 시스템의 안정성이나 기능면에서 둘 다 잘 다듬어졌다고 할 수 있다 따라서 두 제품중 하나를 선택할 때는 실제로 사용해보고 사용하기에 편하게 느껴지는 것을 선택하는 방법을 권한다.

 

클라우드 : Iaas

 

클라우드 컴퓨팅은 일반적으로 인터넷을 거쳐서 제공되는 컴퓨터 자원을 이용하는 것이라고 정의할 수 있다 클라우드는 SaaS, PaaS, IaaS 세 가지로 분류된다 

 

Saas

 

Software as a Service는 애플리케이션을 서비스로서 제공한다

 

PaaS

 

Platform as a Services는 애플리케이션 실행 환경을 서비스로서 제공한다

 

IaaS

 

Infrastructure as a Service는 시스템 인프라를 서비스로서 제공한다

 

IaaS의 특징

 

- 사내에 물리 서버를 두지 않아도 사용할 수 있으므로, 물리 서버를 관리하는 엔지니어가 필요 없다

- 이용 신청을 하면 단기간에 운영체제가 설치된 상태로 바로 사용할 수 있다

- 사내에 물리 서버를 두지 않으므로 물리적 제약을 의식하지 않고 이용하고 싶은 만큼 서버를 증강할 수 있다

- 사용한 만큼 비용이 발생하는 종량과금제다

- 사내에 서버 자산을 보유하지 않으므로, 서버를 살 때 발생하는 감가상각 처리가 필요 없고 클라우드 이용료는 그대로 비용 처리된다

 

 

 

클라우드 환경에서의 인프라 이용

 

IaaS에서는 클라우드 업체로부터 서버의 인스턴스나 물리 서버의 사용권을 빌려서 원격에서 각종 설정을 해서 서버의 기능을 사용할 수 있다 일반적으로 직접 서버를 소유해서 관리할 때는 우선 네트워크 환경을 구축하고 물리 서버를 구매해서 장착한 후, 운영체제를 설치하고 설정하는 절차를 밟게 된다 하지만 IaaS를 이용하면 이런 일연의 흐름을 생략하고 클라우드 업체에서 이미 운영체제가 설치된 상태로 계정을 제공받아 곧바로 서버를 사용할 수 있게 된다

 

 

 

클라우드와 서버 운영

 

세상에 클라우드가 확산됨에 따라서 직접 서버를 운영하는 회사가 사라지고 언젠가는 대부분이 클라우드화 되지 않을까? 라는 생각을 하게 되지만 현재 상황은 그렇지가 않는데 그 이유가 여기 있다

 

- 클라우드 환경을 가상화 기술로 제공하는 클라우드에서는 보통 사용되지 않는 하드웨어 자원이 대량으로 요구되는 스케일 업에 약하다는 특성이 있다 단 이런 약점을 해소하기 위해 데이터베이스 용도의 서버만은 가상 서버가 아니라 물리 서버를 제공하는 클라우드 업체도 있다

 

- 클라우드에서는 물리 서버 관리를 클라우드 업체가 책임지므로 물리 서버에 장애가 발생했을 때 클라우드 업체로부터 복구 완료 통지를 기다릴 수 밖에 없다 단 물리 서버에 장애가 일어났을 때 곧바로 다른 물리 서버에서 인스턴스를 시작하는 대처 방법도 있다

 

- 클라우드 업체의 착오로 중요한 데이터가 소실될 위험이 있다 실제로 그런 사고가 발생하므로 클라우드를 이용하는 쪽에서도 백업 등의 대책이 필요해진다

 

클라우드에 맞지 않은 용도

 

- 기밀 정보 저장

 

다른 회사 서버에 기밀 정보가 저장된다는 점, 데이터를 전송할 때 인터넷을 거쳐야 한다는 점 등 직접 관리할 수 없는 곳에서 기밀 정보 유출이 발생할 위험이 있다 물론 데이터를 암호화해서 보관하고 암호화해서 통신하는 회피 방법이 있지만 정보 유출 위험을 모두 직접 관리하고 싶은 기업에서는 보안 정책상 클라우드를 이용하기가 어렵다

 

- 대용량 파일 전송

 

인터넷을 통해 데이터가 흘러가므로 사내에 서버를 설치할 때보다 파일 전송이 느려진다

 

- 대규모 시스템

 

어느 정도 시스템 규모가 커지만 직접 장비를 보유하는 편이 비용면에서 유리하다

 

###온라인 게임에서의 클라우드 이용###

 

온라인 게임에서는 게임 서버, 데이터베이스 서버와 메모리 DB로 구성된 시스템을 자주 볼 수 있다. 온라인 게임의 특성은 공개하기 전까진 어느정도 액세스가 집중될지 알 수 없다는 점이다. 자칫하면 엄청난 사용자 수가 몰릴지도 모르고 , 반대로 전혀 사용자가 몰리지 않을 가능성도 있다

 

이런 때 클라우드를 이용하면 공개 전에 인스턴스를 대량으로 준비해 두고 공개 후에 액세스 수를 보고 인스턴스 수를 늘리거나 줄이면서 적정 규모로 조정하는 방식으로 운영할 수 있다 대부분의 클라우드 업체는 계약 후에 일정 기간을 무료로 사용할 수 있게 되어 있으므로 무료 기간에 공개해서 사용자의 동향을 보고 적장한 인스턴스 수로 조정하는 것은 매우 효율적인 방식이다.