- Published on
HW1. 클라우드 컴퓨팅의 정의와 가상화
- Authors

- Name
- seren-wib
Contents
클라우드 컴퓨팅 첫 번째 과제로 교재 1장 연습문제 다섯 개를 정리했다.
1. 클라우드 컴퓨팅의 정의
필요할 때마다 컴퓨터 자원을 빌려 쓰는 것. 전기, 가스, 수도처럼 쓰는 만큼 내는 유틸리티 컴퓨팅이다. 시작은 1961년 존 매카시가 말한 유틸리티 컴퓨팅이다.
| 출처 | 정의 |
|---|---|
| NIST | 5가지 특성, 3가지 서비스 모델, 4가지 배포 모델로 정의 |
| 가트너 | 확장 가능하고 탄력적인 IT 기능을 서비스 형태로 제공하는 컴퓨팅 방식 |
| 포레스터 리서치 | 인터넷 기술을 통해 사용량에 따라 과금하거나 셀프서비스로 제공되는 표준화된 IT 기능 |
연관 키워드
- 온디맨드 서비스(On-Demand Service), 유연성(Flexibility), 자원의 재활용
- 가상화(Virtualization), 데이터센터(Data Center)
- IaaS, PaaS, SaaS
- 프라이빗, 퍼블릭, 하이브리드 클라우드
- Amazon EC2, Google, Azure
2. 컴퓨팅의 성능과 용량을 늘리는 방법
가장 먼저 떠올리는 건 CPU, 메모리 같은 부품을 업그레이드하는 거다. 하지만 한 대의 컴퓨터를 키우는 데는 한계가 있다.
그래서 두 방향으로 간다.
- 클러스터링: 여러 컴퓨터를 묶어 하나의 목적으로 쓴다. 묶어서 성능을 올리는 건 오케스트레이션이 바탕이다.
- 자원 분리: 한 컴퓨터의 자원을 나눠서 여러 용도로 쓴다. 이건 가상화가 바탕이다.
3. 컴퓨터 가상화의 세 범주
가상화는 CPU 가상화, 메모리 가상화, I/O 가상화로 나뉜다.
가상화 방식
게스트 OS를 고치느냐에 따라 나뉜다.
- Full virtualization: 게스트 OS를 수정하지 않는다.
- Para virtualization: 게스트 OS를 수정한다.
하이퍼바이저
가상화를 구현하는 소프트웨어다. 설치 위치에 따라 두 가지로 나뉜다.
- Type 1 (native): 하드웨어 위에 하이퍼바이저를 바로 설치하고, 그 위에 가상머신을 올린다.
- Type 2 (hosted): 하드웨어 → 호스트 OS → 하이퍼바이저 → 게스트 OS 순서다.
범주별로 어떻게 가상화되는지
CPU 가상화
- 게스트 OS가 실행하는 특권 명령을 하이퍼바이저가 대신 처리한다.
- 게스트를 수정하지 않으면 하이퍼바이저가 명령을 가로채서 흉내 낸다.
- 게스트를 수정하면 그 명령을 hypercall로 바꿔 하이퍼바이저에 직접 요청한다.
메모리 가상화
- 주소 변환이 한 단계 늘어난다: 게스트 가상주소 → 게스트 물리주소 → 실제 물리주소.
- 하이퍼바이저가 섀도 페이지 테이블로 이 변환을 관리한다. VM 안의 물리주소는 가짜라서, 게스트 가상주소를 실제 주소로 바로 연결하는 테이블을 따로 두는 거다.
- 또는 수정된 게스트가 페이지 테이블을 바꿀 때 하이퍼바이저에 요청한다.
I/O 가상화
- 여러 VM이 디스크, 네트워크 카드 같은 물리 장치를 나눠 쓴다.
- 하이퍼바이저가 장치를 소프트웨어로 흉내 내거나, 게스트에 가상화 전용 드라이버(virtio 등)를 설치해 직접 통신한다.
4. HPC, HTC, 그리드, 클라우드는 어떻게 이어지나
| 키워드 | 한 줄 설명 |
|---|---|
| HPC | 빠른 계산이 목표. 슈퍼컴퓨터 |
| HTC | 처리량이 목표. 많은 작업을 처리하려고 노는 자원의 활용성을 높임 |
| 그리드 컴퓨팅 | 전 세계에 흩어진 쉬는 컴퓨터를 묶어 씀. 오케스트레이션 기반 |
| 클라우드 컴퓨팅 | 한 컴퓨터의 자원을 가상머신 단위로 나눠 씀. 가상화 기반 |
HPC는 하나의 계산을 빨리 끝내는 게 목표다. 슈퍼컴퓨터가 여기 해당한다.
처리량이 목표라면 HTC를 쓴다. 많은 작업을 처리해야 하니까 놀고 있는 자원을 최대한 활용하는 게 핵심이다.
HTC에 속하는 게 그리드 컴퓨팅과 클라우드 컴퓨팅이다. 둘 다 쉬는 자원을 활용한다는 역할은 같지만 구현 방식이 다르다.
- 그리드는 전 세계에 흩어진 유휴 컴퓨터들을 묶어서 쓴다. 그래서 오케스트레이션이 바탕이다.
- 클라우드는 하이퍼바이저로 한 컴퓨터의 자원을 가상머신 단위로 나눠서 쓴다. 이게 가상화다.
5. 데이터센터 운영의 3대 이슈와 클라우드
| 이슈 | 클라우드로 해결하는 방법 |
|---|---|
| 유휴 자원 찾기 (utilization) | 가상화로 유휴 자원을 가상머신 단위로 나눠 사용자에게 서비스로 제공 |
| 문제 서비스 분리 (service stability) | 하이퍼바이저가 가상머신끼리 격리해서 A의 작업이 B에 영향을 주지 않음 |
| 신속한 복구 (fast recovery) | 가상머신을 이미지로 저장해 두고 새로 띄우거나 다른 서버로 옮겨 빠르게 복구 |
세 이슈 모두 가상화로 풀 수 있다. 자원을 잘게 나누고, 서로 격리하고, 파일 하나로 통째로 옮길 수 있다는 가상머신의 성질 덕분이다.