[Cloud] 01. 클라우드 컴퓨팅 개념 - 1

Date:     Updated:

카테고리:

태그:


01. 클라우드 관련 용어



용어 설명
클라우드 컴퓨팅 클라우드 컴퓨팅은 사용자의 직접적인 관리 없이 데이터 스토리지와 컴퓨팅 파워와 같은 컴퓨터 시스템 리소스를 필요시 바로 온디맨드 방식으로 제공하는 것을 말한다. 클라우드 컴퓨팅이라는 용어는 인터넷을 통해서 사용자가 사용할 수 있는 데이터 센터를 설명하는데 사용된다.
온디맨드(on-demand) 온디맨드의 의미는 사용자가 원하는 시점에 원하는 자원을 쓸 수 있다는 것을 의미한다. (클라우드 컴퓨팅을 이야기할 때 자원의 유연성이 자주 언급되는 이유가 바로 이 온디맨드의 특성을 클라우드 컴퓨팅이 가지고 있기 때문이다.)
데이터 센터 데이터 센터는 컴퓨팅 인프라를 인터넷을 통해서 사용자가 필요로 하는 자원을 제공한다. (이 때문에 클라우드 컴퓨팅을 바라볼 때 자원을 제공하는 데이터 센터의 관점과 데이터 센터의 자원의 효율성을 높이는 관점에서 살펴볼 필요가 있는 것이다.)
컴퓨팅 컴퓨팅은 컴퓨터를 사용하는 모든 활동으로 다양한 목적을 위해 정보를 관리, 처리, 전달하는 것이다.


02. 클러스터링



02-1. 컴퓨팅 성능을 높이기 위해서는 …

컴퓨팅의 성능을 높이기 위해서는 하드웨어적인 성능을 높여야 하는데, 대표적으로 컴퓨팅 성능과 관련된 것은 다음과 같다.

구분 성능 개선
CPU CPU의 클럭 스피드를 높여 치리 속도를 개선
메모리 메모리의 크기를 증가시켜 처리량을 높임

하지만 CPU의 속도와 메모리의 크기를 확대하여 성능을 개선하는 방식은 한계가 있다.

구분 한계
CPU 클럭 스피드가 높아질수록 CPU의 온도는 상승하고 CPU는 허용 온도를 넘어설 경우 오동작을 하게 되므로, 쿨링 팬을 통해 냉각을 해주어야 한다. 발열이 발생할수록 쿨링 팬은 열을 방출하기 위해 더 많은 전기를 필요로 하고 결국 비용이 상승하게 되는 문제가 발생된다.
메모리 메모리는 컴퓨터의 메인보드에 장착할 수 있는 메모리 뱅크의 수는 정해져 있기 때문에 무한대로 높이는 것이 불가능하다.


02-2. 클러스터링

클러스터 컴퓨터는 독립된 컴퓨터를 네트워크를 연결하여 마치 하나의 컴퓨터처럼 활용하는 방법으로 위키피디아에서의 컴퓨터 클러스터는 느슨하게(loosely) 또는 강력하게(tightly) 연결되어 작업을 처리하는 컴퓨터로 마치 하나의 단일 시스템으로 보인다.

구분 설명
느슨한 연결 서로 다른 기관(organization) 또는 데이터 센터에 속한 컴퓨터를 연결할 경우를 가정하면 이해하기 쉽다. 이 경우는 컴퓨터가 속한 데이터 센터의 정책에 따라 컴퓨터의 활용이 제약을 받을 수 있기 때문에 느슨한 연결이라고 한다.
강력한 연결 동일한 데이터 센터 내의 컴퓨터를 연결하는 경우이다. 이 경우는 동일한 성능을 가지는 컴퓨터를 동일한 데이터 센터 내에서 연결하는 경우가 일반적이다.

컴퓨터를 어떤 방식으로 연결하든지 간에 클러스터 컴퓨터는 네트워크로 연결된 컴퓨터가 마치 하나의 컴퓨터로 보이게 하고 대용량의 컴퓨팅 용량을 확보할 수 있다는 것이다. 이러한 자원을 이용하는 컴퓨팅이 바로 클러스터 컴퓨팅의 핵심 개념이 된다.

