❑ 가상화의 등장 배경
새로운 운영체제의 테스트 환경을 구축하기 위해, 하나의 서버에서 여러 개의 애플리케이션 서버를 구동하는 등 서버 리소스를 탄력적으로 사용하고자 하는 요구사항이 생겼다. 하지만 하나의 서버에 설치된 각 애플리케이션 서버마다 요구하는 환경(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을 사용함으로써 Windows 운영체제에서 리눅스 운영체제를 설치할 수 있다. 이것은 IT 사용자들에게 대단한 유연성을 제공한다.
- VM을 이용해 새롭게 복제된 시스템은 일반적으로 해당 시스템을 구축하기 위한 새로운 인프라를 구매하지 않아도 되기 때문에 비용이 저렴하다.
# 단점
- VM에서 하이퍼바이저를 통해 CPU, RAM 등 서버 리소스에 액세스해야하므로 당연히 속도가 느려진다.
- VM은 하드웨어의 리소스를 물리적으로 분할해 사용하므로 성능에 한계가 생긴다.
❑ 또 다른 가상화 기술: Container
VM과 함께 가장 많이 사용되는 가상화 기술 리눅스 컨테이너(Container) 기술이 있다. 그리고 컨테이너 기술 중 가장 잘 알려진 것이 도커(Docker)다. 과거 가상화 기술은 VM이 대표적이었지만, 최근에는 MSA 아키텍처와 잘 맞는 컨테이너 기술이 대세 기술로 자리잡고 있다.
도커는 아래 포스팅에서 더 알아보자
2021.12.15 - [Back-End/DevOps] - [Docker] 기초(1) 도커와 컨테이너의 개념, 사용 이유
'DevOps > Docker' 카테고리의 다른 글
[Docker] 기초 시리즈 (6) 도커 이미지 다루기 - 이미지 직접 생성 (0) | 2022.04.30 |
---|---|
[Docker] 기초 시리즈 (2) Ubuntu에 도커 엔진 설치 (0) | 2022.04.30 |
[Docker] 기초 시리즈 (4) 도커 이미지의 구조 (0) | 2022.04.29 |
[Docker] 기초 시리즈 (3) 이미지와 컨테이너 관계, 도커 아키텍처 (0) | 2021.12.30 |
[Docker] 기초 시리즈 (1) 도커의 개념과 사용이유 (0) | 2021.12.15 |