학습 개요
- IT 기업 뿐 아니라 일반 기업에까지 클라우드 컴퓨팅의 활용 사례가 늘어남에 따라 고도의 기술 스택을 구성하여 다양한 IT 리소스를 탄력적으로 제공하고 있음
- 클라우드 컴퓨팅은 온프레미스 방식의 물리적 실행 환경의 제약을 극복하고 사용자에게 실시간으로 프로비저닝된 가상의 리소스를 탄력적으로 제공하기 위한 가상화, 웹 서비스, 가용성 관리 등 다양한 기술의 총집합체라고 할 수 있음
- 따라서 효율적 클라우드 기반의 시스템 구성 및 운영을 위해 클라우드 컴퓨팅 기술에 대한 구체적인 이해가 필요함
- 클라우드 컴퓨팅 기술의 핵심이라고 할 수 있는 가상화 기술의 개념 및 특징에 대해 학습하고 서버를 가상화하기 위한 기술의 종류와 차이점에 대해 살펴봄
학습 목표
- 가상화 소프트웨어의 개념에 대해 설명할 수 있음
- 가상화 기술의 역할을 나열할 수 있음
- 서버 가상화 분류 방식의 종류와 특징을 설명할 수 있음
강의록
가상화 기술의 이해
가상화 기술 개요
- S/W적으로 애플리케이션, 서버, 스토리지, 네트워크와 같은 IT 리소스를 논리적으로 분할/통합하여 리소스의 이용률과 가용성을 높이는 기술
- 물리적 IT 리소스를 가상의 IT 리소스로 전환
- 가상화 기술을 활용하여 하나의 서버로 여러 실행 환경 구성
- 가상화 기술의 장점
- 물리적 리소스의 소유 비용을 감축
- 간편한 유지 보수
가상화 소프트웨어의 역할
- CPU, GPU, 메모리, 스토리지와 같은 H/W적 리소스와 OS, 런타임 등의 S/W적 리소스를 가상화하여 소프트웨어 플랫폼 역할을 함
- 사용자의 요청에 탄력적으로 리소스를 제공할 수 있는 클라우드 컴퓨팅에 적합한 기술
- 가상 머신 (Virtual Machine)
- 가상화 기술을 통하여 나누어진 기초적 논리적 단위의 머신
- H/W 리소스를 OS가 아닌 VM 수준에서 제어하기 때문에 하나의 H/W상에서 각기 다른 종류의 OS 실행 가능
가상화 기술의 역할
- 파티셔닝
- 하나의 물리적 머신을 분할/분배
- 캡슐화
- H/W 제어에 요구되는 복잡한 기능을 감추고 간단한 인터페이스를 제공(폴더와 파일로 가상 머신을 구조화)
- 격리
- 장애 및 보안 발생 시 캡슐화되어 있는 가상 머신을 분리
- H/W 독립화
- 하나의 물리적 머신 안에서 가상 머신을 독립적으로 가동
서버 가상화
서버 가상화의 이해
- 1960년대부터 다수의 IT 리소스 관리와 운영의 어려움을 보완하기 위한 목적으로 연구 및 개발이 이루어짐
- 컴퓨터 시스템에서 내부적으로 가상의 기능과 구성 요소를 만들어 내기 위해 적용
- 서버 가상화의 분류
- 호스트 가상화 방식
- 하이퍼바이저 가상화 방식
- 컨테이너 방식
호스트 가상화 방식
- HW에 설치된 호스트 OS 상에 가상화 SW가 설치되고 그 위에 SW 실행을 위한 게스트 OS가 구동되는 방식
- 호스트 OS
- 직접적인 하드웨어 관리
- 게스트 OS
- 가상 머신에게 소프트웨어 실행 환경 제공
![image.png]()
- 호스트 OS
- 호스트 가상화 소프트웨어 종류
- VMWare Workstation
- Microsoft Virtual Server
- Oracle Virtual Box
- 호스트 가상화의 장점
- 게스트 OS가 HW 리소스에 접근하는 것을 제어하고 동기화하기 때문에 호스트 OS에 제약이 없음
- 호스트 가상화의 단점
- 호스트 OS와 게스트 OS의 공존으로 필요 이상의 CPU, 디스크, 메모리 사용의 오버헤드 발생
하이퍼바이저 가상화 방식
- 특정 OS에 의존하지 않고 하드웨어에 직접 설치되는 구조의 가상화 기술
- 오버헤드 비용이 적음
- 하드웨어를 직접 관리하여 리소스 관리가 유연함
![image.png]()
- 하이퍼바이저 소프트웨어 종류
- VMware ESXI
- Microsoft Hyper-V
- Citrix XenServer
하이퍼바이저 가상화 방식 분류
- 전가상화(full-virtualization)
- H/W를 완전히 가상화하는 방식
- 관리용 가상 머신 DOMO를 통해 게스트 OS들의 커널 요청을 번역하여 하드웨어로 전달
- 병목 현상으로 인한 성능 저하 발생
![image.png]()
- 반가상화(para-virtualization)
- 게스트 OS가 하이퍼콜을 요청할 수 있도록 커널이 수정된 형태
- 리눅스와 같은 오픈소스 OS 이외에는 반가상화가 어려움
![image.png]()
컨테이너 가상화 방식
- 컨테이너
- 애플리케이션을 동작시키는데 필요한 라이브러리 및 종속 리소스를 함께 패키지로 묶어 생성한 호스트 OS상의 논리적인 구역
- 컨테이너의 장점
- 게스트 OS의 실행에 소요되는 오버헤드가 없어 상대적으로 고속으로 작동
- 애플리케이션에서 사용하는 미들웨어나 라이브러리의 버전이 상이하여 발생하는 문제를 컨테이너를 통한 격리로 해결
![image.png]()
Docker
- 대표적 오픈소스 컨테이너 엔진(런타임)
- 반가상화보다 더 경량화 된 방식을 사용하는 리눅스 컨테이너를 기반으로 이미지 생성과 배포에 특화

