기본 개념
- 클라우드 컴퓨팅
- 데이터 스토리지나 컴퓨팅 파워 같은 컴퓨터 시스템 리소스를 온디맨드 방식으로 제공하는 것이다.
- 즉, 원하는 시점에 컴퓨팅 자원을 쓸 수 있다.
- 이때 컴퓨팅이란 컴퓨터를 사용하는 모든 활동이다.
- 컴퓨터 1대의 성능은 하드웨어 구성에 영향을 받을 수밖에 없다.
- 컴퓨팅 성능을 높이기 위해서 컴퓨터를 병렬로 묶는
클러스터링(clustering)
을 고려해볼 수 있다. - 클러스터 컴퓨터는 독립된 컴퓨터를 네트워크로 연결해 마치 하나처럼 활용하는 방법이다.
- 아무리 많은 작업을 해도 컴퓨팅 자원을 100% 활용하기는 힘들다.
top
리눅스 명령어를 통해 CPU 사용량을 볼 수 있다.Processes: 411 total, 3 running, 408 sleeping, 1741 threads 00:19:00 Load Avg: 2.06, 4.04, 5.82 CPU usage: 12.38% user, 8.33% sys, 79.28% idle
- 각 작업에 영향을 주지 않으면서 유휴자원을 분리/중재할 필요가 있다.
유휴자원을 활용하는 방법
- (1) 클러스터링을 통해 성능을 높임
오케스트레이션(orchestration)
기술을 기반으로 한다.- 오케스트레이션은 유휴한 컴퓨팅 자원을 네트워크를 통해 연결한다.
- 그리드 컴퓨팅, 클러스터 컴퓨팅이 대표적인 예다.
- (2) 유휴한 컴퓨팅 자원을 논리적으로 분리해 처리량을 높임
하이퍼바이저(hypervisor)
기술을 기반으로 한다.- 하이퍼바이저는 물리적 자원을 여러 대의 가상 자원으로 관리할 수 있다.
- 이의 기반 기술은 가상화(virtualization)이며, 클라우드 컴퓨팅이 대표적인 예다.
HTC vs HPC
- 클라우드를 통해 제공된 컴퓨팅 자원들이 네트워크를 통해 그리드 컴퓨팅으로 구현될 수 있다.
- HTC(High Throughout Computing): 유휴자원의 활용성을 높여 처리량을 높이는 컴퓨팅 기술이다.
- 그리드 컴퓨팅, 클라우드 컴퓨팅
- 이더넷(ethernet)과 같은 일반적인 네트워크로 연결
- HPC(High Performance Computing): 빠른 계산을 목적으로 하는 컴퓨팅 기술이다.
- 슈퍼컴퓨터
- 인피니밴드(infiniband)와 같은 고속 네트워크로 연결
- 따라서 클라우드 컴퓨팅은 HTC의 관점에서 바라보아야 한다.
클라우드 컴퓨팅 서비스 종류
IaaS(Infrastructure as a Service)
- 물리적인 머신을 가상머신으로 제공한다.
- 호스트의 개념으로 서버만 가지고 있다.
- ex) AWS EC2를 통해 물리적인 서버나 스토리지가 없어도 서버로 활용할 수 있다.
PaaS(Platform as a Service)
- IaaS 서비스 위에 플랫폼을 만들어 서비스를 제공한다.
- 빌드 툴의 개으로 서버와 미들웨어/OS를 가지고 있다.
- ex) Netlify, Heroku, Vercel을 통해 정적 자원들을 서빙할 수 있다.
SaaS(Software as a Service)
- 소프트웨어를 서비스하는 것을 의미한다.
- ex) 구글의 Gmail을 통해 원하는 기능들을 사용한다.
- 사용자 입장에서 서버와 미들웨어/OS 및 애플리케이션까지 가지고 있다.
클라우드 서비스를 가능케 하는 기술
- 가상화(virtualization)는 컴퓨터 시스템을 여러 개의 가상컴퓨터로 만들 수 있는 기반 기술이다.
- 크게 CPU, 메모리, I/O 장치들을 가상화해야 한다.
- 가상화 기술을 이용해 실제로 구현한 것이 바로 하이퍼바이저다.
하이퍼바이저의 2가지 타입
- (1) 베어 메탈(bare metal) 방식
- 네이티브 방식이라고도 하며, 물리시스템 위에 하이퍼바이저가 설치되는 방식이다.
- Xen, KVM, Hyper-V
- (2) 호스티드(hosted) 방식
- 물리시스템 위에 운영체제가 올라가고 그 위에 하이퍼바이저가 설치되어 동작하는 방식이다.
- VirtualBox, VMWare Player
HTC의 또 다른 예: 그리드 컴퓨팅
- 그리드 컴퓨팅의 핵심은 전 세계적으로 유휴한 컴퓨팅 자원을 네트워크를 통해 활용하자는 것이다.
- 중요한 점은 자원을 제공하는 데이터 센터 간 연계가 느슨하게 연결된다는 것이다.
- 그리드 컴퓨팅에 속한 데이터 센터는 작업이 없을 경우 자신의 자원을 외부에 공유한다.
- 그러면 컴퓨팅 자원이 유휴상태가 되는 것을 방지할 수 있다.
- 가용한 자원을 찾고 알리는 것, 작업들을 가용 자원과 매칭하는 것이 핵심 기술이다.
- 이를
리소스 오케스트레이션(resource orchestration)
이라고 한다.
연습문제
-
클라우드 컴퓨팅에 대한 정의를 기술해보라.
- 데이터 스토리지나 컴퓨팅 파워 같은 컴퓨터 시스템 리소스를 온디맨드(우리가 원하는 시점에 원하는 자원을 쓸 수 있다는 것) 방식으로 제공하는 것이다.
-
컴퓨팅의 성능, 용량을 늘리는 방법들은 무엇이 있는가?
- 컴퓨터의 하드웨어 성능 높이기(CPU/메모리 등)
- 클러스터링(독립된 컴퓨터들을 네트워크로 연결하여 하나의 컴퓨터로 사용)
-
클라우드 컴퓨팅과 그리드 컴퓨팅의 공통점은 무엇이고 차이점은 무엇인가?
- 공통점: 자원 활용성 높이는게 목표이며 HTC에 속함
그리드(클러스터)컴퓨팅
: 클러스터링 사용, 오케스트레이션 기반, WAN클라우드 컴퓨팅
: 자원분리 사용, 가상화기반(하이퍼바이저), LAN
-
자원의 활용성(utilization)을 높이기 위한 방법에 대해서 설명하라.
- 특정시간동안 사용되지 않는 컴퓨터 유휴자원 활용(중재자 필요)
- 작업의 로드가 작은 컴퓨팅 자원의 활용(중재자 필요)
- 가상화 기술을 중심으로 한 클라우드 컴퓨팅 활용
-
가상화와 오케스트레이션에 대해 설명하라.
오케스트레이션 가상화 설명 클러스터링을 통해 컴퓨팅 성능을 향상시키는 방법의 기반이 되는 기술 자원을 분리하여 성능 향상 서비스(컴퓨팅) 그리드 컴퓨팅, 클러스터 컴퓨팅 클라우드 컴퓨팅 중재자 네트워크 통신 하이퍼 바이저(= 가상머신 모니터) 특징 • 중재자에게 필요한 자원 요청 • 요청 받은 시점에 유휴자원 찾아서 자원 할당
• SETI@HOME 프로젝트(화면 보호기 소프트웨어 동작) | • 컴퓨팅 자원 내에서 수행되는 중재자
• 물리적 자원을 여러 대의 가상 자원(독립된 논리적인 컴퓨터)으로 관리
• 분리된 가상 컴퓨터들로 시스템 안정성 증가(서로 영향을 주지 않음) | -
HTC와 HPC의 차이점을 설명하라.
HTC(high throughput computing) HPC(high performance computing) 정의 유휴자원의 활용성을 높여 처리량을 높이는 컴퓨팅 기술 빠른 계산을 목표로 하는 컴퓨팅 기술 네트워크 이더넷(일반 네트워크) 인피니밴드(고속 네트워크) 범주 그리드 컴퓨팅, 클라우드 컴퓨팅 슈퍼 컴퓨터 예시 화물차 스포츠카 -
아마존과 클라우드의 관계에 대해 설명하라. (AWS 탄생비화)
- 아마존은 전자상거래 기업으로써, 늘어나는 트랜잭션을 처리하기 위해 컴퓨팅 파워를 갖춰야 했다.
- 그러나 그 컴퓨팅또한 특정 분기에 높고 낮은 추이를 보였다.
- 이러한 추이에 따라 컴퓨팅 자원에 유휴자원이 발생하게 되었다. 아마존은 이러한 유휴한 컴퓨팅 자원을 가상화를 통해 판매를 하였다.
-
컴퓨터를 가상화할 때 크게 3개의 범주는 무엇이고 각각 가상화는 어떻게 되는지 조사하라.
- CPU, 메모리, I/O(입출력) 장치들
- CPU 가상화: Base가 되는 HostOS위에 GuestOS가 구동되는 방식 (virtualBox, VMware player등)
- 하이퍼바이저가상화: HostOS없이 하드웨어에 하이퍼바이저를 설치하여 사용하는 방식 (Xen, hyper-v, citrix, KVM)
전가상화
: 하드웨어를 완전히 가상화, 관리용 가상머신인 DOM0를 통해 모든 가상머신 하드웨어 접근이 이루어짐반가상화
: 하이퍼콜 인터페이스를 통해 하이퍼바이저에게 직접 요청
- 컨테이너 가상화: HostOS위에 컨테이너 관리 소프트웨어를 설치하여 논리적으로 컨테이너를 나누어 사용 (ex. Docker)
-
그리드 컴퓨팅의 개념에 대해서 설명하라.
- HTC에 속한다.
- 전세계적으로 유휴한 컴퓨팅자원을 네트워크를 통해 활용 자원을 제공하는 데이터 센터간 연계가 느슨
- ex. torrent
-
HTC, HPC, 그리드 컴퓨팅, 클라우드 컴퓨팅, 활용성, 오케스트레이션, 가상화, 슈퍼컴퓨터와 같은 용어를 논리적으로 연계하여 설명하라.
- 자원의
활용성
을 높여서 처리량을 높이는 컴퓨팅 기술을HTC
라고 부른다. HTC
에는 그리드 컴퓨팅과클라우드 컴퓨팅
이 속한다.그리드 컴퓨팅
은 독립된 여러 컴퓨터들을오케스트레이션
으로 네트워크를 통해 하나의 컴퓨터처럼 연결하여 유휴자원의활용성
을 높이 방법이다.클라우드 컴퓨팅
은 자원을 분리하여 유휴자원의 성능을 향상시키는 방법으로 하이퍼바이저가 개입되는 방법이다. 하이퍼바이저는 A의 작업과 B의 작업을 분리하여 영향도가 없게 해, 유휴 자원의 활용도를 높여주는 중개자이다.HPC
는HTC
의 반대 개념으로,HPC
는슈퍼컴퓨터
와 같이 빠른 계산을 목적으로 하는 컴퓨팅으로 오직 빠른 계산을 목표로 한다.
- 자원의
-
데이터 센터 운영의 3대 이슈를 설명하고 클라우드 컴퓨팅을 통해서 해결할 수 있는지 논하라.
자원의 활용성
: 투자된 설비를 유휴자원 없이 최대로 활용해야 하며 이를 위해 가상화 기술을 중심으로 한 클라우드 컴퓨팅을 적용한다.안정성
: 작업을 분리하여 안정성을 높인다. 가상화 기술을 적용한 데이터 센터는 문제가 되는 서비스를 다른서비스와 쉽게 분리해 냄으로써 안정적인 서비스가 가능하다.빠른복구
: 서비스에 문제가 생겼을때, 가상화기술을 통해 생성해낸 이미지 파일을 이용하여 새로운 서비스를 생성해 내고, 빠르게 서비스를 복구 할 수 있다.
-
클라우드 컴퓨팅에 대한 다양한 정의가 존재한다. 클라우드 컴퓨팅을 정의할 때 가상화 기술은 필수적인가? 이에 대해 논하라.
- 클라우드 컴퓨팅은 네트워크를 통해 물리적인 컴퓨팅 자원을 활용하는 것을 의미하기에, 이때 가상화를 통해 적절한 자원 분배와 수행을 진행 할 수 있기때문에 필수적이다.
-
클라우드 컴퓨팅을 자원 활용의 관점에서 보는 것은 지엽적인가? 지엽적(minor)이라면 활용성 관점이 아닌 다른 관점에서 클라우드 컴퓨팅의 응용은 무엇이 있는가?
- 놀고 있는 컴퓨팅 자원 활용의 관점 → 지엽적이지 않다! 중요하다! 이걸 못하면 매출에도 영향이 간다! 운영비(트래픽은 동적인데 무조건 큰 서버를 써야 되니까)가 너무 많이 들 것이다!
- 아마존 사례, IaaS
- 활용성의 관점에서는 Gmail같은 SaaS가 있다.