본문으로 건너뛰기
목록으로

가상화(Virtualization)

✔️ 가상화 (Virtualization)​

가상화(Virtualization) 란 하나의 물리적인 컴퓨팅 리소스를 논리적으로 분리하여 여러 개의 가상 리소스를 생성해 사용하는 기술을 의미합니다. 서버, 스토리지, 네트워크 등 다양한 IT 리소스를 가상화할 수 있으며, 클라우드 컴퓨팅에 핵심이 되는 기술 중 하나로 활용됩니다.

가상화가 필요한 이유​

  • 서버를 가상화할 경우 물리 서버에 여러 가상 서버를 배치하여 하드웨어 리소스를 효율적으로 사용할 수 있습니다.
  • 물리적인 하드웨어 수를 줄일 수 있어 초기 구축 비용 및 유지 관리 비용을 절감할 수 있습니다.
  • 각 가상 리소스들은 격리되어 있어 하나의 가상 리소스에 장애가 발생해도 다른 가상 리소스에 영향을 미치지 않습니다.
  • 가상 리소스를 필요에 따라 빠르게 생성하거나 삭제할 수 있어 인프라 운영이 유연해집니다.
  • 가상 리소스는 소프트웨어 기반이기 때문에 장애 복구가 용이하고 가용성을 높일 수 있습니다.

✔️ 서버 가상화​

가장 일반적인 가상화 형태로, 물리적인 서버를 여러 개의 가상 머신(VM, Virtual Machine) 으로 나누어 사용하는 기술입니다. VM을 사용하면 하나의 물리 서버에서 여러 운영 체제를 실행할 수 있으며, 각각의 VM은 독립적으로 운영됩니다. 이 때 VM은 게스트, VM들이 실행되는 물리 서버는 호스트라고 합니다.

하이퍼바이저 (Hypervisor)​

물리 서버에 설치되는 가상화 소프트웨어로, 하드웨어로부터 VM에 필요한 CPU, 메모리 등의 리소스를 할당하고 VM들이 서로 격리되어 동작할 수 있도록 관리하는 역할을 합니다. 하이퍼바이저는 실행 위치에 따라 Type 1과 Type 2로 나뉩니다.

Type 1​

Native 또는 Bare Metal 하이퍼바이저라도 하며, 하드웨어에서 직접 실행되어 별도의 호스트 OS가 필요하지 않습니다. 일반적으로 엔터프라이즈 데이터 센터에서 사용하며 KVM과 Microsoft의 Hyper-V 등이 대표적인 예시입니다.

Type 2​

Hosted 하이퍼바이저라고도 하며, 호스트 OS 위에서 하나의 애플리케이션으로 실행됩니다. 개인용 PC나 개발 환경에서 주로 사용하며 Oracle의 VirtualBox와 VMware의 Workstation 등이 대표적인 예시입니다.

✔️ VM(Virtual Machine)과 컨테이너(Container)​

다양한 OS가 필요한 환경이거나 높은 격리 수준이 중요할 경우 VM(Virtual Machine)을 사용하고, 빠른 배포와 확장이 필요한 클라우드 네이티브 환경이거나 마이크로서비스 아키텍처를 활용할 경우 컨테이너(Container)를 사용할 수 있습니다. 하지만 VM과 컨테이너는 서로 대체하는 기술이 아니기 때문에 VM 위에서 컨테이너를 실행하는 방식과 같이 목적에 따라 함께 활용할 수도 있습니다.

VM (Virtual Machine)​

하이퍼바이저를 통해 호스트 시스템에서 다수의 게스트 OS를 동시에 실행하는 기술입니다. VM은 다양한 OS를 실행할 수 있고 높은 수준의 격리를 제공하지만, 게스트 OS를 포함하기 때문에 무겁고 성능이 느리다는 단점이 있습니다.

컨테이너 (Container)​

호스트 OS의 커널을 공유하며, 컨테이너 이미지를 통해 애플리케이션을 실행하는 기술입니다. 컨테이너는 VM보다 가볍고 빠른 성능, 높은 확장성을 보이지만, 커널을 공유하기 때문에 보안에 취약할 수 있고 호스트 OS와 동일한 환경으로 구성해야 한다는 단점이 있습니다.