Kubernetes
- 컨테이너 분산 배치, 상태 관리 및 구동 환경을 관리해 주는 도구
Kubernetes v1.2(2022년 5월)부터 도커 지원 중단
![image.png]()
연습 문제
다음 중 클라우드 컴퓨팅의 가상화 방식이라고 할 수 없는 것은?
a. 플랫폼 가상화
- 현재 클라우드 컴퓨팅의 가상화 방식은 호스트 가상화, 하이퍼바이저 가상화, 컨테이너 가상화 방식으로 구성 됨
- 호스트 OS 상에 가상화 SW와 게스트 OS를 설치하여 가상화하는 방식을 호스트 가상화라고 함
- 호스트 OS 없이 하이퍼바이저라고 불리우는 가상화 OS상에 게스트 OS만 설치하는 가상화 방식을 하이퍼바이저 가상화 방식이라고 함
- 게스트 OS 없이 호스트 OS 상에 컨테이너 엔진 만을 설치하고 애플리케이션과 실행 환경을 이미지로 묶어 가상화 할 수 있는 방식을 컨테이너 방식이라고 함
다음 중 서버 가상화의 역할이라고 할 수 없는 것은?
a. S/W 독립화
- 가상화 소프트웨어의 역할은 파티셔닝, 캡슐화, 격리 및 H/W 독립화임
지문의 그림은 어떤 서버 가상화 방식에 대한 설명인가?
![image.png]()
a. 하이퍼바이저 가상화 - 전가상화
- 하이퍼바이저는 하드웨어에 직접 설치되어 가상 환경을 구성하는 가상화 방식이며 CPU 가상화 지원 기능을 사용하는 전가상화와 하이퍼콜을 통해 가상화를 지원하는 반가상화 방식으로 구분됨
정리 하기
- 가상화 기술은 애플리케이션, 서버, 스토리지, 네트워크와 같은 IT 리소스를 논리적으로 분할/통합하여 리소스의 이용률과 가용성을 높이는 기술임
- 가상화 소프트웨어의 역할은 파티셔닝, 캡슐화, 격리 및 H/W 독립화임
- 서버 가상화는 컴퓨터 시스템에서 내부적으로 가상의 기능과 구성 요소를 만들어 내는 역할을 수행함
- 서버 가상화는 호스트 가상화, 하이퍼바이저 가상화, 컨테이너 가상화 방식으로 구분 됨
- Docker는 반가상화보다 더 경량화 된 방식을 사용하는 리눅스 컨테이너를 기반으로 이미지 생성과 배포에 특화되었음






