클라우드 컴퓨팅(Cloud Computing)

기술/클라우드컴퓨팅 2017. 2. 25. 12:58 Posted by 아는 개발자

서버 장치와 인터넷의 성능이 급격히 발전하면서 모든 연산 작업을 사용자가 갖고 있는 단말기 내에서 처리할 필요 없이 인터넷을 이용해 제 3의 공간(서버, 클라우드)에서 처리 할 수 있게 되었다. 인터넷을 이용해 필요한 컴퓨팅 자원(서버, 스토리지, 애플리케이션, 서비스)을 어디서나 접근 및 이용 가능한 형태를 클라우드 컴퓨팅 서비스라고 한다.


개념적으로만 설명하면 어려우니 쉽게 예를 한 번 들어보자. 사용자 음성인식은 컴퓨팅 연산 작업과 데이터의 양이 많이 필요한 인공지능 서비스다. 입력된 목소리 값과 비교해야 할 기존 데이터 값도 많고 사용한 알고리즘도 단순한 작업들이 아니다. 비교 데이터 값을 모두 단말기 내에서 저장하기엔 용량이 부족하고 알고리즘 연산들을 모두 처리하기엔 하드웨어 성능이 딸린다. 또한 주기적으로 서비스를 업데이트 하려면 각 개개인의 단말기 별로 데이터 값을 바꿔줘야 하는 어려움이 있다.


차라리 사용자들이 자신의 목소리가 저장된 파일을 제 3의 공간에 전달하고 거기서 목소리를 인식 필요한 연산들을 모두 수행 한 후 사용자에게 결과 값을 전달 한다면? 단말기 내에서선 필요한 연산의 양이 적게 되고, 서버 내에서는 인식에 필요한 데이터 값과 알고리즘을 독자적으로 관리 할 수 있어서 간편하다. 클라우드 컴퓨팅은 고용량 데이터 처리 연산을 제 3의 공간에서 수행 할 수 있도록 지원하는 기술이다.


(S-Voice는 클라우드 서비스로 동작하고 있기 때문에 휴대폰 데이터와 wifi를 끄면 작동하지 않는다)


물론 클라우드 컴퓨팅의 형태가 항상 이런 모델만 갖는 것은 아니다. S-Voice는 클라우드 컴퓨팅 기술을 이용해 소프트웨어를 제공하는(Saas) 서비스 모델이다. 각 사용의 목적에 따라서 크게 세가지 사용 모델이 존재한다.

  1. 서비스로서의 인프라스트럭처(IaaS): 가장 기본적인 형태의 클라우드 모델이다. 서버 하드웨어 전체를 하이퍼바이저(Xen, VMware, KVM등등)을 이용해 가상화해 사용자가 필요 할 때 마다 가상머신을 생성해 제공하는 형태이다. 여기서 만들어진 가상 머신은 하드웨어가 장착된 컴퓨터라 봐도 무방하며 로컬 환경에서 만든 작업물을 곧장 적용 할 수 있다. 이런 서비스 모델은 사용자 입장에서 경제적으로 매우 유용한데 별달리 장비를 살 필요가 없을 뿐더러 가상 머신의 하드웨어를 성능을 조정 할 수 있는 하이퍼바이저 덕분에 자신이 원하는 만큼 컴퓨팅 파워을 유동적으로 조정 할 수도 있다. AWS에서 제공하는 EC2가 가장 대표적인 예이다.

  2. 서비스로서의 플랫폼(PaaS): IaaS에서 쌩 운영체제를 제공했다면 PaaS에서는 여기에 프로그래밍 언어 실행 환경, 데이터베이스, 웹서버 같은 기능들을 넣어서 사용자들이 개발 할 수 있는 환경을 제공한다. 응용프로그램 개발자들은 별 다른 어려움 없이 소프트웨어 솔루션을 클라우드에 포팅 할 수 있다. 대표적으로 구글 APP 엔진, Heroku가 있다.

  3. 서비스로서의 소프트웨어(SaaS): IaaS와 PaaS처럼 개발 할 수 있는 환경을 제공하는 것이 아니고 단순히 서비스를 제공하는 형태이다. 대표적인 예로는 네이버 N드라이브나 구글 문서 같은 것이 있다. 특별히 단말기에 애플리케이션이나 장치를 설치하지 않아도 인터넷을 이용해 언제든지 접근 할 수 있다.

사용자가 따로 장비를 구매하고 설치하지 않아도 바로 사용 할 수 있고 게다가 컴퓨팅 파워를 자유 자재로 조정 할 수 있어 이상적인 기술 인 것은 맞다. 하지만 모든 자원들을 나의 로컬에서 관리하지 않고 다른 기업이 제공하는 서버에서 관리하기 때문에 보안의 위험이 있다. 실제로 미국의 한 연예인이 구글 클라우드에 자신의 누드 사진을 올렸다가 해킹으로 노출 되기도 했고(그래도 구글인데!), 드롭박스는 2014년에 침입으로 7,000,000건의 암호를 도난당하기도 햇다는 것을 보면 클라우드 환경에서 보안 사고들이 심심치 않게 터지고 있는 건 분명 한 것 같다. 별다른 보안 사고가 없더라도 호스팅으로 사용하고 있는 기업이 갑자기 망하거나 서비스를 중지해버리면 그동안 클라우드에 쌓아둔 데이터들은 어떻게 처리 될 지 사용자로서는 난감한 상황이다.

728x90

'기술 > 클라우드컴퓨팅' 카테고리의 다른 글

SDN과 NFV  (0) 2019.04.21
Kubernetes 소개  (0) 2018.06.23
오픈스택 구조 분석  (0) 2017.03.07
오픈스택이란?  (0) 2017.03.07
클라우드 가상화와 Docker  (2) 2017.03.05
클라우드 컴퓨팅(Cloud Computing)  (0) 2017.02.25