더보기

virtual machine이란?

 

가상 머신은 컴퓨팅 환경을 소프트웨어로 구현한 것, 즉 컴퓨터 시스템을 에뮬레이션하는 소프트웨어다.

가상머신상에서 운영 체제나 응용 프로그램을 설치 및 실행할 수 있다. 

vitural machine의 종류에는 VM Workstation, VMware Server, Virtual Box, Paralles Workstation 등이 있다.

 

 📌 가상머신의 특성

가상 머신을 사용하면 여러 운영체제나 시스템을 완벽히 독립된 채로 같은 컴퓨터에서 이용할 수 있다.

따라서 사용자가 하드웨어를 직접 혼자 쓰는 것처럼 느끼게 만든다. 이는 하드웨어나 VM 사이에서 중재해주는 하이퍼바이저 덕분이다.

 

 📌 단점

만약 하나의 물리적 시스템에서 여러 VM을 돌릴 경우 성능이 불안정해질 수 있으며 가상머신은 물리적 컴퓨터보다 파일 입출력 작업의 성능이 낮음 등 효율성이 떨어지며 실행 속도가 느리다는 단점이 있다.

 📌 Public cloud

퍼블릭 클라우드는 CSP가 인터넷 망을 통해 사용자에게 컴퓨팅 자원을 빌려주는 것이다.

이는 사용료를 지불하면서 빌려쓰는 방식으로 IT 자원에 대한 구매가 아닌 '구독'을 하고 사용한 만큼 사용료를 지불한다.

따라서 초기 토자 비용이 절감되기도 한다. 또한 클라우드는 정기적인 최신 성능 업그레이드가 이루어지기 때문에 시설 노후화에 대한 부담 감소가 있다. 그리고 OPEX 기반 환경이므로 CAPEX가 적고 특정 기업에 갇힐 확률이 적다.

하지만 클라우드에서 정보 유출 사고가 발생할 경우 detect가 힘들고 인터넷이 어떻게 끊길지 모른다는 단점이 있다.

이는 대체로 규모가 중-소인 기업에 적절하다.

 

 📌 Private cloud

프라이빗 클라우드는 자신의 온프레미스(on-premise)내에 클라우드 플랫폼을 구축해서 운영한다.

자체적으로 보안 시스템을 운영할 수 있고, 사용자의 필요와 요구에 따라 맞춤형 구축이 가능하다는 장점이 있다.

하지만 설치운영 비용인 CAPEX가 생기고 관리를 위한 전문가 고용이 필요하다는 단점이 있다. 또한 특정 기업에 갇힐 확률이 크다.

이는 규모가 큰 비지니스에 적절하다.

 

 📌 Hybrid cloud

하이브리드 클라우드는 public과 private cloud를 혼합한 형태이다. 보안이 중요한 것은 private cloud로, 신규 서비스나 이벤트 등 예측하기 어려운 대용량 데이터는 신속하게 자원을 확장할 수 있도록 public cloud에 배치하는 것이다. 이는 퍼블릭 클라우드의 유연성과 확장성, 비용 효율성을 누리면서 보안 걱정을 덜 수 있다.

출처: 클라우드컴퓨팅서비스 보안관리 5주차 pdf

 

📌 IaaS (Infrastructure as a Service)

IaaS는 이용자가 서버나 스토리지 같은 하드웨어 자원을 빌려쓰기 때문에 데이터, 처리 기능, 도구 및 운영 관리에 대해 높은 수준의 제어를 가지고 있다.

따라서 이용자는 환경구성부터 응용 서비스 등에 대한 전반적인 책임이 있으며 CSP는 하드웨어 가용성이나 유지보수 정도의 책임만 가진다.

즉, OS, data, application, middleware, runtime을 담당하고 CSP는 network, server, virtualization, storage 관리와 액세스를 담당한다.

 

 📌 PaaS (Platform as a Service)

PaaS는 CSP가 애플리케이션이나 서버가 실행되는 환경을 제공한다. 즉, 소프트웨어 서비스를 개발할 때 필요한 플랫폼을 제공한다.

따라서 이용자는 데이터 처리 및 관련 풀, 응용 프로그램에 대한 책임이 있으며 CSP는 OS 환경 구성이나 시스템 패치 등에 대한 책임이 있다.

 

 📌 SaaS (Software as a Service)

SaaS는 CSP가 애플리케이션이나 소프트웨어를 서비스 형태로 제공하는 것으로 이용자는 데이터 관리에 대한 책임만 가지고 CSP는 데이터, 미들웨어부터 서버, 스토리지 같은 모든 기술 문제에 대한 책임이 있다.

 📌 Time Sharing

프로세서가 한 번에 하나의 프로세스를 처리할 수 있기 때문에 하나의 프로세스가 무거운 작업을 수행한다면 다른 프로세스들은 처리 기회를 얻지 못한다.

따라서 OS는 CPU 스케줄링을 통해 SJF, FIFO와 같은 방법으로 여러 프로세스가 효율적이고 공평하게 처리되도록 한다.

클라우드 서비스는 Time Sharing을 통해 여러 사용자가 공평하고 빠르게 처리된다고 느낄 것이다.

 

 📌 Resource Pooling

Resource Pooling은 자원을 미리 확보한 후 클라우드 환경에서 사용자가 원할 때마다 자원을 할당해주고 다시 회수한다.

예를 들어, 도서관(Pool)에서 책(Resource)을 사람들이 원할 때마다 빌리고(할당) 반납(회수)하는 것과 같다.

공유되는 자원은 유연하고 효율적으로 관리되며, 이는 가상화를 통해 구현할 수 있다.

 📌 과대자원, 과소자원이 나오게 된 배경

그래프와 같이 사용자의 요구 자원은 시간이 흐름에 따라 대체로 일정하게 증가한다.

하지만 컴퓨터의 성능은 선형적으로 증가하지 않는다. 여기서 과대자원, 과소자원의 개념이 나온다.

 

 📌 과대자원

사용자의 요구 자원보다 성능이 좋은 경우 과대자원이라고 한다. 즉, 자원이 넉넉한 경우이다.

클라우드 관점에서 사용자가 원하는 자원의 수준보다 성능이 높기 때문에 서비스 제공에는 문제가 없지만 자원이 남게 되어 가동률이 낮아짐에 따라 예산의 낭비가 있을 수 있다.

 

 📌 과소자원

반대로 요구자원보다 성능이 안좋은 경우 과소자원이라고 한다. 즉, 자원이 부족한 경우이다.

클라우드 관점에서 비용이 절약되어 좋지만 그만큼 서비스 제공에 제약이 있을 수 있다.

 

 📌 결론

비용 절약과 서비스 제공 사이에서 타협점을 찾는 것이 중요한데, 이성적으로는 사용자의 요구 자원 수준보다 살짝 높은 성능을 제공하는 것이다.

+ Recent posts