

정의
- 하드웨어를 에뮬레이션 하여 여러 개의 독립적인 가상 환경을 생성하는 소프트웨어이다.
- 실제 컴퓨터 대신 소프트웨어를 사용하여 프로그램을 실행하고 앱을 배포하는 컴퓨팅 리소스이다.
- 가상 머신 상에서 운영 체제나 응용 프로그램을 설치 및 실행할 수 있다.
- 하나 이상의 가상 게스트 시스템이 물리적 호스트 시스템에서 실행된다.
- 각 가상 머신은 모두 동일한 호스트에서 실행되는 경우에도 자체 운영 체제를 실행하고 다른 VM과 별도로 작동된다.
- 예를 들어 가상 MacOS 가상 머신이 실제 PC에서 실행될 수 있음을 의미한다.
- 가상 머신의 가장 중요한 특징은 안에서 돌아가는 소프트웨어가 가상 머신이 제공하는 환경과 자원에 제한을 받으며, 가상 세계를 벗어날 수 없다.
- 호스트 하드웨어에서 실행하는 프로그램으로서, 호스트 OS(운영 체제) 또는 호스트 시스템에서 실행하는 다른 VM과 분리하여 자체 게스트 OS 및 애플리케이션을 갖춘 격리된 환경을 제공한다.
- 가상 머신 기술은 온프레미스 및 클라우드 환경 전반의 다양한 사용 사례에 사용된다.
- 최근에는 퍼블릭 클라우드 서비스에서 가상 머신을 사용하여 훨씬 더 비용 효율적이고 유연한 컴퓨팅을 위해 여러 사용자에게 가상 애플리케이션 리소스를 한 번에 제공하고 있다.
- 가상 머신은 시스템의 나머지 부분과 분리되어 있으므로 가상 머신 내부의 소프트웨어는 호스트 컴퓨터를 조작할 수 없다.
- VM은 물리적 컴퓨터에서 실행하는 모든 소프트웨어를 실행하는 데 사용할 수 있는 소프트웨어 컴퓨터로 생각할 수 있다. 물리적 기계와 마찬가지로 가상 머신에는 자체 운영체제, 스토리지, 네트워킹, 구성 설정 및 소프트웨어가 포함되어 있으며 해당 호스트에서 실행되는 다른 VM과 완전히 분리된다.
- 가상 머신은 물리적 머신의 OS에서 다른 애플리케이션과 마찬가지로 애플리케이션 창에서 프로세스로 실행된다. 가상 머신의 주요 구성 파일로는 로그 파일, NVRAM 설정 파일, 가상 디스크 파일, 구성 파일 등이 있다.
- 가상 머신은 관리 및 유지가 쉽고 물리적 머신에 비해 여러 장점을 제공한다
- 가상 머신은 단일 물리적 컴퓨터에서 여러 OS 체제 환경을 실행할 수 있어 물리적 공간, 시간 및 관리 비용을 절약할 수 있다.
- 가상 머신은 레거시 애플리케이션을 지원하므로 새 OS로 마이그레이션하는 데 드는 비용을 줄여준다.
- VM은 통합 재해 복구 및 애플리케이션 프로비저닝 옵션도 제공할 수 있다.
- 애플리케이션을 쉽게 확장하고 변동하는 워크로드를 수용할 수 있다.
- 잠재적인 위협에 대해 추가 보안 계층을 제공할 수 있다.
- 가상 머신은 몇 가지 잠재적인 단점 역시 존재한다
- 하나의 물리적 시스템에서 여러 가상 시스템을 실행할 경우 인프라 요구 사항에 따라 성능이 불안정해질 수 있다
- 가상 머신은 전체 물리적 컴퓨터보다 효율성이 낮고 느리게 실행된다.
- 가상 머신은 프로세스 가상 머신과 시스템 가상 머신의 두 가지 유형이 존재한다