가상화(Virtualization)란? 하이퍼바이저부터 컨테이너까지 완전 정리

3 조회

가상화는 하나의 물리적 하드웨어 자원을 논리적으로 분할해 여러 독립 환경을 만드는 기술이다.

이 글은 클라우드 컴퓨팅과 서버 인프라에 관심 있는 IT 입문자와 DevOps를 공부하는 개발자를 위해 작성되었다. 가상화가 무엇이고 어떻게 동작하며, VM과 컨테이너는 어떻게 다른지 명확하게 정리한다.

가상화 개념도

가상화가 왜 필요한가?

클라우드 이전, 기업들이 서버를 운영하던 방식을 생각해보자:

  • 웹 서버용 물리 서버 1대
  • 데이터베이스용 물리 서버 1대
  • 이메일 서버용 물리 서버 1대

각 서버의 실제 CPU 사용률은 평균 5~15%에 불과했다. 나머지 85~95% 자원은 낭비였다. 가상화는 이 문제를 해결하기 위해 탄생했다.

가상화(Virtualization)란?

가상화는 하나의 물리적 하드웨어를 소프트웨어적으로 분리하여, 마치 여러 대의 독립된 컴퓨터처럼 사용하는 기술이다.

가상화의 핵심 이점:

  • 자원 활용률 향상: 서버 1대에 10개의 가상 서버 운영 가능
  • 비용 절감: 물리 서버 수 감소로 하드웨어·전력·공간 비용 절감
  • 격리: 각 가상 환경이 독립적으로 동작
  • 유연성: 필요에 따라 빠르게 가상 서버 생성·삭제
  • 재해 복구: 가상 머신 이미지를 백업·복원 가능

하이퍼바이저(Hypervisor)란?

하이퍼바이저는 물리 하드웨어 위에서 여러 가상 머신(VM)을 만들고 관리하는 소프트웨어다. VMM(Virtual Machine Monitor)이라고도 한다.

타입 1 하이퍼바이저 (베어메탈)

하드웨어 위에 직접 설치된다. 성능이 뛰어나고 기업 환경에서 사용한다.

  • VMware ESXi
  • Microsoft Hyper-V
  • KVM (Linux 기반)

타입 2 하이퍼바이저 (호스트형)

일반 운영체제 위에 설치된다. 개발자 PC에서 테스트 환경 구축에 적합하다.

  • VMware Workstation
  • Oracle VirtualBox
  • Parallels Desktop (Mac)
구분타입 1타입 2
설치 위치하드웨어 직접호스트 OS 위
성능높음낮음 (오버헤드)
사용 환경데이터센터, 서버개발자 PC
대표 제품VMware ESXi, KVMVirtualBox, VMware Workstation

VM(가상 머신) vs 컨테이너

가상화의 두 가지 주요 방식을 비교한다:

VM(Virtual Machine)

  • 하이퍼바이저가 하드웨어를 에뮬레이션
  • 각 VM은 완전한 게스트 OS 포함
  • 강한 격리, 무거운 자원 사용
  • 기동 시간: 수십 초~수 분

컨테이너(Container)

  • 호스트 OS 커널을 공유
  • 운영체제 없이 앱과 의존성만 패키징
  • 가벼운 자원 사용, 빠른 기동
  • Docker가 대표적
구분VM컨테이너
격리 수준완전 격리프로세스 격리
기동 속도느림빠름 (초 단위)
자원 사용많음적음
이미지 크기수 GB수십~수백 MB
OS 포함완전한 OS 포함커널 공유

VM 컨테이너 비교

가상화의 종류

  1. 서버 가상화: 가장 보편적인 형태. 하나의 물리 서버를 여러 VM으로 분할.

  2. 네트워크 가상화(SDN): 물리 네트워크를 소프트웨어로 정의하고 관리. AWS VPC가 대표적.

  3. 스토리지 가상화: 여러 물리 스토리지를 하나의 가상 스토리지로 통합.

  4. 데스크톱 가상화(VDI): 원격으로 가상 데스크톱에 접속. 재택근무 환경에서 활용.

가상화와 클라우드의 관계

클라우드 컴퓨팅은 가상화 기술 위에 구축된다. AWS EC2, Azure VM, GCP Compute Engine 모두 가상화로 만들어진 가상 서버를 인터넷을 통해 임대하는 서비스다.

Gartner에 따르면 2025년 기준 전 세계 서버 가상화율은 90% 이상에 달한다. 사실상 현대 IT 인프라의 기반 기술이다.

자주 묻는 질문 (FAQ)

Q1. 개인 PC에서 가상화를 사용할 수 있나요? A. 가능하다. VirtualBox(무료)나 VMware Workstation을 설치하면 Windows에서 Ubuntu Linux를, Mac에서 Windows를 가상으로 실행할 수 있다. 개발자들이 여러 OS 환경을 테스트할 때 많이 활용한다.

Q2. M1/M2 Mac에서 x86 VM 실행이 가능한가요? A. ARM 기반 M1/M2 Mac에서는 x86 VM을 직접 실행하기 어렵다. Parallels Desktop이나 VMware Fusion은 ARM 기반 OS는 실행 가능하다. x86 환경이 필요하면 Docker + Rosetta 2 에뮬레이션을 활용하거나 클라우드 VM을 이용한다.

Q3. 가상화와 에뮬레이션의 차이는? A. 가상화는 호스트와 같은 아키텍처의 하드웨어를 논리적으로 분리하는 것이고, 에뮬레이션은 완전히 다른 아키텍처(예: x86에서 ARM 에뮬레이션)를 소프트웨어로 모방하는 것이다. 에뮬레이션은 성능이 훨씬 낮다.

Q4. KVM이란 무엇인가요? A. KVM(Kernel-based Virtual Machine)은 Linux 커널에 내장된 오픈소스 타입 1 하이퍼바이저다. AWS, Google Cloud 등 주요 클라우드 사업자가 KVM 기반 인프라를 사용한다. Red Hat의 OpenShift도 KVM 기반이다.

Q5. 가상화와 컨테이너 중 무엇을 배워야 하나요? A. 현재 트렌드는 컨테이너(Docker/Kubernetes)가 주도하고 있다. 신규 개발 프로젝트는 대부분 컨테이너 기반이므로 Docker부터 배우는 것이 취업에 유리하다. VM은 클라우드 인프라 이해를 위해 기본 개념을 알아두면 좋다.

공유