# 클라우드와 가상머신
☁️ 클라우드와 가상머신
🖥️ 전통적인 배포 방식의 한계
예전에는 한 대의 물리적인 컴퓨터에 하나의 OS를 설치하고, 그 위에 여러 가지 프로그램을 깔아서 사용했다. 이렇게 하면 같은 OS를 공유하는 여러 계정이 하나의 환경을 나눠 쓰게 된다.
그런데 이 방식에는 큰 문제가 있다. 계정을 나눴다고 해서 완전히 독립적인 환경이 보장되는 것이 아니라는 점이다. 예를 들어, user1이 금융 업무를 위해 보안 프로그램을 설치했다고 해보자. 그런데 user2가 업비트 같은 특정 앱을 실행하려고 하면, user1이 설치한 보안 프로그램 때문에 충돌이 발생할 수 있다. 결국, 하나의 OS에서 모든 것이 돌아가다 보니 서로 영향을 미치게 되는 것이다.
이 문제를 해결할 방법이 없을까? 🤔
🏗️ 가상화 배포 방식: 가상머신(Virtual Machine)
이러한 문제를 해결하기 위해 등장한 개념이 바로 가상머신(VM, Virtual Machine)이다. 가상머신이란 실제 컴퓨터 하드웨어를 소프트웨어적으로 구현한 것으로, 하나의 물리적인 컴퓨터에서 여러 개의 OS를 독립적으로 운영할 수 있도록 만들어 준다.
즉, 단순히 계정을 나누는 것이 아니라, 완전히 독립적인 가상의 컴퓨터를 여러 개 생성하는 방식이다. 이를 통해 CPU나 RAM을 실제로 갈아 끼우지 않아도, 설정을 통해 유연하게 조정할 수 있다.
그렇다면 이러한 가상머신을 가능하게 해주는 핵심 기술은 무엇일까?
🏗️ 하이퍼바이저(Hypervisor)의 역할
하이퍼바이저는 한 마디로 가상머신을 여러 개 실행할 수 있도록 도와주는 중간 계층이다. 실제 하드웨어 위에 하이퍼바이저가 올라가고, 그 위에 여러 개의 가상머신이 구동되는 구조다.
이 방식의 가장 큰 장점은 무엇일까? 바로 사용자 간 완벽한 독립성이다. 기존의 전통적인 방식에서는 같은 OS를 공유해야 했기 때문에 한 사용자의 프로그램이 다른 사용자에게 영향을 미칠 수 있었다. 하지만 가상머신을 사용하면 각 사용자에게 독립적인 OS 환경을 제공할 수 있기 때문에 이러한 문제가 발생하지 않는다.
⚖️ 가상머신의 장점과 단점
✅ 장점
- 완전한 독립성 보장: 같은 하드웨어를 공유하지만, 각 가상머신은 독립적으로 동작한다.
- 유연한 자원 할당: 필요에 따라 CPU, RAM 등의 자원을 설정으로 조절할 수 있다.
- 안정적인 환경 제공: 한 가상머신에서 발생한 오류가 다른 가상머신에 영향을 주지 않는다.
❌ 단점
- OS 설치 필요: 가상머신을 사용할 때마다 OS를 따로 설치해야 한다.
- 자원 사용량 증가: 각 가상머신이 독립적인 OS를 사용하기 때문에, 메모리와 CPU 사용량이 늘어날 수 있다.