클라우드 컴퓨팅
1. 개요
과거 1980년대 전후하여 원격지에 있는 컴퓨터와 근처에 있는 단말기 사이에 있는 수 많은 통신장비 및 네트워크를 다 그리지 않고 구름 모양을 그려서 설명을 하였다. 이후 2000년대에 클라우드 컴퓨팅이 등장하면서 이 개념을 설명하기가 애매하여 이 구름 개념을 따 와서 구름(cloud)이라고 한 것이 클라우드다.
즉, 클라우드의 의미는 컴퓨터 통신망이 복잡한 네트워크 및 서버 구성 등을 알 필요 없이 구름과 같이 내부가 보이지 않고, 일반 사용자는 이 복잡한 내부를 굳이 알 필요도 없이 어디에서나 구름 속의 컴퓨터 자원으로 자기가 원하는 작업을 할 수 있다는 것이다. 이른바 동일한 체험을, 인터넷이 연결된 어디에서나 보장해주는 것이다.
2019년 조사에 따르면 800개 기업 중 94%가 클라우드 컴퓨팅을 사용하고 있었으며, 2021년까지 전체 클라우드 인프라를 사용하는 기업은 절반 이상이 될 전망이다.[1]
2. 과거와의 비교
정확한 개념이 의외로 복잡한데, 대부분의 작업을 온라인에 분산되어 존재하는 데이터 센터(Data Center, 이하 클라우드)에 맡겨 수행하고, 사용자의 컴퓨터는 클라우드에 접속하여 상호작용하는 단말기 역할만 하는 것이다. 이 때문에 모든 데이터와 연산 자원이 클라우드 안에만 존재하게 되며, 이 자원을 유연하게 관리하기 위해 가상화 기술 등이 투입되게 된다. 어떻게 보면 '''정보처리의 복고 열풍'''인 게, 사용자들이 단말기를 통해 메인 컴퓨터를 조작한다는 컨셉은 60~70년대의 호스트(Host)-터미널(Terminal) 구조[2] 와 정확히 일치하기 때문.[3] 다만, 그때와는 달리 요즘은 단말기 성능도, 네트워크도 많이 좋아졌고, 아예 단말기 여러대를 연결해 슈퍼컴퓨터를 구성하는 것도 가능해졌다.[4]
90년대 중반 인터넷이 본격적으로 세계로 퍼지기 시작했을 때 오라클이 주장한 NC의 개념과도 일치한다. 좀 범위를 넓히면 PC통신 시절 통신사들이 나눠준 단말기를 이용해 PC통신에 접속하던 것도 이것과 비슷하다 할 수 있다.
또한 인터넷 서비스 운영자의 입장에서는 직접 서버를 운영하는 대신에, Amazon Web Services, Microsoft Azure, Google Cloud Platform 등의 대기업의 클라우드 자원을 빌려 서비스를 운영하는 편이 차후에 서비스의 규모가 커졌을 때 대처하기 편하다. 서버 세팅/확장 등은 신경쓰지 말고 서비스 운영 자체에만 집중할 수 있게 해 준다. 컴퓨팅 자원을 마치 전기 끌어다 쓰듯이 쓸 수 있도록 해 준다고 보면 된다.
또한 이러한 서비스를 이용한 실상품으로는 구글에서 추진하고 있는 크롬북이 대표적이다. 크롬북은 컴퓨터 전원을 켜면 크롬 브라우저 하나만[5] 덩그러니 실행된다. 그리고 클라우드에 접속하면 문서도구, 그래픽, 게임을 불문한 모든 작업이 가능하다. 컴퓨터에 아무것도 저장하지 않은 상태로 오직 클라우드 내에서만 구글 크롬 스토어에서 취급되는 앱들을 비롯한 다양한 클라우드 앱을 이용할 수 있으므로 굳이 프로그램을 깔아서 쓸 필요가 없다는 컨셉이다. 다만 크롬북은 모든 작업을 웹과 클라우드상에서 처리하다 보니 인터넷이 없으면 말 그대로 깡통이 된다는 치명적인 단점이 있다. 다만 현재는 안드로이드 앱과 구글 플레이 스토어도 돌릴 수 있도록 업데이트 되어서 예전보다는 나아졌다.
애플의 맥북 에어도 어떻게 보면 비슷한데, iCloud, 드롭박스 등의 여러 클라우드 서비스 등장으로 굳이 하드 탑재로 용량을 늘릴 필요가 없어졌기에 맥북 에어의 경우 두께를 위해 용량을 희생하고 그 두께의 거의 모든 부분이 배터리 확충에 치중되고 있다. 저장 용량이 중요하지 않고 되려 사용자의 편의성과 직결되어 있는 배터리 양이 더 중요하다는 것이다. 다만 크롬북과는 달리[6] 인터넷에 연결되지 않아도 웬만한 건 다 할 수 있기 때문에 아래에 서술된 클라우드의 단점 역시 어느 정도 극복할 수 있는 형태라는 결정적 차이점을 가진다.
과거 펜티엄 I급 컴퓨터를 어떻게든 더 오래 써먹으려고 큰 서버 2-3대나 메인프레임 1대에 수십대를 연결해서 써먹은 만파식적이라는 프로그램이 있었는데, 대한민국 최초의 상용 클라우드 컴퓨팅 시스템으로 알려져 있다.
3. 다른 기술과의 차이점
참고 이 포스팅을 요약하면, 클라우드 컴퓨팅은 기존 그리드 컴퓨팅, 유틸리티 컴퓨팅, 서버 기반, 네트워크 컴퓨팅을 기술적으로 발전시켜 구현한 것이다.
그리드 컴퓨팅이란 컴퓨터 자원을 가상화시켜 공유하는 기술이고, 유틸리티 컴퓨팅은 그리드 컴퓨팅에서 더 나아가 사용된 자원만큼 돈을 지불하는 그리드 컴퓨팅의 비즈니스 모델이다. 서버 기반 컴퓨팅이란 컴퓨터 자원 소모를 다른 곳으로 옮겨 컴퓨터 자체는 더 얇게 만들 수 있게 하는 기술로 그리드 컴퓨팅에 기반을 둔다. 마지막으로 네트워크 컴퓨팅은 OS까지 가상화시켜 PC에 들어가는 자원을 최소화시키는 것이다. 즉, 클라우드 컴퓨팅이란 이러한 기술들을 종합-발전시킨 기술/비즈니스 모델이다.
4. 현황
2000년대 들면서 급부상한 IT떡밥 중 하나이나, 정작 통신 보안쪽으로는 크게 골머리다. 클라우드 컴퓨팅 환경에서는 사용자의 개인 정보가 클라우드에 저장되면 사실상 사용자가 그 정보의 위치를 통제할 수 없기 때문.[7] 이를 리처드 스톨먼이 딱 한 단어, '''덫'''(Trap)으로 지적한 바 있다. 덧붙여 사실상의 처리를 사용자의 시스템에서 처리하지 않기 때문에, 통상 시스템에 비해 트래픽이 증가하게 된다. 그나마 대부분의 트래픽이 클라우드 내에서 처리될 수 있다는 점에선 그리드 컴퓨팅에 비해 약과. 그리드 컴퓨팅의 경우 처리되는 모든 트래픽을 떠안아야 한다.
여하튼 가벼움이 가장 큰 장점이고, 일반 사용자는 보안에 그다지 신경을 쓸 필요도 없기에 MS의 OneDrive를 필두로 여러 곳에서 적극 도입이 진행 중. 아파치 소프트웨어 재단의 분산처리 프로젝트인 Hadoop 및 관련 프로젝트들은 이걸 오픈소스로 구현한 것이다.
IT관련 리서치 그룹인 가트너 사(Gartner, Inc.)가 선정한 2010년 전략기술 TOP10에서 1위를 차지했다. 참고로 2009년엔 2위.
5. 단점
클라우드 컴퓨팅에는 개인목적으로 저장해둔 데이터들이 사용자 본인이 아무리 관리를 철저하게 한다 해도 하루아침에 사라지거나, 전혀 상관없는 제3자에게 공개될 수 있는 매우 치명적인 단점이 존재한다. 이러한 문제가 발생하는 원인은 전적으로 당신의 데이터를 관리하는 회사에게 있다. 즉 클라우드를 관리하는 회사가 '''망하거나, 변심하거나, 관리를 소홀히 한다면''', 이 단점이 곧바로 현실이 된다. 아예 개인용 컴퓨터를 원격 프로그램을 이용하여 클라우드 컴퓨팅 서버로 만들어 버리는 경우에는 하드디스크에 배드섹터가 생겨서 데이터가 날아가는 등 저장장치가 맛이 가는 경우 빼고는 거의 없으나, 전기세가 많이 나온다.
관리소홀로 인해 데이터가 통째로 증발한 사례는 이미 현실에서 실현되었다. 일본 퍼스트서버 사고가 그것이다. 클라우드 서비스 업체가 5698개 기업의 데이터를 몽땅 날려먹은 초대형 사고가 발생하였다.
'퍼스트서버 사고'는 일본의 사건이지만, 사실 한국의 클라우드 시스템도 그런 위험에서는 다르지 않다. 상당수의 클라우드는 도중에 망하거나 데이터를 증발시킨 사례가 많다. 네이버, 다음 모두 클라우드 사업을 하면서 용량을 마음대로 바꾸거나 서비스를 중단 혹은 축소한 전적이 있다. 다음클라우드 서비스 종료된다 - 허핑턴포스트코리아
사용자의 모든 정보는 클라우딩 서비스를 지원하는 해당 회사의 서버에 모든 데이터를 저장해둔다. 심지어 그 데이터가 어느지역 어느서버에 있는지도 알 수 없다. 그런데 이 서버를 관리하던 회사가 부도가 나버릴 경우, 대규모의 회사는 어디론가 팔려가서 데이터가 유지될지도 모르지만, 대부분은 그대로 공중분해되어 하루아침에 모든 데이터가 사라지는 비극이 벌어질 수 있다. 거기다가 막말로 그 데이터 담아둔 서버가 전부 본사가 '''직접 갖고''' 있는 서버여야만 한다는 법도 없는 현실에, 어느 클라우드 회사의 '''하청을 맡아서 서버 일부를 관리하고 있던 회사'''에서 데이터를 빼돌린다던지... 아니면 어디선가 망한 회사의 클라우드 서버를 사들여서 저장돼있는 데이터를 개인목적으로 사용한다면... 더 이상의 자세한 설명은 생략한다.
차라리 망하면 다행인데 더 끔찍한 비극은 클라우드를 관리하는 회사가 '''임의로 사용자의 정보를 제3자에게 제공하는 경우다.''' 회사의 마케팅 차원에서 정보분석용으로 몰래 사용할 수도 있고[8] , 특정국가의 수사 협조를 명목으로 공공기관에 임의로 데이터를 공개할 수도 있고[9] , 회사의 임의가 아닌 해킹으로 인해 자신의 데이터가 제3자에게 공개되거나[10] , 단순한 운영진의 실수로도 공개될 수 있다.[11] 물론 애초부터 개인 전용 스토리지로 사용되는 경우가 훨씬 많기 때문에 이런 가능성은 매우 드물다.
어쨌든 이는 클라우드 회의론의 주요 떡밥이다. 클라우드의 선택기준은 빵빵한 무료용량보다는 회사의 신용도가 더 중요한 선택 기준이 되나, 그리고 어떤 보안이든 '''부주의와 내부 침입에는 취약'''하니 진짜 중요한 데이터는 클라우드 이외의 매체에도 따로 보관해야 한다.
그러나 클라우드 업체가 아무리 보안을 빵빵히 해도, 수색 영장, 법원 명령, 소환장등 공권력이 요구할 경우, 업체는 문을 닫지 않을려면 공권력에 이런 자료를 제공할 수 밖에 없으므로 데이터의 완전한 비밀 보안은 불가능하다. 아동포르노 같은 음란물이 발견되면 아예 클라우드 업체가 자발적으로 경찰에 신고를 하기도 한다. 이는 클라우드 제공 회사의 약관 여부와 상관 없다. 현지법을 준수하지 않으면 장사 자체를 할 수 없으므로. 한국의 n번방 방지법 같은 경우에도 사업자는 평상시에도 불법촬영물의 유통을 방지하기 위해 "대통령령으로 정하는 기술적ㆍ관리적 조치"를 해야한다는 조항이 있어, 본의 아니게 유저들의 데이터를 상시 검열할 수 밖에 없다.
자신이 생성하고 보존한 데이터의 통제권을 기본적으로 남에게 넘겨 보관시키고 있는 상태이기 때문에, 공권력의 요구/해킹/업체의 결정등에 의해 내가 보존한 데이터가 나 모르게 타인에게 열람 당할 수 있다는 점에서 '''데이터의 완전하고 개별적인 통제권'''을 원하는 유저에게는 클라우드 서비스가 올바르다고 할 수 없다.
또 다른 문제로는, 클라우드 회사가 망하거나 엿장수 마음대로 규정을 바꾸는 경우가 있다. 3년 계약으로 수십~수백만원 주고 산 클라우드가 있는데 불량 유저 의심으로 계정 닫거나 회사가 망하거나 갑자기 서버가 접속이 안되거나 하는 경우가 있다. 구글이나 아마존 같은 초대형 회사는 신뢰성과 안정성이 높아서 이런 경우가 적다. 하지만 한국 대형 포털 사이트들, 중소기업의 서버들은 이러한 일이 이미 많이 일어났다.[12]
더 나아가서 클라우드 서비스 중 신뢰성이 떨어지는 사이트들은 대부분 가격이 싼 것 같아 보이지만 성능이 처참하거나 클라우드 컴퓨팅으로 연산으로 조금만 부하를 줘도 성능 저하, 경고 메일, 계정 중단, 서버 회수를 환불 없이 강제한다.
그 외에 게임에서 클라우드 기반 서버를 무리하게 도입하다가 망하거나 욕을 먹은 경우도 있다. 심시티 시리즈의 관짝에 못박은 EA의 시도가 대표적인 예이다. 데이터를 서버에 저장 및 연산하기 때문에 오프라인이나 인터넷이 느린 환경에서는 도저히 플레이하지 못할 정도다. 이 때문에 상당수의 유저의 접근성이 심각하게 낮아졌다. 그 외의 FPS 게임 대다수가 클라이언트에서는 그래픽 표시와 약간의 연산만 하고, 중요한 연산은 서버에서 한다. 사용자 메모리에 있으면 마음대로 조작해서 핵을 돌릴 수 있기 때문이다. 사실상 공정성이 요구되는 멀티플레이 게임은 클라우드 기반 서버로 돌아간다. 이렇지 않은 경우에는 핵으로 난장판이 되거나 게임가드나 nProtect 같은 온갖 CPU 성능 저하를 유발하는 보안 프로그램을 깔아서 핵을 방지한다. 대다수가 서버 연산량에 투자하기 싫으니 클라이언트에 연산을 떠맡기고 메모리 핵도 의심해서 보안을 강제하는 것이다. 그렇기에 게임에서 클라우드 컴퓨팅 서버는 잘 활용하면 핵 방지도 되고 낮은 사양의 컴퓨터도 할 수 있게 돼서 좋지만, 현실은 녹록치 않다. EA도 실패했고 디아3도 문제가 있었다.
6. 클라우드 메인프레임
컴퓨터 기술이 발달할수록 대중 컴퓨터의 가격은 하락하지만, 메인프레임의 경우에는 오히려 가격이 천정부지로 치솟고 있는데, 이에 대한 대안으로 클라우딩 메인프레임의 개념이 제안되기도 한다.
클라우딩 컴퓨팅은 단순한 연산 성능으로만 따져보면 고전적 메인프레임에 꿇릴 것이 없지만 구성 메커니즘상 보안에 대단히 취약한데, 여러 컴퓨터를 네트워크로 묶어 놓은 만큼 외부 통신망에서 침입할 접점이 여러 곳이기 때문이다. 고전적 메인프레임의 강점 중 하나는 보안과 안정성으로, 은행 등 이런 메인프레임을 주로 굴리는 분야에서는 클라우드 메인프레임 도입이 오히려 손해다.
이러한 클라우드 메인프레임 개념을 바탕으로 한 구글 뱅킹(Google Banking) 의 경우에도 초기 도입 비용은 매우 저렴하나 이후 보안과 안정성에 대한 보수 비용과 기회비용이 오히려 메인프레임 도입 비용 및 유지보수 비용을 상회한다는 보고가 있기도 하였다. 이러한 문제로 클라우딩 메인프레임은 사실상 폐기된 개념.
7. 클라우드 게임
클라우드 컴퓨팅 기술은 인터넷으로 클라우드 서버를 통해 원격으로 게임을 할 수 있게 해주는 시스템으로도 이용되고 있다. 자세한 내용은 클라우드 게임 문서 참고.
8. 한국에서의 연구
한국에서는 네이버나 Daum, SKT, KT 등 일부 대기업에서 적극적인 개발에 뛰어들고 있었지만 교육계선 그다지 호의적이지 않았어서 2011년만 해도 극히 일부 대학교가 가르치는 형편이었으나[13] 2012년부터는 한국에서도 도입하는 업체 및 연구기관이 많아졌다. 특히 빅 데이터(Big Data) 분석에 대한 요구가 크게 증가하여 각종 학회가 난립(…)하기 시작했다. 관련 도서의 수도 크게 증가하여 Hadoop뿐만 아니라 Mahout, HBase 등 Hadoop 관련 프로젝트들에 대한 도서가 많이 발간되었다. 직접 쓰고 싶다면 Hadoop 사이트에서 직접 다운로드해 VirtualBox 등을 통해 써도 되고 KT MapReduce를 빌려서 써도 된다.
9. 클라우드 서비스 목록
- 데이터 클라우드 - 데이터 클라우드 위주
- 컴퓨팅 클라우드 - 처리 위주
- 수식연산 - Wolfram Alpha
- 가상머신, 컴퓨팅 등 - 네이버클라우드플랫폼, Amazon Web Services, Microsoft Azure, IBM Cloud, Google Cloud Platform,, KT ucloud biz, SAP Cloud Platform, SK Cloud Z, Hewlett Packard Enterprise
- 이러한 클라우드 컴퓨팅 환경을 만들어주는 프레임워크 중 Openstack이라는 것이 있다. 오픈 소스이며, 많은 개발자 커뮤니티를 보유한 덕에 빠르게 발전이 이루어지고 있다.
- 게이밍 - 심시티(2013)[16] , OnLive[17] , Gaikai, 네이버 클라우드 플랫폼 게임팟, NVIDIA GRID, LiquidSky[18] , Stadia, xCloud, PS NOW, Shadow 등
- 그 외 - 분류하기 애매한 것들
10. 기타
구름이란 의미답게 정의도 뜬구름 잡는 듯한 것이 많다. 용어 자체가 굉장히 넓은 범위를 포함하고 있으며, 사람마다 정의하는 의미가 전부 다르다. 실제로 관련 서적을 봐도, 기본적인 내용은 다 같을지라도 세부적인 정의가 전부 다 다르다.
K모 대학에서 관련된 강의를 했었던 기업에서 실무를 담당하고 있는 누군가의 말을 빌리자면, "누군가와 클라우드 컴퓨팅에 대해 토의할 일이 있으면 시간의 80%를 '''그 사람이 생각하는 클라우드와, 내가 생각하는 클라우드를 비교하는데 쓴다'''"라고 했을 정도로 사람마다, 기업마다, 부서마다 생각하는 게 다르다.
최근 신뢰성, 고객과의 거리 등을 고려하여 컴퓨팅 업무량을 한 클라우드 서비스 제공업자에서 다른 클라우드 서비스 제공업자로 쉽게 옮길 수 있도록 만든 멀티 클라우드가 개발되면서 VMware, Azure Stack, Anthos, 그리고 Outpost 등의 서비스가 앞 다투어 들어오고 있다. 이로 인한 서비스 과잉공급 우려가 있다. 관련기사
11. 관련 문서
[1] ibm.com/cloud/learn/cloud-computing[2] 이 구조가 최근까지 사용된 것이 다름아닌 PC통신이다.[3] 이해가 안 간다면, 위의 그림에서 인터넷(클라우드)을 메인 컴퓨터로 바꿔보자.[4] 빠른 개인용 컴퓨터 8만 대가 제일 빠른 슈퍼컴퓨터랑 비슷하다.[5] 엄밀히 말하면 운영체제가 실행되면서 크롬브라우저만 실행되도록 세팅한 리눅스운영체제, 컴퓨터를 켜고 로그온 화면에서 로그온 하면 바탕화면 대신 크롬브라우저만 보여지는 환경이다.[6] 구글 플레이 스토어를 지원하는 기종 제외.[7] 이 점은 OwnCloud라는 설치형 클라우드 스토리지를 쓰면 어느 정도 해결되긴 한다. 일단 파일이 자신 혹은 아는 사람의 웹서버 디렉터리 내에 저장되니 정보 위치 통제가 쉬워진다. 대신 다른 클라우드 스토리지보다 삽질이 귀찮을 뿐이지... 다른 클라우드 스토리지에선 가입만 하면 장땡이나, 이놈은 웹 서버 프로그램 깔고, PHP, MySQL 깔고 필요하면 자체 설정까지 해야 되는 물건이다.[8] 클라우딩은 아니지만, 애플은 현재위치정보 무단수집으로 문제가 된 적이 있다.[9] 특히 중국은 대놓고 해당 회사에게 외압을 넣는걸로 유명하다. 게다가 '''한국 국내법에서도 얼마든지 클라우드 컴퓨팅 회사의 서버를 압수수색하거나, 데이터 송부를 요청할 수 있다.'''[10] 미국은 프리즘 프로젝트로 클라우드 서버를 해킹해 정보를 빼냈다.[11] 이글루스에서 비밀글이 유출된적이 있다.[12] 용량 축소, 서비스 변경, 성능 저하 등[13] 이건 서버값이 비교적 싼 탓에 필요성을 느끼지 않은 탓이 크다.[14] 대용량 저장소 역할도 하지만 주로 애플 기기간의 실시간 연동에 초점을 맞추고 있다. 예를 들어 문서 수정, 일정 변경 등의 작업이 모든 애플 기기간에 실시간으로 공유된다. iOS 기기의 경우 실시간 백업 및 복원도 할 수 있다. 스마트 기기들의 실시간 동기화와 데이터 백업에 있어서 기준점이 된 의미가 있다.[15] 사실 스팀 자체가 클라우드 서비스라고 볼 수 있다. 계정의 온라인 인증 및 상품 등록 등이 현대의 클라우드 서비스와 개념이 일치한다.[16] 발매직후 이점 때문에 서버 에러가 일어나 엄청나게 욕먹고 있는 현실. 일단 심시티 자체에서 게임 저장과 더불어 사용자가 만드는 CPU 부하도 맡아서 처리한다. 이 문제는 서버 증축같은 방법으로 많이 해결됐지만 이번 패치 10으로 서버와 통신하지 않는 오프라인 모드가 추가되었다.[17] Gaikai와 합병[18] 무료로 제공하는 플랜이 있다!