클라우드 컴퓨팅(Cloud Computing)
은 유틸리티 컴퓨팅(Utility Computing)
을 실체적으로 잘 구현한 모델이라고 할 수 있다. 이 때 유틸리티 컴퓨팅
이란, 사용한 만큼 비용을 지불하는 공공 서비스와 유사하다. 필요할 때 필요한 만큼 컴퓨팅 자원을 제공받고, 사용한 만큼 비용을 지불하는 것이다.
클라우드 컴퓨팅
은 on-demand
형태로 사용자가 원하는 computing service를 as-a-service
형태로 제공하는 것이 주 목적이라고 할 수 있다.
클라우드 컴퓨팅
의 메인 특징을 알아보자.
- pay-per-use (사용한 만큼 비용을 지불한다.)
- elastic capacity (탄력적으로 공급이 가능하다.)
- illusion of infinite resources (무한정에 가까운 것처럼 자원을 제공한다.)
- self-service interface (폰뱅킹처럼, self-service가 가능하다.)
- abstracted or virtualized resources (자원들이 추상화, 가상화된다. 내부 동작은 알 수 없으나 사용하는데 지장은 없다.)
이 때 클라우드를 단순히 컴퓨팅 자원과 storage라고 생각할 수도 있는데, 그렇지만은 않다. cloud provider 들은 Saas
와 PaaS
도 제공하기 때문이다.
클라우드 컴퓨팅은 갑자기 혜성처럼 등장한 기술이 아니다. 하드웨어, 인터넷 기술, 시스템 관리, 분산 컴퓨팅 등 다양한 분야에서 기술들이 성숙되고 결합
되면서 클라우드 컴퓨팅이 탄생
하는 데 기여를 했다고 할 수 있다.
클라우드 컴퓨팅 기술을 통해 기존에는 집에 있는 컴퓨팅 자원을 활용했다면, 이제는 인터넷을 통해 클라우드 회사에 접속하여 컴퓨팅 자원을 제공받는 형태로 변화하게 되었다. 이러한 현상은 약 100년 전 공장이 직접 자체적으로 전기를 생산하다가 전기를 국가로부터 공급받게 변한 형태와 유사하다.
이러한 현상은 From Mainframes to Cloud
라고 정의내릴 수 있다. 그렇다면, Mainframe 로부터 Cloud 로 변화한다는 것이 과연 무엇이 좋을까?
가격이 더 저렴한 서비스를 선택
할 수 있게 되는 것이다. 컴퓨팅 자원을 마련하기 위해 초기 투자를 하는 것보다 클라우드 시스템
을 제공받는 것이 더 저렴
하기 때문이다. 또한, mainframe 일 때의 관리 인력 등을 감축
해 인건비 또한 절약
할 수 있게 된다.on-demand
만큼 좋은 것은 없을 것이다.TCO(Total Cost of Ownership)
란, 장비 운용 비용을 말한다. TCO를 절약할 수 있으며 투자 대비 이익을 증대시킬 수 있다.Grid Computing
란, 지리적으로 흩어져 있는 클러스터들을 묶어서 하나의 커다란 가상의 클러스터
를 만들어 보자는 방법이다. 이러한 방식은 관리자마저 다른 것들까지 모아 공유하고 클러스터를 만들겠다는 것이다. 주로 과학 분야를 타겟으로 삼았다.
하지만 이러한 Grid Computing
은 여러 단점을 가진다.
Qos : Quality of Service
)은 어려웠다. 왜냐하면, 한 사용자의 활동이 다른 사용자의 활동에 영향을 끼쳤기 때문이다. 따라서, time-critical
application(deadline)에는 적합하지 않았다.portability barrier
가 굉장히 컸다. 이말은 즉슨, 내가 개발한 응용 프로그램을 grid 상에서 실행시킨다고 했을 때, 다양한 환경에 지원하기 힘든 상황
이 있음을 말한다.그러나, 클라우드 컴퓨팅
의 하드웨어 가상화 기술
은 다양한 형태의 서로 다른 응용 프로그램을 지원할 수 있으며, 데이터 센터의 운영상의 여러 문제(portability barrier)
들을 극복
해 내는 것에 최고였다.
물리적인 하나의 플랫폼에서 다양한 운영체제, 소프트웨어가 실행될 수 있도록 하는 것이 가상화 기술
이다. 가령, VMM(Virtual Machine Monitor, hypervisor 이라고도 불림.)
은 VM(Virtual Machine)
의 guest OS
에 맞출 수 있도록 해준다.
위 사진을 보면 이전에 정리 문서에서 봤던 Type1 Hypervisor
임을 알 수 있다. 여기서, 가상머신들이 하드웨어에 접근할 때 hypervisor
은 host OS
의 역할을 어느 정도 맡아 이를 통제 및 관리
하는 역할을 수행하게 된다. 각각의 가상 머신들 입장에서는 어떤 시스템 위에서 동작되는지가 크게 중요하지 않다. 하드웨어가 가상화되어 각각의 가상머신에 제공받는 형태이기 때문이다. 하지만, 소프트웨어는 어떤 운영체제를 기반으로 실행되는지 안다. 그러므로 소프트웨어는 다른 가상머신이 실행된다고 해서 프로그램 실행에 영향을 전혀 받지 않는다. 이것은 Performance isolation
이다. 위에서 보았던 Grid Computing
에 비해 개선된 점을 보여 준다.
가상 머신들끼리의 영향이 미치지 않기 때문에 reliability가 높다. 이러한 하드웨어 가상화 기술로 3가지의 이점이 있는데, 각각 Isolation(고립)
, Consolidation(합병, 통합)
, Migration(이주)
이다.
Workload isolation
: VM 내에서 실행된 소프트웨어는 다른 VM에 영향을 끼치지 않는다.보안이 좋다.
신뢰성이 높다.
더 나은 성능
을 보인다.다양한 운영체제를 실행
시킬 수 있다.workload migration
을 하는 경우가 생긴다. 실행 중인 가상머신을 이동
시키는 것이다.멈췄다가(suspend)
잠시 저장하고(fully serialized : 하드웨어 등에 저장하는 것)
이전(migrate)
하여 다른 플랫폼에서 재실행
한다.이상 클라우드컴퓨팅 2주차 강의 정리를 마치도록 한다.