Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

  • 2011/3/13

Contents

클라우드 컴퓨팅

클라우드 컴퓨팅은 일반 인터넷 사용자가, 사용하고자 하는 서비스의 물리적인 위치나 설정, 사용하는 장치에 상관없이 정보를 읽고 저장할 수 있도록 만들어 주는 컴퓨팅 기술을 의미한다.

요즘에는 광고에도 자주 나온다. 집에서 올리고 회사에서 내리고, 컴퓨터로 올리고 스마트폰으로 내리고...

역사

1990년대 이전 컴퓨터와 인터넷(:12)은 소수의 전문가들만이 사용가능한 도구였다. 그러나 저렴한 컴퓨터와 통신인프라망 그리고 WWW(월드 와이드 웹)의 등장으로 누구나 사용할 수 있을만한 도구가 되었다. 그러나 그럼에도 오랫동안 컴퓨터와 인터넷은 그다지 사용하기가 쉽지 않았다. 심지어는 지금도 사용하기가 그다지 쉬운 것은 아니다.

인터넷은 분산 네트워크 시스템을 지향하는데, 왠만한 파워유저가 아닌한은 네트워크에 분산되어 있는 자원을 효과적으로 다루는데 어려움을 느끼기 때문이다. 소프트웨어 개발자를 예로 들어보자. 소프트웨어 개발자는 인터넷 사용 측면에서 파워유저 혹은 전문가 집단에 속한다고 할만할 것이다. 그러나 인터넷 자원을 효율적으로 사용하느냐 하면, 그닥 그렇지도 않다는 걸 알 수 있을 것이다.

문서 관리를 예로 들어보자. 개발자들이 문서를 관리하는데 있어서 가장 큰 문제는 공통된 저장소를 가지고 있지 않다는 점이다. 문서들은 회사 컴퓨터, 개인 노트북, 이메일 등등 여기 저기 산재해 있는 경우가 많다.

또한 노트북, 데스크탑, 스마트폰, 태블릿 등 기기에 따라서 아예 접근이 안되거나 불편해지는 문제가 있다.

결국 인터넷 서비스 사용자는 다양한 도메인에 접근하기 위한 아이디/패스워드 정보를 기억하고 있어야 하며, 서비스 종류에 따라서 기기를 바꿔가면서 접근해야 하는 불편함을 가진다.

1990 초반까지는 이러한 불편함이 큰 문제가 되지 않았지만 인터넷이 점점더 공공재의 성격을 띄어가면서 조만간 문제가 되리라는 건 쉽게 예상할 수 있었다. 1990년대 중 후반부터 이슈로 떠오른 웹 사이트에 대한 브라우저 접근성에 대한 문제도 인터넷이 공공재로 인식되면서, 접근성을 보장받아야 한다는 요구에서 생겼다고 볼 수 있다.

이렇게 모든 데이터가 인터넷으로 모이고, 모든 기기가 인터넷으로 연결되면서 공공재로써 이들을 함께 묶어서 제공하기 위한 노력이 이루어지게 된다. 이때 부터 클라우드 컴퓨팅이라는 단어가 널리퍼지기 시작하는데, 대략 21C초부터다.

초기 클라우딩 컴퓨터는 SaaS에 집중되었으나 구글과 야후, 아마존등을 중심으로 범용적인 클라우드 컴퓨팅 기술에 대해서 연구 한다. 특히 아마존이 클라우드 컴퓨팅영역에 중요한 역할을 담당했다. 아마존은 S3(Simple Storage Service)를 이용 웹이라는 단일 통로로 사용자들이 하나의 도메인에 애플리케이션 데이터, 개인 및 기업 백업, 대역폭 확보가 가능하게 만들었다.

구글의 앨런 유스타스 부사장은 클라우딩 컴퓨팅은 세상의 모든 정보를 체계적으로 정리하고, 언제 어디에서나 접근 이용가능 하도록 만들겠다는 구글의 목적과 맞닿아 있다라고 말했다. 오래전 부터 구글은 자신의 도메인안에 데이터를 통합하고 색인하고 검색하기 위한 준비를 해오고 있다. 예컨데, 구글을 통해서 검색하고 구글 Docs를 이용해서 문서를 작성하고, Gmail을 이용해서 메일을 주고 받는다. Google Apps를 이용해서 커뮤니티를 만들 수도 있는데, 중소기업을 중심으로 사용 범위를 넓혀가고 있다. 장소와 기기에 상관없이 접근할 수 있다는 장점외에 저렴하다는 장점까지 더해져서 알게모르게 널리 사용되고 있다.

장점과 단점

클라우드 컴퓨팅으로 얻을 수 있는 이점은 다음과 같다. 이들 이점은 인터넷에 연결되어 있을 때 얻을 수 있다.
  • 이동성과 휴대성
데이터를 저장하기 위한 공간을 가지고 다닐 필요가 없기 때문에 이동성을 확보할 수 있다.
  • 비용 절감
