2주차(2) - Principles of Cloud Computing

Park Suyong·2020년 9월 9일
0

클라우드컴퓨팅

목록 보기
3/3

1. 클라우드 컴퓨팅

클라우드 컴퓨팅(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 들은 SaasPaaS도 제공하기 때문이다.


2. 클라우드 컴퓨팅의 뿌리

클라우드 컴퓨팅은 갑자기 혜성처럼 등장한 기술이 아니다. 하드웨어, 인터넷 기술, 시스템 관리, 분산 컴퓨팅 등 다양한 분야에서 기술들이 성숙되고 결합되면서 클라우드 컴퓨팅이 탄생하는 데 기여를 했다고 할 수 있다.

클라우드 컴퓨팅 기술을 통해 기존에는 집에 있는 컴퓨팅 자원을 활용했다면, 이제는 인터넷을 통해 클라우드 회사에 접속하여 컴퓨팅 자원을 제공받는 형태로 변화하게 되었다. 이러한 현상은 약 100년 전 공장이 직접 자체적으로 전기를 생산하다가 전기를 국가로부터 공급받게 변한 형태와 유사하다.
이러한 현상은 From Mainframes to Cloud 라고 정의내릴 수 있다. 그렇다면, Mainframe 로부터 Cloud 로 변화한다는 것이 과연 무엇이 좋을까?

소비자 측면

  • 소비자 입장에서는 가격이 더 저렴한 서비스를 선택할 수 있게 되는 것이다. 컴퓨팅 자원을 마련하기 위해 초기 투자를 하는 것보다 클라우드 시스템을 제공받는 것이 더 저렴하기 때문이다. 또한, mainframe 일 때의 관리 인력 등을 감축인건비 또한 절약할 수 있게 된다.
  • 예상하지 못한 컴퓨팅 needs에서 on-demand 만큼 좋은 것은 없을 것이다.

IT service provider 측면

  • 물리 서버로 고객을 대응하는 것보다 하나의 서비스를 몇 개의 가상화 서버로 쪼개서 운영하면 더 이윤을 창출할 수 있다.
  • 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 임을 알 수 있다. 여기서, 가상머신들이 하드웨어에 접근할 때 hypervisorhost OS의 역할을 어느 정도 맡아 이를 통제 및 관리하는 역할을 수행하게 된다. 각각의 가상 머신들 입장에서는 어떤 시스템 위에서 동작되는지가 크게 중요하지 않다. 하드웨어가 가상화되어 각각의 가상머신에 제공받는 형태이기 때문이다. 하지만, 소프트웨어는 어떤 운영체제를 기반으로 실행되는지 안다. 그러므로 소프트웨어는 다른 가상머신이 실행된다고 해서 프로그램 실행에 영향을 전혀 받지 않는다. 이것은 Performance isolation 이다. 위에서 보았던 Grid Computing에 비해 개선된 점을 보여 준다.

가상 머신들끼리의 영향이 미치지 않기 때문에 reliability가 높다. 이러한 하드웨어 가상화 기술로 3가지의 이점이 있는데, 각각 Isolation(고립), Consolidation(합병, 통합), Migration(이주) 이다.

Isolation

  • Workload isolation : VM 내에서 실행된 소프트웨어는 다른 VM에 영향을 끼치지 않는다.
  • 모든 프로그램의 instruction이 VM 내에 갇혀 벗어날 수 없으므로 보안이 좋다.
  • 에러가 발생한 VM은 그것 하나만 죽게 되므로, 신뢰성이 높다.
  • VM 내에서의 실행이 다른 VM에 영향을 끼치지 않으므로 더 나은 성능을 보인다.

Consolidation

  • 가상 머신을 활용하여 다양한 운영체제를 실행시킬 수 있다.

Migration

  • 하드웨어 유지, load balancing, 문제 복구 등의 원인으로 workload migration을 하는 경우가 생긴다. 실행 중인 가상머신을 이동시키는 것이다.
  • Guest OS를 잠시 멈췄다가(suspend) 잠시 저장하고(fully serialized : 하드웨어 등에 저장하는 것) 이전(migrate)하여 다른 플랫폼에서 재실행한다.
  • 다른 플랫폼으로는 VM ware, Xen Server, KVM, Docker 등이 있다.

이상 클라우드컴퓨팅 2주차 강의 정리를 마치도록 한다.

profile
Android Developer

0개의 댓글