가상머신은 무엇인가?
가상머신을 알기 전에 이전에 사용하던 전통적 배포방식을 살펴보자
전통적 배포방식
전통적 배포방식은 물리적인 컴퓨터 한 대에 하나의 OS를 깔고 여러 가지 프로그램을 설치하는 방식이다. 계정을 나눠 여러 명의 사용자가 이용할 수 있도록 할 수 있지만 어떤 프로그램을 설치했을 때 다른 앱에 영향을 미친다.
예를 들어 현재 우리의 컴퓨터에는 CPU, RAM, SSD가 존재하고 그 위에 OS가 올라가 있다. 그리고 그 위에 갖가지 프로그램들(lol, excel, word....)이 설치되어 사용되고 있다. 전통적인 배포방식은 이러한 컴퓨터 한대 위에서 여러 명이 사용할 수 있게 하기 위해서 계정을 나눠서 관리하게 했었다. 그러나 OS는 1개이기 때문에 무언가를 설치하면 독립적으로 나눠서 관리할 수 없다는 문제점이 발생했다. 이 문제점을 해결하고자 등장하게 된 것이 가상화 배포방식이다.
가상화 배포방식
가상화 배포방식이란 가상머신을 기반으로 배포하는 방식이다. 가상머신이란 컴퓨터의 하드웨어를 소프트웨어적으로 구현한 것을 말한다. 계정을 나누는 것이 아니라 한대의 컴퓨터를 가지고 여러개의 OS를 구동할 수 있게 되며 CPU, RAM을 물리적으로 갈아끼는 것이 아니라 설정만으로 이를 수행할 수 있게 한다.
1대의 컴퓨터를 가지고 여러명이 서로 독립적인 환경에서 컴퓨팅을 하는 이러한 개념을 가상머신이라고 한다.
가상머신의 장점
자원공유
물리적인 서버의 자원을 효율적으로 공유할 수 있다. 여러 개의 가상머신이 하나의 물리적 서버에서 실행될 수 있으므로 자원의 활용도를 높일 수 있다.
비용 절감
하나의 물리적 서버로 여러 개의 가상 서버를 운영할 수 있기 때문에 하드웨어 구매 및 유지보수 비용을 절감할 수 있다.
유연성
필요에 따라 가상 서버를 생성하거나 제거할 수 있어서 확장성과 유연성이 뛰어나다.
테스트 환경 구성
소프트웨어를 테스트하고 개발할 때 물리적 서버를 실제로 필요로 하지 않고 실제 배포될 환경과 비슷한 환경을 구성하여 테스트해 볼 수 있다.
가상머신의 단점
성능 손실
하드웨어를 가상화하여 사용하기 때문에 물리적 서버에서 직접 실행하는 것보다 일부 성능 손실이 발생할 수 있다.
관리 및 유지보수
가상머신 환경을 관리하고 유지보수 하는 것은 가상머신의 설정, 네트워크 구성, 스토리지 관리 등을 고려했을 때 일반적인 물리적 서버보다 더 복잡할 수 있다.
보안문제
가상머신은 물리적 서버에서 구동되므로 해당 서버에 대한 보안이 중요하다. 가상머신의 보안이 취약할 경우 물리적 서버 전체가 위협을 받을 수 있다.
호환성 문제
일부 하드웨어나 소프트웨어는 가상머신에서 정상적으로 동작하지 않을 수 있다. 특히 하드웨어 리소스를 직접 접근해야 하는 경우에는 호환성 문제가 발생할 수 있다.