우리가 사용하는 개인 PC 자원의 대부분은 놀고 있다. 아마도 PC자원의 20%도 채 사용하지 못할 것이다. 이는 80%정도의 낭비가 이루어짐을 의미한다. 클라우드 컴퓨팅은 연산과 저장공간을 만들고 이를 사용자에게 분배하는 방식으로 가용율을 높일 수 있으므로, 저렴하게 메모리와 연산공간을 사용할 수 있다. 예컨데, 구글 APPS를 이용하면 직접 구축하는 것의 10%이내의 비용으로 기업 정보 시스템을 구축할 수 있다.
  • 안정성과 신뢰
개인 PC에 저장하는 것보다 안전하게 데이터를 보관할 수 있다. 많은 클라우드 컴퓨팅 서비스가 유저의 데이터를 백업해 준다.

반면 단점들도 있는데, 데이터가 중앙에 집중됨으로써 발생하는 문제들이다.
  • 서버가 공격당할 경우 개인 정보가 유출될 수 있다.
  • 클라우드 컴퓨팅이 데이터 백업을 해주기는 하지만, 추가 비용을 부담해야 하는 경우가 대부분이다. 미리 백업하지 않은 정보는 되살리지 못하는 경우가 있을 수 있다. 물론 개인 컴퓨터에 저장을 한다고 해도, 백업하지 않은 정보를 되살리는 건 어려운 일이지만 자기가 제어할 수 있는 장비이기 때문에 비용을 들여서라도 복구할 수 있는데, 클라우드 컴퓨팅이라면 복구를 포기해야 할 것이다.
  • 사용자가 원하는 애플리케이션을 설치하는데 제약이 심할 수 있다. 내가 원하는 운영체제와 소프트웨어, 소프트웨어 버전을 지원하지 않는 경우가 많다. 이 문제는 가상화로 어느 정도 해결되어가고 있는 추세다.

클라우드 컴퓨터에 대한 비판

클라우드 컴퓨터는 소비자에게 편한 정보 환경을 제공해 줄 것 같다. 하지만 리차드:::스톨만(:12)과 같은 사람은 클라우드 컴퓨터에 대해서 비판적인 경고를 하기도 한다.

"자신의 컴퓨팅 활동을 오직 웹 기반 서비스안에서 쓰는 것은 자신의 통제권을 잃는 것이다. 그것은 상용 소프트웨어를 쓰는 것 만큼 나쁜 일이다. 컴퓨팅에 있어 자유를 제공하는 소프트웨어를 이용해서 여러분의 PC에서 여러분의 작업을 하라.여러분이 상용 소프트웨어를 쓰거나 누군가의 웹서버에 있는 애플리케이션을 사용하면 여러분은 정보에 대한 자신의 통제를 잃게 될 것이다."

리차드 스톨만의 철학을 이해하지 못한다면 좀 뜬금없는 소리로 들릴지 모르겠다. 리차드 스톨만은 반 자본주의적 성향을 가지고 있으며, 소프트웨어 분야에서 이에 대한 운동을 전개해가고 있다. 리차드 스톨만을 현실에서 떨어져 나간 생각을 하는 괴짜라고 평가하는 사람들도 있지만, 스톨만과 FSF(:12)덕분에 소프트웨어 영역에서 자유를 누릴 수 있게 됐으니 이에 대해서 감사할 필요가 있다.

왜 가마해야 하냐면, 소프트웨어 영역외에 어떤 산업영역도 소프트웨어 영역만큼 자유가 남아있는 영역이 없기 때문이다. 리차드 스톨만과 그의 일당들 덕분에 소프트웨어 영역에서 이만큼 자유를 누리고 있다는 것.

이러한 리차드 스톨만에게 있어서, 거대 기업에 정보통제권을 맡긴다는 것은 자신의 자유를 스스로 파괴하는 행위로 보였것이다.

그렇다고 클라우드 컴퓨팅은 써서는 안되는 기술이냐 하면, 생각하기 나름인 것 같다. 이 세상에는 반드시 쓰지 말아야 할 기술도 반드시 써야할 기술도 없다. 데이터 저장공간은 클라우드 컴퓨팅을 활용하되, 응용 애플리케이션은 자신의 PC에 가지고 있는 것으로 정보에 대한 통제권을 유지하는 방법도 생각해 볼 수 있지 싶다.

나 같은 경우에는 운영체제를 통제로 대여하고 있습니다. 물론 운영체제는 리눅스(:12)이고, 각종 애플리케이션도 제가 제어할 수 있는 자유 소프트웨어들이다. 이런 식으로 클라우드 컴퓨팅의 장점을 가지면서 통제권도 확보할 수 있지 않을까.

클라우드 컴퓨팅과 보안

클라우드 컴퓨팅은 인터넷을 언제, 어디에서나 접근할 수 있도록 함을 목표로 하며, 이를 위해 웹을 주요 기술로 사용한다. 웹이야 말로 브라우저만 있으면 어디에서나 접근 가능한 매체이기 때문이다.

