업데이트됨 1개월 전
1만 달러짜리 서버를 구입했다. 그 서버는 랙에 꽂혀 전력을 소모하고 열을 내뿜는다. 그리고 85%의 시간 동안 아무것도 하지 않는다.
이것이 수십 년 동안 컴퓨팅의 현실이었다. 각 애플리케이션은 자체 서버가 필요했다. 같은 운영 체제에서 공존할 수 없는 서비스 세 개를 운영한다면, 서버 세 대를 구입해야 했다. 각 서버는 10~30%의 가동률로 조용히 돌아가는 동안, 당신은 하드웨어, 전력, 냉각 비용의 100%를 부담했다.
가상화는 이 낭비가 도저히 참을 수 없었기 때문에 탄생했다.
하이퍼바이저의 거짓말
가상 서버는 소프트웨어가 만들어낸 허구다. 하이퍼바이저—하드웨어와 운영 체제 사이의 얇은 계층—는 각자가 전용 하드웨어에서 실행되고 있다고 믿는 격리된 환경을 만든다. 가상 서버가 하드 드라이브에 쓴다고 생각할 때, 실제로는 파일에 쓰는 것이다. 네 개의 CPU 코어가 있다고 생각할 때, 실제로는 다른 가상 서버들과 물리 코어를 공유하며, 아무도 눈치채지 못할 만큼 빠르게 번갈아 가며 사용하는 것이다.
가상 서버 내부의 운영 체제는 자신이 속고 있다는 사실을 전혀 모른다. 프로세서, 메모리, 스토리지, 네트워크 인터페이스—실제 컴퓨터의 모든 구성 요소가 눈앞에 펼쳐진다. 부팅하고, 애플리케이션을 실행하고, 물리적 하드웨어에서와 똑같이 동작한다. 속임수는 완벽하다.
이 속임수에는 분명한 이유가 있다. 15% 가동률로 돌아가던 서버 세 대가, 단일 물리 머신에서 45% 가동률로 실행되는 가상 서버 세 개로 바뀔 수 있다. 같은 작업, 3분의 1의 하드웨어. 3분의 1의 전기 요금. 3분의 1의 냉각 비용. 3분의 1의 랙 공간.
물리 서버가 여전히 빛나는 이유
전용 하드웨어는 사라지지 않았다. CPU 성능의 모든 사이클이 필요할 때, 가상화의 5~10% 오버헤드는 무시할 수 없다. 특정 GPU, 네트워크 카드, 스토리지 컨트롤러가 필요할 때, 직접 하드웨어에 접근하는 편이 훨씬 간단하다. 컴플라이언스 규정이 전용 인프라를 요구할 때, 물리 서버가 답이다.
하이퍼바이저를 실행하는 머신 자체도 물리 서버다. 가상화는 하드웨어를 없애는 게 아니라, 하드웨어를 더 효율적으로 활용하는 방법이다.
하지만 대부분의 워크로드에서 선택은 명확하다. 몇 초 만에 프로비저닝되는 가상 서버는, 주문하고 설치하는 데 몇 주가 걸리는 물리 서버를 능가한다. 스냅샷을 찍고, 복제하고, 복원할 수 있는 가상 서버는, 장애 후 처음부터 다시 구축해야 하는 물리 서버를 능가한다. 필요에 따라 크기를 조정할 수 있는 가상 서버는, 용량이 고정된 물리 서버를 능가한다.
노이지 네이버 문제
공유에는 대가가 따른다. 여러 가상 서버가 동일한 물리 하드웨어에서 실행될 때, 문제를 일으키는 세입자 하나가 다른 서버들에 영향을 미칠 수 있다. 갑자기 CPU나 디스크 I/O를 폭발적으로 소비하는 가상 서버는 이웃 서버들의 성능을 떨어뜨릴 수 있다.
좋은 하이퍼바이저는 안전장치를 갖추고 있다—리소스 제한, 공정한 스케줄링, 격리 메커니즘. 하지만 가능성 자체는 존재한다. 성능이 중요한 애플리케이션이 때때로 전용 하드웨어에 머무는 이유가 바로 이것이다. 가상화가 감당하지 못해서가 아니라, 공유 환경이 성능 편차를 만들어내기 때문이다.
클라우드 컴퓨팅은 가상화다
AWS, Azure, Google Cloud에서 서버를 생성할 때, 당신은 가상 서버를 만드는 것이다. 클라우드 제공업체는 하이퍼바이저를 실행하는 물리 서버로 가득 찬 대규모 데이터 센터를 운영한다. 당신의 "클라우드 서버"는 수요에 따라 할당되고 시간 단위로 청구되는 그들의 하드웨어 한 조각이다.
이것이 클라우드 서버가 몇 초 만에 프로비저닝되는 이유다. 크기를 조정하거나 정확한 복사본을 만들 수 있는 이유다. 물리적 하드웨어를 직접 만지지 않고도 전 세계 데이터 센터에서 서버를 실행할 수 있는 이유다. 당신은 대규모로 구현된 가상화의 혜택을 누리고 있는 것이다.
클라우드 제공업체는 "베어 메탈" 인스턴스도 제공한다—전용 성능이 필요할 때 물리 서버 전체를 임대하는 옵션이다. 하지만 이것은 예외다. 기본값은 가상이다.
어떤 방식을 선택할까
물리 서버가 적합한 경우:
- 최대 성능이 필요하고 오버헤드 1%도 허용할 수 없을 때
- 가상화하기 까다로운 특정 하드웨어가 필요할 때
- 컴플라이언스나 라이선싱이 전용 인프라를 요구할 때
- 가상 서버를 실행하는 플랫폼 자체를 구축할 때
가상 서버가 적합한 경우:
- 리소스 활용률이 최고 성능보다 중요할 때
- 프로비저닝, 크기 조정, 복제, 마이그레이션의 유연성이 필요할 때
- 재해 복구 및 백업의 단순성이 우선순위일 때
- 클라우드에서 워크로드를 실행할 때
대부분의 현대 인프라는 둘 다 활용한다. 예측 가능한 성능을 위해 데이터베이스는 물리 하드웨어에. 유연성을 위해 애플리케이션 서버는 가상화로. 핵심 시스템은 전용 머신에. 그 나머지는 모두 효율적으로 리소스를 나눠 쓴다.
1만 달러짜리 서버는 여전히 존재한다. 다만 이제는 하나가 아닌 열 개의 가상 서버를 실행할 뿐이다.
이 페이지가 도움이 되었나요?