서버 가상화

황희윤·2023년 12월 5일

가상화에는 크게 서버 가상화와 네트워크 가상화 두 가지가 있다.

서버 가상화

물리 서버 하나에 가상 서버를 여러 대 구축하는 기술

호스트 OS형

  • 호스트 OS : 하드웨어에 직접 설치하는 OS

  • 게스트 OS : 가상 하드웨어에 설치하는 OS

  • 물리 서버에 설치된 호스트 OS에서 가상 서버가 동작

  • ex) 맥OS에서 윈도우가 동작 혹은 윈도우에서 리눅스를 동작

  • 가상 서버안에 애플리케이션 여러 개를 동작시킬 수 있다.

  • ex) 상업용 호스트 OS형 가상화 소프트웨어: 오라클 - 버추얼박스, VMware 등


하이퍼바이저형 (Hypervisor)

하이퍼바이저 : 하드웨어물리적인 리소스들을 가상머신(VM)들에게 제공하고 VM과 하드웨어간의 I/O 명령을 처리

  • 호스트 OS 없이 동작하는 가상화 소프트웨어(하이퍼바이저)가 대행

  • 호스트 OS 불필요

  • 호스트 OS 대신 하이퍼바이저를 물리 서버에 설치

  • 비교적 규모가 큰 가상 환경을 구축하는데 사용

  • 호스트 OS 없이 게스트 OS를 직접 제어하기 때문에 컴퓨터의 리소스를 활용하기 쉽다.

  • 호스트 OS가 없어서 유지 보수가 더 쉽다.


컨테이너형

  • 컨테이너라는 애플리케이션과 실제 환경을 같이 분리하는 원리를 사용해 OS 단위가 아닌 애플리케이션 단위로 가상화한다.

  • 컨테이너형 가상화는 게스트 OS를 사용하지 않고 호스트 OS에 컨테이너형 가상화 소프트웨어를 설치한다.

  • 사용 리소스가 낮고 유연성이 높아 애플리케이션 운영에 최적화되어 있다.

  • 다른 서버 가상화 기술로 가상 서버를 늘리는 경우에는 게스트 OS 및 응용 프로그램을 설치해야 하지만, 컨테이너형 가상화에서는 컨테이너를 만들고 거기에 애플리케이션을 도입하기만 하면 된다.

  • 컨테이너에는 여러 애플리케이션이 담길 수는 있지만, 원칙적으로는 하나의 컨테이너에 하나의 애플리케이션(하나의 프로세스)이 이상적이다.

  • 컨테이너는 만들기 쉽기 때문에 복잡하고 큰 컨테이너를 만드는 것보다 작은 컨테이너 여러 개를 만드는게 더 효율적이다.

  • ex) 하나의 컨테이너 안에 Apache(웹 서버), PHP(AP 서버), MySQL(DB 서버) 있는 것보다 여러 개의 컨테이너로 분산시키는게 효과적이다.

  • 대표적인 컨테이너형 가상화 = 도커(Docker)


클라우드의 서버 가상화

AWS EC2(Elastic Compute Cloud)

  • AWS하이퍼바이저 가상화로 S3(Simple Storage Service)와 함께 사용할 수 있다.

  • 사용 목적에 따라 최적의 가상 시스템 사양(인스턴스 유형)을 선택할 수 있다.

  • 가상 머신으로 사용할 수 있는 OS 유형은 아마존 리눅스(아마존이 자체 개발한 리눅스 OS), CentOS, 데비안, 윈도 서버 등이 있다.

GCP(Google Compute Engine)

  • 구글 클라우드 플랫폼(GCP)의 서버 가상화 서비스
  • 가상 환경의 인스턴스마다 가상 CPU의 수나 가상 메모리의 크기 지정 가능

Azure의 가상 머신

  • 사용 목적에 따라 최적의 가상 머신(시리즈라고 한다)을 선택하면 비용을 절감할 수 있다.

profile
HeeYun's programming study

0개의 댓글