예를 들어, 한 개의 작업이 처리하는 데 걸리는 시간이 1시간이고 400개의 작업을 처리할 때 한 대의 컴퓨터를 이용한다면 400시간이 필요하고, 클러스터 환경이라면 4대의 컴퓨터에서 각각 100개의 작업을 수행하면 작업이 완료하는 데 걸리는 시간은 100시간이다.


03. 클러스터 컴퓨팅과 클라우드 컴퓨팅의 차이



03-1. 컴퓨팅 자원의 활용

상황 설명
(1) A 컴퓨터에서 작업을 처리하는 데 24시간 풀로 기동되고 있지만 다른 컴퓨터(B)에서는 일부 시간 동안 사용되지 않는 컴퓨팅 자원이 있는 경우
(2) A 컴퓨터의 리소스는 24시간 100% 사용 중이고 다른 컴퓨터(B)는 24시간 가동 중이기는 하나 전체 컴퓨팅 리소의 30% 만 사용하는 경우

이러한 컴퓨팅 자원을 활용하는 방법으로 중재자(broker)를 이용하는 방법이 있다. 중재자는 사용자의 자원 요청을 받아, 요청 시점에 필요한 자원이 있는지 확인하고, 유휴자원이 있다면 요청한 곳에 자원을 할당하여 작업을 처리할 수 있도록 한다. 이는 유휴한 컴퓨팅 자원을 활용하여 컴퓨팅 자원의 낭비를 줄이고 작업 처리 속도를 증가시키는데 도움이 된다.

하지만 위에서 말한 두 상황 모두 컴퓨팅 자원의 활용도를 높일 수 있지만, 작업의 속도와 안정성은 담보할 수 없다.

문제점 설명
(1) A에서 B로 전송된 작업이 B의 환경과 맞지 않아 작업이 완료되지 못하는 경우, 이로 인해 전체 작업 완료 시간이 늘어날 수 있다.
(2) A의 작업이 B로 전송되어 실행되는 중에 시스템 전체에 영향을 주는 작업을 수행하면, 이는 A의 작업뿐만 아니라 B의 작업에도 영향을 미칠 수 있습니다.


03-2. 컴퓨팅 자원을 활용과 안정성

A 컴퓨터의 작업이 B 컴퓨터에 영향을 미치는 문제를 해결하기 위해, A와 B의 작업을 분리하고 관리하는 방법이 필요한데, 이러한 역할을 수행하는 중재자를 ‘하이퍼바이저(hypervisor)’라고 한다.

하이퍼바이저는 물리적 자원을 여러 대의 독립된 가상 자원(가상 컴퓨터)으로 관리한다. 이를 통해, 가상 컴퓨터에서 수행되는 작업이 문제를 일으켜도 해당 문제는 해당 가상 컴퓨터에만 귀속되며, 다른 가상 컴퓨터나 물리적 시스템에는 영향을 주지 않는다.

즉, 하이퍼바이저를 통해 A의 작업과 B의 작업을 분리하고, 작업에 문제가 생겨도 다른 작업이나 시스템에 영향을 주지 않도록 관리함으로써, 컴퓨팅 자원의 활용도를 높이고 시스템의 안정성을 유지할 수 있다.


03-3. 클러스터 컴퓨팅과 클라우드 컴퓨팅의 차이

222111


▶ 클러스터링하여 성능 향상

클러스터링을 통해 컴퓨팅 성능을 향상시키는 방법의 기반이 되는 기술은 오케스트레이션이고, 오케스트레이션은 유휴한 컴퓨팅 자원을 네트워크를 통해 연결한다. 대표적인 예가 그리드 컴퓨팅과 클러스터 컴퓨팅이다.

구분 설명
클러스터 컴퓨팅 고속의 근거리 통신망(LAN)으로 연결된 여려개의 컴퓨터를 이용해 하나의 컴퓨터처럼 작동하는 시스템
그리드 컴퓨팅 WAN으로 연결된 원거리 컴퓨터들을 하나의 시스템으로 묶어 고도의 연산처리 작업등을 처리한 컴퓨팅 기술, 분산 컴퓨팅이라고도 한다.


▶ 자원을 분리하여 성능 향상

