DevOps/Docker

[Docker] 가상화의 등장 배경과 VM(Virtual Machine)

유자맛바나나 2021. 12. 28. 00:45

 

 가상화의 등장 배경

새로운 운영체제의 테스트 환경을 구축하기 위해, 하나의 서버에서 여러 개의 애플리케이션 서버를 구동하는 등 서버 리소스를 탄력적으로 사용하고자 하는 요구사항이 생겼다. 하지만 하나의 서버에 설치된 각 애플리케이션 서버마다 요구하는 환경(Java, DB 버전 등)이 달라 충돌이 일어나기 쉬웠다. 이러한 문제를 해결하고자 서버 PC의 성능을 나눠서 사용하는 방법인 가상화에 대한 연구가 시작되었다.

 

 VM: Virtual Machine

가상화의 한 가지 방법으로 하이퍼바이저(Hypervisor)를 이용해 하드웨어 자원을 가상화하는 방식인 VM(Virtual Machine)이 사용되었다.

 

# 하이퍼바이저(Hypervisor)

  • 하이퍼바이저는 Host OS에서 하드웨어를 여러 개의 Virtual Machine(Guest OS)로 가상화하여 구동할 수 있게 해주는 소프트웨어다.
  • 가상 하드웨어를 제어하고, PC의 물리적 리소스에 액세스 하는 작업을 담당한다. VM 아키텍처를 보면 Host OS 위에서 실행되는 하이퍼바이저가 있고 하이퍼바이저가 각 VM을 관리하는 구성을 볼 수 있다.
  • 하이퍼바이저는 하드웨어를 직접 제어하는 네이티브 형과 VM Guest OS에 에뮬레이트 하는 방식인 호스트형 두 가지로 나눠지며 호스트형으로는 잘 알려진 VMware, Virtual Box가 있다.

 

VM 아키텍처

 

# 장점

  • VM을 사용함으로써 Windows 운영체제에서 리눅스 운영체제를 설치할 수 있다. 이것은 IT 사용자들에게 대단한 유연성을 제공한다.
  • VM을 이용해 새롭게 복제된 시스템은 일반적으로 해당 시스템을 구축하기 위한 새로운 인프라를 구매하지 않아도 되기 때문에 비용이 저렴하다.

 

# 단점

  • VM에서 하이퍼바이저를 통해 CPU, RAM 등 서버 리소스에 액세스해야하므로 당연히 속도가 느려진다. 
  • VM은 하드웨어의 리소스를 물리적으로 분할해 사용하므로 성능에 한계가 생긴다.

 

❑ 또 다른 가상화 기술: Container

VM과 함께 가장 많이 사용되는 가상화 기술 리눅스 컨테이너(Container) 기술이 있다. 그리고 컨테이너 기술 중 가장 잘 알려진 것이 도커(Docker)다. 과거 가상화 기술은 VM이 대표적이었지만, 최근에는 MSA 아키텍처와 잘 맞는 컨테이너 기술이 대세 기술로 자리잡고 있다.

 

도커는 아래 포스팅에서 더 알아보자

2021.12.15 - [Back-End/DevOps] - [Docker] 기초(1) 도커와 컨테이너의 개념, 사용 이유