하나의 컴퓨터에서 여러 개의 소프트웨어를 실행한다고 생각해봅시다. 이론상 문제 없어 보이지만, 현실에서는 다양한 문제가 발생할 수 있습니다.
예를 들어, 하나의 프로그램이 오류를 일으키거나 과도한 리소스를 사용하게 되면, 다른 프로그램까지 영향을 받을 수 있죠.
이런 문제를 해결하기 위해 등장한 기술이 바로 가상화 기술(Virtualization)입니다.
가상화 기술이란?
가상화(Virtualization)는 하나의 물리적 컴퓨터 안에 여러 개의 논리적 OS 환경을 만들어 각각 독립적으로 소프트웨어를 실행할 수 있도록 해주는 기술입니다.
이를 통해 리소스를 직접 분배하거나, 서로 격리된 환경에서 소프트웨어를 안정적으로 운영할 수 있습니다.
가상화의 장점
- 프로그램 간 리소스 충돌 방지
- 하나의 에러가 다른 서비스에 영향을 주지 않음
- 서버 설치 공간, 전력 소모, 배선 등의 비용 절감
- 엔터프라이즈 환경에서 효율적인 자원 활용 가능
프로세스와 운영체제(OS)의 관계
모든 프로세스는 CPU, 메모리 같은 하드웨어 리소스를 사용해야 실행됩니다.
하지만 직접 접근은 불가능하고, 반드시 운영체제(OS)의 커널을 통해 시스템 콜을 보내야만 사용할 수 있습니다.
이는 하드웨어 리소스는 민감하고 복잡하게 다뤄야 하기 때문입니다.
가상화 기술의 종류
가상화는 크게 두 가지 방식으로 나뉩니다:
1️⃣ 하이퍼바이저(Hypervisor) 방식
하이퍼바이저 방식은 전통적인 가상화 기술입니다.
하나의 물리적 OS를 Host OS라 부르고, 이 위에 하이퍼바이저를 설치해 여러 개의 Guest OS를 만듭니다. 우리가 흔히 말하는 '가상 머신(VM)'이 바로 이 Guest OS입니다.
동작 방식
- Guest OS는 리소스를 직접 쓰지 못하고, Host OS의 커널에 요청해야 함
- 하이퍼바이저가 Host와 Guest 간 시스템 콜을 중계 (통역가 역할)
- 서로 다른 종류의 OS도 실행 가능 (예: Windows 위에 Linux VM)
단점
- 시스템 콜 번역으로 인한 오버헤드 발생
- 부팅 속도 느림
- 실행 시 CPU, 메모리, 디스크 등 많은 자원 소모
대표 제품
- VMware, VirtualBox, RedHat Hypervisor 등
2️⃣ 컨테이너(Container) 가상화
컨테이너 가상화는 하이퍼바이저보다 훨씬 가볍고 빠른 방식입니다.
대표적으로 Docker가 여기에 해당하죠.
핵심 개념
- **커널 자체의 격리 기능(LXC)**을 사용
- 별도의 Guest OS 없이 Host OS의 커널을 공유
- 컨테이너 간에는 완전히 격리된 환경 제공
사용되는 기술
- Namespace: 리소스를 기준별로 나누는 기능 (PID, 사용자, 네트워크 등)
- Cgroup: 리소스 사용량을 제한하고, 격리하는 기능 (CPU, 메모리 등)
특징
- 컨테이너는 부팅 속도가 빠르고 오버헤드가 낮음
- Host OS의 커널을 공유하므로, 다른 종류의 OS는 실행 불가
비교 항목 | 하이퍼바이저 가상화 | 컨테이너 가상화 |
커널 공유 | X (독립된 OS 사용) | O (Host OS의 커널 공유) |
부팅 속도 | 느림 | 매우 빠름 |
오버헤드 | 큼 (시스템 콜 번역 필요) | 작음 |
OS 종류 다양성 | 가능 | 제한적 (Host OS 기반) |
대표 예 | VMware, VirtualBox | Docker, LXC |
Docker는 컨테이너 가상화 도구일 뿐
많은 분들이 Docker가 격리 환경을 직접 만드는 줄 아시지만, 실제로는 커널이 격리를 담당합니다.
Docker는 그저 이 과정을 편리하게 구성하고 관리할 수 있도록 도와주는 도구입니다.
반면, 하이퍼바이저 가상화에서는 하이퍼바이저 자체가 격리 환경을 만드는 주체입니다.
마무리
- 가상화 기술은 안정적인 서비스 운영과 자원 효율성 확보를 위해 필수적인 요소입니다.
- 하이퍼바이저 방식은 다양한 OS를 실행할 수 있지만 무겁고 느립니다.
- 컨테이너 방식은 가볍고 빠르지만 OS 종류에 제약이 있습니다.
- 운영 목적에 따라 적절한 방식의 가상화를 선택하는 것이 중요합니다.
'development > Cloud' 카테고리의 다른 글
[AWS에서 GCP로 AI 서버 마이그레이션하기] - 1단계: 인프라 구축 (4) | 2025.08.18 |
---|