자원을 분리하여 유휴자원의 성능을 향상시키는 방법의 기반 기술은 하이퍼바이저가 개입되는 방법이고, 하이퍼바이저의 기반 기술은 가상화이다. 가상화 기반으로 자원의 효율성을 높이는 대표적인 예가 바로 클라우드 컴퓨팅이다.


▶ HTC(High Throughput Computing)

위 두 방법의 핵심기술은 다르지만, 궁극적인 목표는 활용성을 높이기 위한 것이다. 유휴자원의 활용성을 높여 처리량을 높이는 컴퓨팅기술을 HTC(High Throughput Computing)이라고 부르며, 그리드 컴퓨팅과 클라우드 컴퓨팅이 이 범주에 속한다.

HTC와 대비되는 개념은 HPC(High Performance Computing)이고, HPC는 슈퍼컴퓨터와 같이 빠른 계산을 목적으로 하는 컴퓨팅이다.

(예를 들어, 슈펴컴퓨터를 통해 태풍의 진로를 예측한다고 가정할 때 슈퍼컴퓨터의 자원을 효율적으로 사용하여 태풍의 진로를 계산하였다고 하더라도 결과가 태풍이 지나간 후에 도출된다면 아무런 의미가 없기 때문이다. 하지만 HTC는 조금 시간이 걸리더라도 유휴한 자원을 최대한 활용하여 많은 양을 처리하고자 하는 것이 기본이다.)


04. 클러스터 컴퓨팅 서비스



04-1. 클라우드 컴퓨팅 - 데이터 센터 운영 3대 이슈 해결

구분 설명
자원의 활용성 데이터 센터에 도입된 인프라는 비용을 투자한 시설이기에 비용적 관점에서 낭비 없이 활용되기를 원한다. 바로 가상화 기술을 중심으로 한 클라우드 컴퓨팅은 자원의 활용성을 높일 수 있다.
안정성 데이터 센터에서 제공하는 수많은 서비스들 중에서 하나가 문제가 생겨 다른 서비스들까지 영향을 준다면 데이터 센터의 운영에 큰 문제가 된다. 가상화 기술을 적용한 데이터 센터는 문제가 되는 서비스를 다른 서비스와 쉽게 분리해 냄으로써 안정적인 서비스가 가능하다.
빠른 복구 서비스를 복구할 때 수많은 서비스에 대해 필요한 패키지들을 하나씩 설치하고 테스트하여 재실행하는 것은 많은 시간과 노력이 필요하다. 가상화 기술을 통해 서비스들은 모두 이미지로 만들 수 있고 이미지는 단순한 파일이기 때문에 쉽게 이동과 관리가 가능하다. 이미 충분히 검증된 가상컴퓨팅 자원을 이미지화하여 서비스에 문제가 발생한다면 검증된 이미지를 이용하여 새로운 서비스를 생성하면 그만이다.


04-2. 클라우드 컴퓨팅 서비스 관리 부분

infrastructure-as-a-service-iaas-800x435-1

구분 설명
온프레미스(on-premise) 물리시스템에 모든 서비스 기능을 사용자가 직접 구축하는 것
IaaS(infras as a Service) 물리적 머신을 가상머신으로 제공해주는 서비스, 클라우드 서비스 제공자가 가상서버를 생성할 수 있는 가상화 기능이 탑재된 물리머신을 제공한다. 사용자는 제공자가 제공하는 기능을 이용하여, 자신에 맞는 가상서버를 생성할 수 있다. 이렇게 생성된 가상서버에 필요한 기능과 서비스는 모두 사용자 몫이다.
PaaS(Platform as a Service) IaaS 서비스 위에 플랫폼을 만들어 서비스를 제공하는 것, 클라우드 서비스 제공자가 가상서버를 생성하고 가상서버에 필요한 플랫폼까지 제공하는 것이다. 사용자는 가상서버와 플랫폼에 관여하지 않고 오직 플랫폼에서 동작하는 애플리케이션과 데이터만을 관리하고 설정한다.
SaaS(Software as a Service) 소프트웨어를 서비스하는 것, 서비스에 필요한 애플리케이션을 포함한 모든 환경을 제공하는 것이다. 사용자는 서비스를 위해 관리할 부분이 전혀 없이 오직 클라우드 서비스 제공자가 제공하는 애플리케이션을 활용하면 된다.


