본문 바로가기
Programming/DevOps, Tools

[클라우드] 가상화 - 클라우드 컴퓨팅의 핵심 기술

by kghworks 2023. 10. 25.

목차

  • 가상화란
  • 가상화 구성요소
  • 가상화 방식

가상화 소프트웨어 - Oracle Virtual Box
가상화 구조


가상화란?

 컴퓨터 분야에서 가상이란 말이 붙으면 logical의 동의어로 물리적으로 실체가 있지 않은 무언가를 뜻한다. 가상화는 컴퓨터를 하나의 인스턴스(머신)의 개념으로 간주하여 물리적인 컴퓨터를 인스턴스(머신) 수준으로 가상화한 것을 말한다. 즉 IT 리소스를 논리적으로 분할하는 기술이다.

 

 왜 가상화를 하나? 컴퓨터를 인스턴스로 가상화하여 하나의 컴퓨터 (Host)에서 1개 이상의 가상 컴퓨터를 논리적으로 운용할 수 있기 때문이다. 

 

 가상화를 통해 하나의 물리적 하드웨어에 여러 개의 컴퓨터 (인스턴스, 머신)를 운용할 수 있다.

 

 가상화는 굳이 클라우드 컴퓨팅 기술을 사용하지 않더라도 가능하다. 가상화를 할 수 있는 프로그램을 Host 컴퓨터에 설치한다면 해당 컴퓨터 위에 여러 개의 가상 인스턴스를 실행할 수 있는 환경이 마련된다.

 

 나아가 가상화 기술은 클라우드 컴퓨팅의 핵심 기술이다. 클라우드 컴퓨팅은 소비자의 요청에 맞춰 탄력적(elastic)으로 IT 리소스 (CPU, 메모리, 서버, 네트워크)를 운용할 수 있어야하기 때문이다. 


가상화 구성요소

가상화 구조

가상화 구성요소는 크게 가상화 소프트웨어가상 머신으로 나뉜다.

 

가상화 소프트웨어

 가상화 소프트웨어는 하드웨어 리소스 (CPU, GPU, 메모리 등)와 소프트웨어 리소스 (OS, Runtime)를 가상화한다.  따라서 가상화 소프트웨어는 클라우드 컴퓨팅의 핵심 기술이다. 사용자의 요청에 탄력적으로 하드웨어, 소프트웨어 리소스를 제공할 수 있어야 하기 때문이다. 소프트웨어는 Host 컴퓨터의 제어를 위한 복잡한 기술들을 캡슐화하여 인터페이스형태로 가상 머신에 제공한다. 

 

가상 머신 (Virtual Machine)

 가상화 소프트웨어를 통해 논리적으로 분리된 기초 머신 단위이다. 위 그림에서 가상머신은 총 3개로 가상화되어있다. 가상 머신은 하드웨어 리소스를 OS를 통해 직접 제어하지 않고, VM 수준에서 가상화 소프트웨어를 통해 제어한다. 각 가상 머신은 서로 다른 OS를 설치할 수 있다.


가상화 방식

가상화의 세가지 유형

 가상화의 종류는 크게 3가지가 있다. Host 가상화, 하이퍼바이저 가상화, 컨테이너 가상화이다. 컨테이너 가상화의 경우 근래 가장 많이 사용되는 Docker가 해당된다. Host 가상화 방식은 근래 들어 거의 쓰이지 않는 추세이다. 각각의 특징을 알아보자.

 

Host virtualization (호스트 가상화)

Host 가상화

 Host OS위에 가상화 소프트웨어를 설치한다. 그 후 가상머신 별로 가상머신을 실행할 Guest OS를 설치하여 Guest OS에서 가상 머신을 운용하는 방법이다. 가상머신 별로 OS가 설치되기 때문에 오버헤드가 있다. 가상머신 개수 + Host OS 수가 운용되기 때문에 성능저하가 있는 편이라 거의 쓰이지 않는 가상화 방식이다. 대표적으로 Virtual Box, VMware, VM Workstation이 있다.

 

Hypervisor virtualization (하이퍼바이저 가상화)