하지만 역시 보안도 필수 사항이다. 특히 클라우드 컴퓨팅 서비스를 이용하려는 대상이 기업이라면 더욱 그럴 것이다.

기업은 예전터 VPN(:12)을 이용해서 회사 정보에 대한 보안을 유지해 왔는데, 클라우드 컴퓨팅에서도 비슷한 방법으로 보안 서비스를 제공할 수 있다. 여기에는 HTTPS(:12)가 핵심 역할을 담당할 수 있을 것으로 보인다. 이미 SSL:::VPN(:12)이 비슷한 이유로 개발되서 사용되고 있다.

리눅스와 cloud

클라우드 컴퓨터의 기본 개념은 인터넷이라는 단일 도메인을 통해서 모든 자원을 액세스 하겠다는 것으로, 한때 유행할 것 같았던 씬 클라이언트라가 이와 유사한 기술개념을 가지고 있었다. 씬 컴퓨터는 애플리케이션과 데이터를 서버에 저장해 놓고 개인 PC는 여기에 연결해서 사용하겠다는 개념으로 1990년대 중반에 등장했다. 지금의 클라우드 개념을 가진 매우 훌륭한 기술이긴 했지만, 대역폭과 컴퓨팅 파워와 같은 하드웨어 문제 그리고 병렬/그리드 컴퓨팅 기술과 같은 소프트웨어가 성숙하지 못한 관계로 관심만 끌다가 사그라들고 말았다.

이제 우리는 충분한 대역폭과 강력하지만 매우 저렴한 컴퓨터들 그리고 이들 저렴한 컴퓨터를 묶어주는 병렬/그리드 기술의 발달로 씬 클라이언트를 이용한 클라우드 컴퓨팅을 활용할 수 있데 됐다.

특히 리눅스(:12)는 씬 클라이언트를 이용한 클라우드 컴퓨팅 환경에서 주도적인 역할을 담당할 운영체제가 될 것으로 보인다. 2000년대 이전에는 대량의 데이터 처리는 몇 대의 강력한 컴퓨터가 도맡아하는 경우가 많았다. 일단 소수의 컴퓨터인대다가 그 비용이 워낙에 비쌌기 때문에, 소프트웨어 가격은 무시할만한 수준이였다.

그러나 지금은 다수의 저렴한 컴퓨터로 구성이 되므로, 운영체제의 라이센스 비용이 문제로 부각된다. 수천대 혹은 수만대의 PC급 컴퓨터로 구성된 데이터 센터를 만든다고 가정해보자. 상용 라이센서 운영체제를 사용한다면, 라이센스 비용만 해도 무시할 수 없을 것이다.

"오라클이 비싸긴 하지만 어차피 하드웨어 가격에 비하면 껌 값 입니다. 공개 소프트웨어 같은거 고민하지 말고 그냥 오라클 씁시다" 1990년대 초까지 기업에서 공개소프트웨어와 상용소프트웨어를 선택할 때 흔히볼 수 있는 장면이었고 상용 소프트웨어를 선택해야 하는게 합리적이였겠지만, 지금은 상황이 전혀 다르다. 상용 소프트웨어를 구입할 경우 (대량 구매일 경우 할인율이 적용되겠지만) 전체 구성 비용의 상당히 많은 부분을 소프트웨어 라이센스 구매비가 차지하게 된다.

비용보다 더 문제가 되는 것은 유연함이다. 인터넷 서비스는 매우 빠르게 진화하므로 그에 발을 맞추기 위해서는 소스코드에 대한 권한을 가지고, 상황에 맞게 수정하고 최적화 하는 작업이 필요하다. 그런데 상용 라이센스 운영체제의 경우 소스코드 수준에서의 권한을 가지기가 매우 힘들다.

무엇보다 운영체제에 대한 권한을 가진 회사가 운영체제(:12)의 독점적 소유권을 자신들을 공격할 무기로 삼을 수 있다는 점은 크나큰 위험요소다. 게다가 운영체제를 가진 회사는 사업영역이 겹치는 경우가 많다. 구글이 마이크로 소프트사의 윈도를 이용해서 서비스를 하는 경우를 생각해 보자.

리눅스는 이런 문제들에 대한 최선의 선택이 될 수 있다.

이미 리눅스는 데이터 센터를 비롯한 넷북, 스마트폰, 태블릿 PC에서 신 클라이언트를 위한 운영체제로 사용되고 있다. 이중 스마트폰과 태블릿 PC 그리고 데이터 센터 분야에서 리눅스의 성공은 확실해 보인다.

Apache Hadoop를 이용한 클라우드 컴퓨팅

공개 소프트웨어 진영에서는 Hadoop(:12)이라는 클라우드 컴퓨팅 환경을 위한 도구를 사용할 수 있다. Hadoop는 오픈소스 기반의 MapReduce(:12) 구현으로, 대량의 분산처리 시스템을 구현할 수 있다.