Docker 기초 : 가상화 개념

물리 머신의 한계와 이를 극복하기 위한 가상화 기술의 종류

written by tiaz0128

물리 머신(physical machine)

물리 머신은 우리가 직접 만지고 볼 수 있는 실제 컴퓨터를 의미합니다. CPU, 메모리, 스토리지 등 물리적인 하드웨어로 구성되어 있으며, 단일 운영체제를 실행하는 것이 일반적입니다.

물리 머신

> 실체가 존재하는 물리 머신

물리 머신의 한계

물리 머신을 확장하려면 하드웨어 구입 비용뿐만 아니라 설치 공간, 전기 등 인프라적인 요소도 고려해야 합니다. 또한 물리 머신은 한번 늘려놓은 자원들을 다시 더 늘리거나, 반대로 줄일 수 있는 탄력성(elasticity)이 부족합니다.

물리 머신의 한계

> 물리 머신은 인프라를 확장해야 하는 부담이 존재하며 탄력성 또한 떨어짐

클라우드 컴퓨팅(Cloud Computing)

아래 그래프는 시간에 따른 컴퓨팅 용량(Capacity) 관리 방식을 전통적인 하드웨어 방식과 자동화된 클라우드 방식으로 비교하여 보여주고 있습니다. 그래프에서 이야기하는 전통적인 하드웨어 방식의 한계는 다음과 같습니다.

인프라적인 관점의 그래프

> 출처 : Cloud Computing - Benefits to the Business

이러한 한계를 극복하기 위해서, 자원을 탄력적으로 사용할 수 있는 클라우드 컴퓨팅이 발전하고 있습니다. 그리고 이 클라우드 컴퓨팅의 핵심 기술은 ‘가상화’입니다.

가상 머신(virtual machine)

가상화는 물리 머신의 리소스를 논리적으로 분할하여 사용하는 기술입니다. 물리 머신 위에 구축된 가상의 컴퓨터를 ‘가상 머신’이라 합니다. 그리고 가상화 소프트웨어가 가상 머신을 실행하고 관리합니다.

가상화 기술을 통해 하나의 물리적 시스템에서 여러 개의 가상 환경을 운영할 수 있습니다. 각 가상 머신은 독립된 운영체제(OS)와 리소스를 가지며, 완전히 격리된 환경에서 실행됩니다.

가상 머신

> 물리 머신 위에 가상 머신을 구축할 수 있다.

가상화 소프트웨어

가상화 소프트웨어에는 몇 가지 종류가 있습니다.

호스트(Host) OS / 게스트(Guest) OS

가상화 소프트웨어를 알기 전에 기본적인 OS의 분류를 정리하고 가겠습니다.

호스트형 가상화

호스트형 가상화 소프트웨어는 호스트 OS에 설치해서 게스트 OS를 관리합니다. 마치 운영체제에 크롬 브라우저를 설치하는 것처럼, 가상화 소프트웨어를 설치하고 그 안에 새로운 OS를 생성합니다.

호스트형 가상화

> 호스트형 가상화

장점

호스트 OS와 게스트 OS가 공존하며 호스트의 작업과 게스트의 작업을 동시에 할 수 있습니다.

단점

게스트 OS에서 하드웨어를 제어하려면 호스트 OS를 경유하기 때문에 하드웨어 관련 성능이 떨어집니다.

대표 제품

하이퍼바이저형 가상화

하이퍼바이저(hypervisor)형 가상화 소프트웨어는 물리 머신에 직접 설치돼서 게스트 OS를 관리합니다.

하이퍼바이저형 가상화

> 하이퍼바이저형 가상화

장점

호스트 OS가 존재하지 않으므로 게스트 OS에 리소스를 더 많이 할당할 수 있고, 하드웨어에 직접 접근하여 높은 성능을 낼 수 있습니다.

단점

호스트형 가상화와 다르게 호스트 OS와 공존할 수 없습니다.

대표 제품

컨테이너 가상화

컨테이너(container)형 가상화는 호스트 OS의 커널을 공유하며, 프로세스 격리 기술을 사용하여 게스트 OS를 가동하지 않고 컨테이너 단위로 애플리케이션을 관리합니다.

컨테이너 가상화

> 컨테이너 가상화

장점

게스트 OS를 가동하지 않기 때문에 리소스 소비가 적고 실행이 빠릅니다. 호스트 OS와 공존도 할 수 있습니다.

단점

게스트 OS가 없으므로 리눅스 컨테이너를 가동하려면 호스트 OS에서 리눅스 커널을 빌려야 합니다. 때문에 호스트 OS는 추가적인 방법으로 리눅스 커널을 준비해야 하는 단점이 있습니다.

대표 제품

마무리

도커를 배우기 전 가상화 기술에 대해서 알아 봤습니다. 다음 포스트에서는 컨테이너를 관리하는 도커 데몬(Docker Daemon)에 대해 알아봅시다!

마지막으로 각 가상화 기술을 다시 한번 정리해 보겠습니다. 😊

유형 장점 단점
호스트형 가상화 호스트 OS와 작업 공존 가능 하드웨어 접근 속도 저하
하이퍼바이저형 가상화 높은 성능 호스트 OS와 공존 불가
컨테이너형 가상화 리소스 효율성 및 빠른 실행 커널 의존성

다음으로

다음글에서 계속 됩니다.

다음글에서 Docker 기초 : 도커 엔진, 컨테이너, 이미지의 기본 개념을 알아보겠습니다 !

Docker 가상화

tiaz0128

Eat Sleep Coding.

Never Never GiveUp.

Security  |  BackEnd  |  Multi Cloud