다음은 웹 개발자를 위한 대규모 서비스를 지탱하는 기술을 읽고 정리한 내용입니다 🙌


  • 다중화로 어느정도 문제를 해결할 수 있지만 규모가 작으면 다중화를 했을 경우 전체적인 리소스 사용률이 떨어지면서 효율이 떨어진다.
  • 가상화로 전체적인 리소스 사용률을 높일 수 있다.

[강의36] 가상화 기술

가상화 기술의 도입

왜 가상화 기술을 사용하나

  • 확장성 → 오버헤드 최소화
  • 비용대비 성능 → 리소스 사용률 향상, 운용의 유연함
  • 고가용성 → 환경 격리

가상화 기술의 효용

  • IPMI를 대체하는 하이퍼바이저
    • 호스트 OS : 서버에서 최초에 기동하는 OS
  • 하드웨어 간 차이 흡수 → 환경 추상화
  • 준 가상화 사용
  • 리소스 소비 제어
    • 과부하 경고
    • 부하 조정

가상화 서버 구축정책

  • 하드웨어의 이용효율을 높이기 위해 남아있는 리소스를 사용하는 게스트 OS를 투입하는 것이다.
    • 예를 들어 CPU 리소스가 남이있으면 웹 서버, I/O 리소스가 남아있으면 DB 서버, 메모리 용량이 남아있으면 캐시 서버를 투입한다.
    • 리소스 소비경향이 비슷한 게스트 OS는 서로 점유하려고 하므로 같이 두지 않는다.

가상화로 얻은 장점 정리

  • 물리적인 리소스 제약에서 해방 → 동적으로 변경 가능
  • 게스트 OS의 마이그레이션 및 복제가 용이 → 서버 증설이 용이 + 확장성 확보
  • 소프트웨어 레벨에서 호스트 리소스 제어가능
  • 비정상 동작 시 문제를 국소화, 호스트를 쉽게 제어
  • 효율이 향상, 시스템 안정화 가능
  • 비용대비 성능 향상, 고가용성으로 발전

가상화 도입 시 주의할 점

  • 성능상 오버헤드가 있다.
    • CPU에서 2% - 3%
    • 메모리 성능에서 1할정도
    • 네트워크 성능 절반
    • I/O 성능 5% 정도
  • 상황에 따라서 가상화를 하는 것이 좋을수도 있고, 아닐수도 있다.
  • 지금은 가상화 기술이 더 안정되었을 것이다 → docker