Skip to content
Joshua Jung edited this page Jun 2, 2014 · 2 revisions

모식도 컴퓨터 네트워크 구성도에서 인터넷을 구름으로 표현한다. 이때 구름은 숨겨진 복잡한 인프라 구조를 의미한다. 사용자는 이러한 복잡한 인프라 구조를 알지 못해도 클라우드 컴퓨팅을 이용할 수 있다.

개요

클라우드 컴퓨팅(cloud computing)은 인터넷 기반(cloud)의 컴퓨팅(computing) 기술을 의미한다. 인터넷상의 유틸리티 데이터 서버에 프로그램을 두고 그때그때 컴퓨터나 휴대폰 등에 불러와서 사용하는 웹에 기반을 둔 소프트웨어 서비스이다.

정의

클라우드 컴퓨팅의 정의는 개인이 가진 단말기를 통해서는 주로 입/출력 작업만 이루어지고, 정보분석 및 처리, 저장, 관리, 유통 등의 작업은 클라우드라고 불리는 제3의 공간에서 이루어지는 컴퓨팅 시스템 형태라고 할 수 있다. 클라우드(Cloud)의 의미는 컴퓨터 통신망이 구름과 같은 것에 싸여 안이 보이지 않고, 일반 사용자는 이 복잡한 내부를 굳이 알 필요도 없이 어디에서나 구름 속으로 손을 집어넣어 자기가 원하는 작업을 할 수 있다는 것이다. 이른바 같은 체험을, 인터넷이 연결된 어디에서나 보장해주는 것.

의외로 복고 열풍

정확한 개념이 복잡한데, 작업 대부분을 온라인에 분산되어 존재하는 데이터 센터(Data Center, 이하 클라우드)에 맡겨 수행하고, 사용자의 컴퓨터는 클라우드에 접속하여 상호작용하는 단말기 역할만 하는 것이다. 이 때문에 모든 데이터와 연산 자원이 클라우드 안에만 존재하게 되며, 이 자원을 유연하게 관리하기 위해 가상화 기술 등이 투입된다. 어떻게 보면 정보 처리의 복고 열풍인 게, 사용자들이 단말기를 통해 메인 컴퓨터를 조작한다는 개념은 60~70년대의 호스트(Host)-터미널(Terminal) 구조와 정확히 일치하기 때문. 다만, 그때와는 달리 요즘은 단말기 성능도, 네트워크도 많이 좋아졌고, 아예 단말기 여러 대를 연결해 슈퍼컴퓨터를 구성하는 것도 가능해졌다.

90년대 중반 인터넷이 본격적으로 세계로 퍼지기 시작했을 때 오라클이 주장한 NC의 개념과도 일치한다. 좀 범위를 넓히면 PC통신 시절 통신사들이 나눠준 단말기를 이용해 PC 통신에 접속하던 것도 이것과 비슷하다 할 수 있다.

또한, 인터넷 서비스 운영자의 입장에서는 직접 서버를 운영하는 대신에, 구글이나 아마존닷컴, 마이크로소프트 등의 대기업의 클라우드 자원을 빌려 서비스를 운영하는 편이 차후에 서비스의 규모가 커졌을 때 대처하기 편하다. 서버 세팅/확장 등은 신경 쓰지 않고 서비스 운영 자체에만 집중할 수 있게 해 준다. 컴퓨팅 자원을 마치 전기 끌어다 쓰듯이 쓸 수 있도록 해 준다고 보면 된다.

구글의 대표적인 서비스인 지메일이 클라우드 컴퓨팅을 활용한 서비스이다. 스팸 차단이나 메일 보내기/받기/쓰기 같은 모든 작업은 실제로 어느 위치에 있는지도 알 수 없는 구글의 데이터 센터에서 하며, 사용자의 컴퓨터는 오로지 웹 브라우저를 통해 구글 서버와 소통한다.

반면 이러한 서비스를 이용한 실상품으로는 구글에서 추진하고 있는 크롬북이 대표적이다. 크롬북은 컴퓨터 전원을 켜면 크롬 브라우저가 뜨고, 거의 모든 서비스를 클라우드 서비스로 이용하라는 것이다. 구글 문서 도구(Google Docs), 네이버 워드 등으로 가벼운 작업에 굳이 사무용 프로그램을 깔아서 쓸 필요가 없다.

그리드 컴퓨팅과의 다른 점

