개인정보보호, 소프트웨어 정책
클라우드 컴퓨팅(Cloud Computing)이란
클라우드 컴퓨팅 개념
“클라우드 컴퓨팅”은 서로 다른 물리적인 위치에 존재하는 컴퓨터들의 리소스를 가상화 기술로 통합해 제공하는 기술을 말한다. 즉, 개인용 컴퓨터나 기업의 서버에 개별적으로 저장해 두었던 프로그램이나 문서를 인터넷으로 접속할 수 있는 대형 컴퓨터에 저장하고, 개인 PC는 물론이고 모바일 등 다양한 단말기로 웹 브라우저 등 필요한 애플리케이션을 구동해 원하는 작업을 수행할 수 있는 이용자 중심의 컴퓨터 환경을 말한다. 아직 클라우드 컴퓨팅 서비스가 이루어진 것은 아니지만, Google DOCs(Google), Work Space(Microsoft), Acrobat.Com(Adobe) 등에서 제한적으로 클라우드 컴퓨팅 서비스가 제공되고 있다.
클라우드 컴퓨팅 정의
“인터넷 기술을 활용하여 다수의 고객들에게 높은 수준의 확장성을 가진 IT 자원들을 ‘서비스’로 제공하는 컴퓨팅.” – 가트너
“표준화된 IT 기반 기능들이 IP을 통해 제공되며, 언제나 접근이 허용되고, 수요의 변화에 따라 가변적이며, 사용량이나 광고에 기반한 과금모형을 제공하며, 웹 혹은 프로그램적인 인터페이스 제공을 제시한다.” – 포레스터 리서치
클라우드 컴퓨팅은 다양한 응용 프로그램들을 수용할 수 있는 잘 관리되고 높은 확장성을 갖는 추상화된 컴퓨팅 인프라의 집합이라고 정의할 수 있다. 이러한 개념은 유틸리티 컴퓨팅이나 서비스로서의 소프트웨어(Software As A Service, SaaS), 그리고 그리드(Grid) 컴퓨팅 개념들이 혼합된 개념이다. 즉, 하드웨어적인 또는 소프트웨어적인 컴퓨팅 자원을 사용한 만큼 비용을 지불한다는 사용자 측면에서는 유틸리티 컴퓨팅이나 SaaS와 유사하고, 분산된 여러 컴퓨팅 자원을 취합하여 하나의 컴퓨팅 자원처럼 사용할 수 있도록 제공한다는 자원 제공자 측면에서는 그리드 컴퓨팅의 개념이라고 할 수 있다.
클라우드 서비스의 주요 특성
- 표준화된 IT 기반 기능
- IP망을 통한 접근
- Always on과 수요에 따른 확장성 지원
- 사용량이나 광고기반 과금
Web 혹은 Programmatic 기반 Control Interface클라우드 컴퓨팅은 Web 2.0, Software as a service 과 같이 최근 잘 알려진 기술 경향들과 연관성을 가지는 일반화된 개념이다. 이들 개념들의 공통점은 사용자들의 컴퓨팅 요구를 만족시키기 위해 인터넷을 이용한다는 사실이다. 예로서 Google Apps가 있다. 웹 브라우저로 이용할 수 있는 일반적인 비즈니스 응용프로그램들을 온라인으로 제공한다. 소프트웨어와 데이터는 서버에 저장된다.사용자들은 어떤 장소에서든 인터넷 접속과 기본적인 연산기능만 있는 단말기를 가지고 있으면 인터넷을 통해 대용량의 저장장치와 고성능 컴퓨팅 리소스가 필요한 작업들을 수행하고, 고도화된 서비스들도 이용할 수 있게 된다. 이런 의미에서 클라우드 컴퓨팅은 향후 유비쿼터스 시대를 구현하게 될 핵심 컴퓨팅 환경으로 언급된다.
사용자들은 서비스 제공자가 제공하는 서비스 카탈로그를 통해 원하느 서비스를 요청하고, 서비스 제공자의 시스템관리 모듈은 이 같은 요청에 대하여 가상화된 서버 네트워크를 통해 필요한 리소스를 조달하게 된다. 사용자들은 서비스를 이용만 할 뿐 어떻게 서비스가 제공되고, 자신의 데이터와 정보가 어디에 보관되는지, 어느 곳에 위치한 서버가 활용되는지 등 세부적인 정보는 알지 못한다.
클라우드 서비스 아키텍쳐
클라우팅 컴퓨팅과 타 컴퓨팅의 비교
주요개념 | 클라우팅 컴퓨팅과의 관계 | |
Grid
Computing |
높은 컴퓨팅 리소스를 필요로 하는 작업의 수행을 위해 인터넷 상의 분산된 다양한 시스템과 자원들을 공유하여 가상의 수퍼컴퓨터와 같이 활용하는 방식(분산 컴퓨팅 아키텍쳐) | Grid 방식의 분산 컴퓨팅과 Utility 개념의 과금모형을 혼합한 컴퓨팅 방식 그리드 : 인터넷상의 모든 컴퓨팅 리소스 클라우드 : 서비스제공 사업자의 사유서버 네트워크 |
Utility
Computing |
컴퓨팅 리소스를 구매하거나 소유하지 않고, 가스, 전기 등과 같이 유틸리티로 필요할 때 마다 사용하는 방식(사용량 기반 과금 모형) | |
Server Base
Computing |
서버에 어플리케이션과 데이터를 두고 필요할 때마다 접속해서 사용하는 방식(클라이언트는 입,출력만 처리. 모든 작업은 100% 서버가 처리-Thin Client 방식) | 클라우드 컴퓨팅은 가상화된 분산 컴퓨팅에, SBC는 특정 기업의 서버에 중심을 둔다는 차원에서 개념적으로 구분, 그러나 SBC가 발전으로 점차 구분이 모호해 짐 |
Network
Computing |
SBC와 비슷하나, 어플리케이션을 서버에서 로드하여 로컬에서 수행하는 형태(이용자의 CPU를 사용하여 동작) | 이용자의 컴퓨팅 리소스보다는 클라우드 상의 IT 리소스를 사용하므로 개념적 구분 |
SaaS | 서비스 제공자의 서버에 저장된 SW를 인터넷으로 통해 서비스로 이용하는 SW 딜리버리 모형 | 클라우드 컴퓨팅은 모든 IT자원을 서비스로 활용한다는 차원에서 보다 SaaS를 포함하는 포괄적인 개념 |
클라우드 컴퓨팅 기술
주요기술 | 개념 및 의미 | 요소기술 |
가상화 기술 | – 물리적인 하드웨어의 한계를 넘어서 시스템을 운용할 수 있는 기술 – 여러 대의 전산자원을 마치 한 대처럼 운영하거나 한 대의 전산자원을 마치 여러 대의 자원처럼 나눠서 이용 |
Resource Pool, Hypervisor, 가상 I/O, Partition Mobility 등 |
대규모 분산처리 | – 대규모(수천 노드 이상)의 서버 환경에서 대용량 데이터를 분산처리하는 기술 | 분산처리기술 |
오픈 인터페이스 | – 인터넷을 통하여 서비스를 이용하고 서비스 간에 정보 공유를 할 수 있는 인터페이스 기술 – 클라우드 컴퓨팅 기반의 SaaS, PaaS 등에서 기존 서비스에 대한 확장 및 기능 변경 등에 적용 |
SOA, Open API, Web Service 등 |
서비스 프로비저닝 | – 서비스 제공자가 실시간으로 자원을 제공하는 기술 – 서비스 신청부터 자원 제공까지의 업무를 자동화하여 클라우드 컴퓨팅의 경제성과 유연성 증가에 기여 |
자원 제공 |
자원 유틸리티 | – 전산자원에 대한 사용량을 수집하고, 이를 바탕으로 사용한 만큼만 비용을 지불하도록하는 기술 개념 | 사용량 측정, 과금, 사용자 계정관리 등 |
SLA(서비스 수준관리) | – 외부 컴퓨터 자원을 활용하는 클라우드 컴퓨팅의 특성상 서비스 수준이라는 계량화된 형태의 운영 품질 관리 필요 | 서비스 수준 관리 체제 |
보안 및 프라이버시 | – 외부 컴퓨팅 자원에 기업 또는 개인의 민감한 정보를 저장함에 따라 해당 정보에 대한 보안이 주요한 이슈로 부각 | 방화벽, 침입방지기술, 접근권환 관리 기술 등 |
다중 공유 모델 | – 하나의 정보자원 인스턴스를 여러 사용자 그룹이 완전히 분리된 형태로 사용하는 모델 – 소프트웨어 서비스(SaaS)를 제공하는 데 필수 요소 |
– |
클라우드 컴퓨팅과 가상화의 차이
가상화
가상화는 단일한 물리 하드웨어 시스템에서 여러 시뮬레이션 환경이나 전용 리소스를 생성할 수 있는 기술이다. 하이퍼바이저라 불리는 소프트웨어가 하드웨어에 직접 연결되며 1개의 시스템을 VM(가상 머신)이라는 별도의 고유하고 안전한 환경으로 분할할 수 있다. 이러한 VM은 하이퍼바이저의 기능을 사용하여 머신의 리소스를 하드웨어에서 분리한 후 적절하게 배포한다.
클라우드 컴퓨팅
클라우드 컴퓨팅은 네트워크 전체에서 컴퓨팅, 네트워크, 스토리지 인프라 리소스, 서비스, 플랫폼, 애플리케이션을 사용자에게 온디맨드로 제공하는 접근 방식이다. 이러한 인프라 리소스, 서비스, 애플리케이션은 클라우드, 즉 관리와 자동화 소프트웨어를 통해 오케스트레이션되는 가상 리소스 풀에서 소싱되므로 사용자는 자동 스케일링과 동적 리소스 할당이 지원되는 셀프 서비스 포털을 통해 온디맨드로 클라우드에 액세스할 수 있다.
가상화 | 클라우드 | |
---|---|---|
정의 | 기술 | 방법론 |
목적 | 1개의 물리적 하드웨어 시스템에서 다수의 시뮬레이션 환경 생성 | 온디맨드 사용을 위한 가상 리소스 풀링과 자동화 |
용도 | 특정 용도의 패키징된 리소스를 특정 사용자에게 제공 | 다양한 용도의 다양한 리소스를 사용자 그룹에 제공 |
설정 | 이미지 기반 | 템플릿 기반 |
평균 수명 | 연 단위(장기) | 시간/월 단위(단기) |
비용 | 높은 CAPEX(자본 지출), 낮은 OPEX(운영 비용) | 프라이빗 클라우드: 높은 CAPEX, 낮은 OPEX 퍼블릭 클라우드: 낮은 CAPEX, 높은 OPEX |
확장성 | 스케일 업 | 스케일 아웃 |
워크로드 | 스테이트풀(Stateful) | 스테이트리스(Stateless) |
테넌시 | 싱글 테넌트 | 멀티플 테넌트 |
클라우드 컴퓨팅의 속성
- 기민한 탄력성 : 자원을 필요한 만큼 동적으로 확장하거나 축소.
- 종량제 서비스 : 얼마만큼 그리고 어떤 식으로 사용했는지 모니터링을 통하여 사용자에게 통지 및 이를 기준으로 이용료를 부과.
- 주문형 셀프서비스 : 관리자의 개입 없이 사용자가 원하는 때에 자원을 신청해서 바로 사용.
- 유비쿼터스 네트워크 : 네트워크를 통해서 다양한 디바이스에서 접근.
- 리소스 풀링 : 자원을 가상화해서 중앙집중적으로 관리하기 때문에, 개별 사용자에게는 멀티테넌시 방식으로 독립적인 자원을 제공.
- 클라우드 컴퓨팅의 장점
- 저비용 : 클라우드 네트워크는 고효율로 운영되기 때문에 높은 활용성과 상당한 비용 절감을 가져옵니다.
- 쉬운 사용성 : 제공되는 서비스의 형태에 따라서, 사용자는 자신의 서비스를 구현하기 위한 하드웨어 또는 소프트웨어 라이센스가 필요하지 않습니다.
- QoS(Quality of Service) : QoS는 벤더로부터 계약된 대로 서비스의 품질을 얻을 수 있습니다.
- 신뢰성 : 공급자는 사용자에게 매우 신뢰성 있는 클라우드 컴퓨팅 네트워크 규모, 로드밸런싱과 fail-over를 제공합니다.
- 외주 운영 : 클라우드 서비스로 사용자가 자신의 사업을 관리할 때 사용자의 컴퓨팅 인프라는 공급자가 관리해줍니다. 사용자는 클라우드 서비스를 통해 IT인력 비용을 감소시킬 수 있습니다.
- 단순화된 운영과 업그레이드 : 시스템이 가상 머신에 집중화되어 있기 때문에, 사용자는 패치와 업그레이드를 쉽게 할 수 있습니다. 때문에 사용자는 항상 최신 버전의 소프트웨어를 사용할 수 있습니다.
- 낮은 진입장벽 : 공급자의 시스템을 사용하는 것이므로 사용자는 초기에 기기를 구입할 필요가 없습니다. 따라서 초기 자본 지출은 크게 감소합니다.클라우드 컴퓨팅은 일반적으로 제공 자원과 구축 방법을 기준으로 구분하고 있다.
클라우팅 컴퓨팅의 분류
-
프라이빗 클라우드(Private Cloud) : 프라이빗 클라우드의 구조는 폐쇄적으로 운영되며 인프라는 해당기관 또는 타사에 의해 관리됩니다.
-
퍼블릭 클라우드(Public Cloud) : 퍼블릭 클라우드 인프라는 거대 IT산업에서 공개적으로 사용할 수 있으며 클라우드 서비스를 판매한 업체에 의해 소유됩니다.
-
커뮤니티 클라우드(Community Cloud) : 공통으로 사용해야 하는 기능이나 목적을 위해 만들어진 클라우드 배치 모델입니다. 목적, 정책, 보안, 규제요구사항 등을 공유합니다.
-
하이브리드 클라우드(Hybrid Cloud) : 해당 조직의 유일한 정체성을 포함한 여러 가지 클라우드 배치모델(공공,사설)의 조합입니다.
클라우팅 컴퓨팅의 Service 모델
-
IaaS(Infrastructure as a Service) : 서버, 스토리지, 네트워크를 가상화 환경으로 만들어 필요에 따라 인프라 자원을 사용할 수 있도록 서비스를 제공하는 형태. IaaS 서비스 공급자는 사용자들이 서로 다른 개발 목적을 가지고 있어도 인프라를 관리해줍니다. 즉, 운영체제, 애플리케이션, 시스템에 대한 사용자 인터페이스 등을 모두 관리할 수 있습니다.
-
PaaS(Platform as a Service) : 사용자에게 가상머신, 운영체제, 애플리케이션, 서비스, 개발 프레임워크, 트랜젝션, 관리구조 등을 제공하는 형태. 사용자는 클라우드 인프라상에 있는 애플리케이션을 제공할 수 있으며 PaaS 서비스 공급자가 지원해주는 언어와 툴로 프로그램된 애플리케이션을 사용할 수 있습니다. 서비스 공급자는 클라우드 인프라, 운영체제, 사용 가능한 소프트웨어를 관리하며 서비스를 사용하는 동안 해당 애플리케이션을 설치, 관리하는 책임은 사용자가 가집니다.
-
SaaS(Software as a Service) : 공급업체의 중앙서버에 있는 소프트웨어나 애플리케이션 중 고객이 필요한 기능만을 네트워크를 통해 서버에 직접 접속해 이용하거나 다운로드해서 이용하는 방식의 소프트웨어 제공 모델. 클라이언트 인터페이스를 통해서 사용자에게 애플리케이션을 제공하고, 사용자는 애플리케이션과 사용자간의 상호작용을 하면서 마칠 때까지 데이터를 관리할 책임이 주어집니다. 애플리케이션 다운로드부터 인프라 구축까지 모든 과정이 서비스제공자에게 책임이 주어집니다.
클라우드 컴퓨팅을 구축하기 위한 플랫폼들은 다양하며, 오픈소스 플랫폼은 대표적으로 클라우드스택(CloudStack)과 오픈스택(OpenStack)이 있다.