위즈군의 라이프로그
Reboot... Search /

클라우드 컴퓨팅 1 - 그게 뭐야? 먹는겨?

2011. 4. 10. 04:11
IT관련 정보를 보면 매년 다양한 용어들이 많이 있습니다. 최근에는 더 많은 기술과 개념을 나타내는 단어들이 생겨나고 사라지기를 반복 하고 있습니다. 최근에도 수 많은 용어들이 있었지만 mVoIP, N스크린, 서버 가상화, 소셜 커머스와 같이 IT 업계 종사자가 아니라도 알고 있을 정도로 주목 받는 용어들이 있습니다.
이렇게 다양한 개념 혹은 놀라운 기술을 담은 IT용어들 중에 가장 눈에 띄는 단어가 "클라우드 컴퓨팅"이 아닐까 생각이 됩니다.

클라우드 컴퓨팅 이란?
클라우드 컴퓨팅의 개념을 아주 간단하게 정리하면 미리 준비된 가상의 공간(클라우드)에서 필요한 만큼 그때그때 빌려서 사용하는 서비스 혹은 시스템을 이야기 합니다.

일반 서비스 사용자의 입장에서 예를 들면 미리 만들어진 업무용 프로그램을 필요할 때 빌려 쓰는 것입니다.
과거에 개인 PC마다 설치해서 사용하던 MS오피스와 같은 프로그램을 이제는 설치 없이 웹 오피스를 이용해서 필요할 때만 빌려 쓸 수 있는 서비스를 말합니다.


클라우드 컴퓨팅의 역사
클라우드 컴퓨팅의 개념은 1960년대 미국의 컴퓨터 학자인 존 매카시(John McCarthy)가 "컴퓨팅 환경은 공공 시설을 쓰는 것과도 같을 것" 이라는 개념을 제시한데에 있다. 1990년대에 이미 클라우드라는 용어가 거대한 규모의 ATM을 지칭하는 데 쓰였다. General Magic사는 1995년에 AT&T와 다른 여러 통신사들과 제휴를 맺고 클라우드 컴퓨팅을 서비스 시작했다. 하지만 이 시기는 소비자 중심의 웹 기반이 형성되기 전의 일이었기 때문에 사업은 실패했다. 21세기에 들어서야 클라우드 컴퓨팅이라는 단어가 널리 퍼지기 시작했다. 하지만 당시의 클라우드 컴퓨팅은 대부분의 내용이 SaaS에 집중되어 있었다. 1999년, Marc Benioff, Parker Harris와 그들의 그룹이 중심이 되어 설립된 Salesforce.com은 구글같은 회사에서 개발된 많은 기술들을 접목시키고, 야후에서 개발된 업무용 애플리케이션을 접목시킨 클라우드 컴퓨팅 환경을 제공했다. 이들은 "On Demand"나 SaaS와 같은 새로운 개념을 적용했고, 많은 업무용 사용자들은 호환성과 속도에서 열렬한 반응을 보였다. 2000년도 초반, 마이크로소프트는 웹 서비스의 개발에 따라 SaaS의 개념을 확장하고, IBM은 이러한 개념들을 2001년에 발표한 자율적 컴퓨팅 성명서(Autonomic Computing Manifesto)에 규정함 으로써 확립시켰다. 아마존은 클라우드 컴퓨팅의 발전에 중요한 역할을 했다. 닷컴 버블 사태 이후에 아마존은 갑자기 증가하는 트래픽에 대비하기 위해 남겨두었던 그들의 데이터 센터의 유휴 자원을 활용했다. 기존에 아마존이 쓰고 있던 "two-pizza teams"원칙 덕분에 아마존은 새로운 기능을 빠르게 내놓을 수 있었다. 이러한 기반 속에서 아마존은 2005년에 자사의 웹 서비스를 통해 유틸리티 컴퓨팅을 기반으로 하는 클라우드 컴퓨팅 서비스를 시작했다. 2007년에, 구글과 IBM 그리고 몇몇 대학들은 큰 규모의 클라우드 컴퓨팅 연구를 시작했다.
출처 : 위키피디아


개발자와 시스템운영자의 고민.!
클라우드 컴퓨팅의 개념은 개발자나 시스템 운영자에게 인프라 구축과 서버자원의 효율성에 대한 고민 해결의 실마리를 보여주고 있습니다.

하나의 서비스를 기획하고, 개발 할 때 가장 어려운 부분중 하나가 수요예측입니다. 비용과 직접적인 연결이 되기 때문에 상당히 민감한 부분이기 때문입니다. 1명이 사용하는 서비스와 1억명이 사용하는 서비스에 들어가는 비용이 같다면 얼마나 좋겠습니까? 하지만 사용자가 늘어날 수록 인프라 구축에 들어가는 비용이 기하 급수적으로 증가하고, 아키텍쳐 설계의 복잡도가 급격히 증가합니다.

사용자 수에 따라 급격하게 인프라 구축 비용이 올라가는 데는 그 이유가 있습니다. 가장 큰 원인은 서버자원 사용의 효율성이 떨어지는 구조 때문입니다.

네트워크를 많이 사용하는 웹서버, 디스크 용량을 많이 사용하는 파일서버, 메모리를 많이 사용하는 DB 서버로 구성하는 서비스는 보안과 안정성의 문제로 각각의 서버를 분리해서 사용하는 것이 일반적일 것입니다.
이렇게 서비스를 운영하다 보면 파일서버의 디스크 용량이 부족한 순간에도 웹서버의 디스크용량은 남아돌고, DB서버의 CPU는 항상 90%를 넘어서 조마조마 하지만 파일서버의 메모리와 CPU는 10%도 사용을 하지 못하는 상황이 자주 발생합니다.

이런 상황은 서비스 기획자, 시스템관리자 그리고 개발자 모두에게 머리아픈 고민거리와 제약사항들을 만들어 내고 있습니다.


고민 해결의 실마리 클라우드 컴퓨팅
서버간 남는 자원과 부족한 자원을 잘 섞어서 장비의 활용도를 올리면 장비 투자비용은 줄어들고, 개발자는 시스템 자원의 제약사항에서 조금 더 자유로워 질 수 있습니다. 시스템 관리자 역시 관리 측면에서 더 유연하게 대처를 할 수 있을 것입니다.

클라우드 컴퓨팅은 서버의 자원을 통합해서 관리하고, 자원을 필요한 프로세스에서 필요한 만큼 사용 할 수 있도록 해주는 시스템입니다.

클라우드 컴퓨팅을 잘 활용하면  서비스의 비즈니스 로직에 더 집중이 가능한 업무 환경이 될 수 있을 것 같습니다. 이와 관련된 내용은 다음 포스팅에서 더 자세히 다루기로 하고, 이번 포스트에서는 간단하게 개념소개 정도로 마무리 하도록 하겠습니다.
Category&Tag : [정리중/IT 이야기]
위즈군의 라이프로그

Category

전체 (564)
개발 (0)
일반정보 (0)
IT 일반 (1)
일상&사진 (0)
정리중 (563)

Recent Entry

    Recent Comments

      Recent Trackbacks

        Tags

        Links

          Total:
          Today: / Yesterday:
          Powered by Tistory / Skin by 위즈 라이센스정책 rss 2.0