Hypervisor 가상화

 물리적인 Host 컴퓨터 위에 가상화 전문 소프트웨어 하이퍼바이저를 설치한다. 의존하는 Host OS가 없다. 하이버파이버 소프트웨어 위에 가벼운 버전의 게스트 OS (Ubuntu 등)를 실행한다. Host OS에 직접 의존하지 않기 때문에 성능상 오버헤드가 Host 가상화에 비해 적다. 또한 하드웨어를 직접 관리하기 때문에 리소스 관리가 유연하다는 장점이 있다. 근래 클라우드 컴퓨팅 기술에서 아직도 가장 많은 비용을 차지한다. (점차 컨테이너 가상화 비율이 높아지는 중)

대표적으로 VMware ESXi, Microsoft Hyper-V 가 있다. 

 

Hypervisor virtualization 1 - full-virtualization (전가상화)

하드웨어를 완전히 가상화하는 방식이다. 관리용 가상머신 DOM0를 통해 각 게스트 OS들의 커널 요청을 번역, 하드웨어에 전달한다. 따라서 병목현상이 발생할 수 있다. (성능 저하)

 

Hypervisor virtualization 1 - para-virtualization (반가상화)

 각 게스트 OS들은 하이퍼 콜을 통해 하드웨어 제어를 요구한다. 전가상화에 반해 병목현상이 없다. 하이퍼 콜을 통해 하드웨어를 제어할 수 있도록 게스트 OS 커널의 수정이 필요하다. 따라서 리눅스와 같은 오픈소스 OS 외에는 반가상화가 어렵다.

 

Container virtualization (컨테이너 가상화)

Container 가상화

 컨테이너 (Container)란 애플리케이션 동작에 필요한 라이브러리, 종속 리소스 (데이터베이스, Was 서버 등)들을 패키지형태로 묶어놓은 것을 말한다. 따라서 컨테이너는 Host OS 상의 논리적인 구역이다. 컨테이너는 다른 가상화 방식의 가상 머신과 비슷한 개념으로 볼 수 있다. 

 

 그러나 Guest OS를 설치하지 않고 하나의 컨테이너 엔진 위에서 동작한다는 것이 다른 가상화 방식과의 큰 차별점이다. 게스트 OS가 없어 공간상 오버헤드가 적고 가볍고 빠르다.

 컨테이너의 이식성이 가상머신 대비 매우 뛰어나다. 기존 가상화 방식의 가상머신 (VM)은 Guest OS와 함께 이식된다면, 컨테이너 가상화는 컨테이너 엔진이 설치된 어느 컴퓨터이건, 컨테이너 (Docker의 이미지)만 이식하면 되기 때문이다. 근래 CSP 회사들의 비율은 하이퍼바이저 가상화와 컨테이너 가상화가 7:3의 비율 정도로 유지되고 있다. 그리고 점차 컨테이너 가상화 기술의 비율이 늘고 있다. 

 

 대표적으로 Docker가 있다. Docker는 대표적인 오픈소스 컨테이너 엔진으로 리눅스 컨테이너 기반의 이미지 생성, 배포에 특화된 엔진이다. Kubernetes(쿠버네티스, K8S)는 컨테이너 가상화 환경에서 컨테이너들을 분산, 배치, 구동환경 등을 관리해 주는 도구이다. 2022년부터 Docker 지원을 중단했다.

 

컨테이너 가상화의 차이점 비교

 


참고

https://aws.amazon.com/ko/what-is/virtualization/

 

 

가상화란 무엇인가요? - 클라우드 컴퓨팅 가상화 설명 - AWS

클라우드 컴퓨팅은 사용량에 따른 요금으로 인터넷을 통해 온디맨드로 컴퓨팅 리소스를 제공하는 것을 말합니다. 물리적 데이터 센터를 구매, 소유 및 유지 관리하는 대신, 필요할 때 클라우드

aws.amazon.com

https://www.redhat.com/ko/topics/virtualization/what-is-a-hypervisor

 

하이퍼바이저(Hypervisor)란?

하이퍼바이저는 하드웨어에서 시스템의 운영 체제와 리소스를 분리해 VM에 할당하여 가상 머신을 생성하고 구동하는 소프트웨어입니다.

www.redhat.com

https://www.atlassian.com/ko/microservices/cloud-computing/containers-vs-vms

 

컨테이너와 가상 컴퓨터 비교 | Atlassian

컨테이너와 가상 컴퓨터의 주요 차이점과 각각의 인기 있는 공급자에 대해 알아봅니다.

www.atlassian.com

 

댓글