그리드 컴퓨팅이라는 개념과 혼동하는 경우가 많다. 분산처리라는 점에서는 같으나, 다음 면에서 큰 차이를 보이고 있다.

  • 그리드 컴퓨팅은 '분산'에, 클라우드 컴퓨팅은 '중앙집중'에 초점이 맞춰져 있다. 실제로 그리드 컴퓨팅은 흩어져 있는 컴퓨터의 여유자원을 인터넷으로 합쳐서 특정 프로그램을 돌리는 것이고, 클라우드 컴퓨팅은 같은 내부 네트워크 내 컴퓨터들의 자원을 합쳐 특정 프로그램들을 돌리는 것이다.
  • 그리드 컴퓨팅은 자원 자체가 흩어져 있기 때문에 중간에 해커가 개입될 수 있지만, 클라우드 컴퓨팅은 자원이 중앙집중 및 가상화되어 있기 때문에 이런 일이 불가능하다. 클라우드를 해킹하려면 어차피 네트워크 전체를 침입해야 하는데, 중간에 방화벽에 막히기라도 하면 말짱 도루묵. 또한, 클라우드 컴퓨팅은 용량과 성능의 제약에서 벗어나게 되므로 운영체제 레벨의 보안 처리와 함께 예외처리 떡칠을 해버리게 되면 암호 문제나 내부적인 문제를 제외한 모든 침입면에서는 해커들이 떡실신 당하게 된다. 물리적으로 데이터 센터 내부에 직접 접속하거나 협조를 얻으면 몰라도, 최소한 단말기로 하려는 원격 소프트웨어 해킹 시도는 불가능에 가까울 것이다.

국내에서의 연구

국내에서는 아직 네이버나 Daum, SKT, KT 등 일부 대기업에서만 적극적인 개발에 뛰어들고 있다. 게다가 아직 대다수 대학생들은 이게 있는지조차도 모르고, 극히 일부 대학을 제외하고는 정식으로 가르치는 곳도 거의 없다. 심지어 일부 대학에서는 도입을 꺼리고 있고, 법적으로도 해결할 문제가 산더미이다. 그나마 있는 서적들도 대부분 초보자에겐 이해하기 어려운 번역서인 데다가 한빛미디어(Hadoop 진영), 프리랩(Azure 진영) 등 일부 출판사에서만 나온 상태. 사실 이건 서버값이 비교적 싼 탓에 필요성을 느끼지 않은 탓이 크다.

그러나 상술한 내용은 2011년까지의 상황, 2012년부터는 한국에서도 도입하는 업체 및 연구기관이 많아졌다. 특히 빅 데이터(Big Data) 분석에 대한 요구가 많이 증가하여 각종 학회가 난립하기 시작했다. 관련 도서의 수도 매우 증가하여 Hadoop뿐만 아니라 Mahout, HBase 등 Hadoop 관련 프로젝트들에 대한 도서가 많이 발간되었다. 직접 쓰고 싶다면 Hadoop 사이트에서 직접 내려받아 VirtualBox 등을 통해 써도 되고 KT MapReduce를 빌려서 써도 된다.

상세

  • 클라우드 컴퓨팅은 IT 관련된 기능들이 서비스 형태로 제공되는 컴퓨팅 스타일이다.
  • 사용자들은 지원하는 기술 기반시설(Infrastructure)에 대한 전문 지식이 없거나 제어할 줄 몰라도 인터넷으로부터 서비스를 이용할 수 있다.
  • IEEE에서는 "정보가 인터넷상의 서버에 영구적으로 저장되고 데스크톱이나 테이블 컴퓨터, 노트북, 벽걸이 컴퓨터, 휴대용 기기 등과 같은 클라이언트에는 일시적으로 보관되는 패러다임이다." 라고 말한다.
  • 일반적인 클라우드 컴퓨팅에서 소프트웨어와 데이터는 서버에 저장된다.
  • 클라우드 컴퓨팅은 웹 2.0, SaaS(software as a service)와 같이 최근 잘 알려진 기술 경향들과 연관성을 가지는 일반화된 개념이다.
  • 이들 개념의 공통점은 사용자들의 컴퓨팅 요구를 만족하게 하도록 인터넷을 이용한다는 사실이다. 예로서 구글 앱스(Google Apps)가 있다.
  • 이 외에도 IaaS, PaaS 등의 개념이 있다.
  • IaaS: 인프라로서의 서비스라는 뜻으로, 네이버에서 제공하는 N드라이브가 대표적인 예다. 이는 단순히 서버 등의 자원을 제공해 주면서 사용자가 장치에 제약 없이 데이터에 접근할 수 있도록 해준다.
  • PaaS: 플랫폼으로서의 서비스라는 뜻으로, 사용자(개발자)가 소프트웨어 개발을 할 수 있는 환경을 제공해 준다. 구글의 APP 엔진 등이 대표적인 예다.

기타

구름이란 의미답게 정의도 뜬구름 잡는 듯한 것이 많다. 용어 자체가 굉장히 넓은 범위를 포함하고 있으며, 사람마다 정의하는 의미가 전부 다르다. 실제로 관련 서적을 봐도, 기본적인 내용은 다 같을지라도 세부적인 정의가 전부 다 다르다.

모 대학에서 관련된 강의를 했었던 기업에서 실무를 담당하고 있는 누군가의 말을 빌리자면, "누군가와 클라우드 컴퓨팅에 대해 토의할 일이 있으면 시간의 80%를 그 사람이 생각하는 클라우드와, 내가 생각하는 클라우드를 비교하는데 쓴다"라고 했을 정도로 사람마다, 기업마다, 부서마다 생각하는 게 다르다.

Clone this wiki locally