04-3. 클라우드 서비스를 가능하게 하는 기술 - 가상화

가상화는 컴퓨터 시스템을 여러 개의 가상컴퓨터로 만들 수 있는 기반 기술로, 가상화 기술을 실제로 구현한 것이 하이퍼바이저(hypervisor)이다. 컴퓨터를 이루고 있는 장치들을 크게 CPU, 메모리, I/O 장치 3개로 구분할 수 있는데, 가상화를 한다면 CPU 가상화, 메모리 가상화, I/O 장치 가상화가 된다.

Type-1-and-type-2-hypervisors

가상화 타입 설명
베어메탈 방식(Type 1, 네이티브) 물리시스템 위에 하이퍼바이저가 설치되는 방식
호스티드 방식(Type 2) 물리시스템 위에 운영체제가 올라가고 운영체제 위에 하이퍼바이저가 설치되어 동작하는 방식

image

가상화 구현 방식 설명
전가상화 게스트OS가 수정되지 않은 상태로 동작, 하이퍼바이저상에서 동작하는 게스트OS가 자신이 가상화 환경에서 동작하고 있음을 인지하지 못한다. 즉, 물리시스템에 접근하기 위해서는 반드시 하이퍼바이저의 개입이 필요하게 되어 성능 측면에서 오버헤드가 필연적으로 발생할 수 없다.
반가상화 수정된 게스트OS가 동작, 하이퍼바이저에서 동작하는 게스트OS는 자신이 가상화 환경에서 동작하고 있음을 인지하고 있다. 이를 위해서는 게스트OS의 수정이 필요한데, 이는 하이퍼바이저가 제공하는 API를 하이퍼 콜(hypercall)을 통해 호출하게 함으로써 성능을 개선하는 것이다. 반가상화의 경우는 성능 개선에는 효과가 있다고 볼 수 있지만 게스트OS가 수정되어야 하기 때문에 리눅스와 같은 오픈소스 운영체제에 주로 적용되고 있다.


04-4. 가상머신 관리 툴

가상머신은 하이퍼바이저사에서 동작하기에 하이퍼바이저를 통해서 관리할 수 있다. 하지만, 하이퍼바이저는 모든 물리시스템에 설치되어야 하고 해당 시스템의 가상머신만을 해당 하이퍼바이저가 관리하기 때문에 대규모의 물리시스템을 운영하고 있는 데이터 센터에서는 직접적으로 하이퍼비이저를 통한 가상머신의 관리는 어려울 수밖에 없다.

이를 해결하기 위해서는 가상머신을 관리할 수 있는 툴이 필요한데, 대표적으로 오픈스택(Openstack)과 오픈네뷸라(OpenNebula)와 같은 가상머신 오케스트레이션 툴이 있다.


04-5. 그리드 컴퓨팅

그리드 컴퓨팅의 핵심 개념은 전 세계적으로 유휴한 컴퓨팅 자원을 네트워크를 통해 활용하는 것이다. 그리드 컴퓨팅에 속한 데이터 센터는 필요한 작업이 없을 때 자신의 자원을 외부에 공유하여 유휴상태를 방지하고, 다른 작업이 자원을 사용 중일 때 새로운 작업이 들어오면 우선순위를 조정하여 새로운 작업을 처리한다.

그리드 컴퓨팅의 중요한 기술은 ‘리소스 오케스트레이션’으로, 이는 가용한 자원을 찾고, 알리며, 작업들과 매칭하는 역할을 한다. 실제 사용자는 작업을 제출할 때 일반적으로 어디에서 작업이 실행될지 지정하지 않는다. 대신 그리드 컴퓨팅 시스템이 작업의 속성과 요구사항을 분석하여 제출된 작업을 처리해줄 수 있는 적합한 데이터 센터의 컴퓨팅 자원과 매칭한다. 이를 위해 그리드 컴퓨팅 시스템은 지속적으로 네트워크를 통해 통신하며 자원의 활용 상태를 확인하고 모니터링하게 된다.

CLOUD 카테고리 내 다른 글 보러가기

댓글 남기기