클라우드의 핵심은 가상화와 분산

DT의 핵심기술 ABC - 클라우드(1)

by 현실컨설턴트

이번 편부터는 DT 사이클을 구성하는 핵심기술에 대해 알아보겠습니다. I’m ABC는 기억하시죠? 데이터를 폭발하게 만들었던 IoT와 mobile, 사이클에서 폭발한 데이터를 처리하고 저장하는 핵심 엔진 역할을 하던 AI, Big data, Cloud를 기억하실 겁니다. 그 중에서 ‘ABC’에 대해 순차적으로 알아보도록 하겠습니다. 용어의 순서는 ‘ABC’이지만 이해를 돕기 위해 설명은 ‘C’에 해당하는 클라우드부터 시작하겠습니다.


정형과 비정형


빌 게이츠가 모든 가정에 PC 한 대씩 놓아 드리겠다고 선언하시고 한참이 지난 90년대에도 PC는 자산이었습니다. 가정에서 거의 자동차 다음에 준하는 소중한 재산이었죠. 그렇다 보니 저희 세대만해도 컴퓨터는 소중하게 다뤄야 하는 물건이었죠. 부지런한 현모양처 어머니들은 십자수로 컴퓨터와 키보드 덮개를 만들어 소중한 아이가 먼지를 안 먹게 항상 얹어놓곤 했습니다. 키보드로 등짝 스매싱을 하는 그런 미개한 행동은 상상도 할 수 없었죠. 그래서 그 소중한 컴퓨터에 넣는 데이터는 정제되고 고민 고민해 만들어진 것들이었죠. 그렇게 해도, 매정한 컴퓨터는 입맛에 조금만 안 맞는 데이터가 들어와도 에러를 내면서 뱉어내곤 했죠. 그래도 당연히 사람이 잘못했다 생각하고 스스로 데이터를 고쳤습니다. 그렇다 보니 컴퓨터에는 전문용어로 ‘정형데이터’만 입력이 되었죠.

‘정형데이터’는 말 그대로 컴퓨터의 입맛에 딱 맞게끔 요리된 데이터를 뜻합니다. 넣으면 바로 컴퓨터가 소화할 수 있는 데이터죠. 엑셀의 잘 정리된 데이터를 생각하시면 됩니다. 그렇다고 엑셀에 입력된 것이 모두 정형화된 데이터는 아닙니다. 매출보고서를 엑셀로 정리해보죠.


매출관리.png 정형데이터만 처리할 수 있습니다


일자별로 어떤 가전제품이 판매되었는지 정리되어 있습니다. 제대로 입력했다면 판매금액을 선택하고 합계를 내면 표와 같이 바로 총액이 자동으로 계산되어 나오죠. 제품별로 합계도 쉽게 낼 수 있습니다. 컴퓨터가 잘 소화할 수 있도록 정해진 규칙에 따라 잘 입력했기 때문이죠. 그런데 금액란에 같은 금액이지만 숫자가 아닌 문자로 ‘삼백십만원정’을 입력하면 컴퓨터는 바로 앙탈을 부립니다. 형식에 안 맞으니 계산을 못해주겠다는 거죠. 이런 데이터를 ‘비정형데이터’라 합니다. 이런 상황을 90년대 중반까지 당연하게 생각했습니다. 컴퓨터는 ‘정형데이터’만 처리하는 기계였습니다. 그러니, ‘비정형데이터’를 소중한 컴퓨터에 먹일 생각은 하지 않았죠.


정형데이터.png 정형데이터만 입력을 허용


이런 고정관념은 인터넷 붐과 함께 조금씩 허물어지기 시작합니다. 인터넷이 예상외로 빠르게 보급되고 뜬금없이 사람들이 컴퓨터에 편지를 쓰기 시작합니다. 처음에는 글자(텍스트)만 보내다가 디지털 카메라가 나오면서 사진도 보내기 시작하고, 동영상도 곧 밀려 들어오죠. 사용자 수의 증가도 그들의 예상을 뛰어넘었죠. 구글과 같은 기업은 전 세계 사용자들이 입력하는 검색어를 모두 저장하고, 메일 같은 서비스 공간을 개인별로 각각 할당해줘야 했습니다. 위기는 곧 찾아옵니다. 폭발적으로 데이터가 늘어나면서, 좀 튼튼해서 많이 비싼 컴퓨터인 서버와 저장소(스토리지)가 갑자기 많이 필요하게 됩니다. 그리고 사용자가 마구 입력하는 검색어처럼 컴퓨터의 입맛에 맞지 않는 비정형데이터도 기하급수적으로 늘어납니다. 이런 문제가 한 번으로 끝나면 서버와 저장소를 늘리고 말았겠죠. 상황은 점점 더 심각해집니다. 궁여지책으로 저 사양의 PC 여러 대를 네트워크로 연결해 붙여 나가는 시도를 하게 됩니다. 이 시도가 성공하면서 두 가지 문제가 해결됩니다. 첫째, 쉼 없이 늘어나는 데이터를 보관할 장소 문제가 해결됩니다. 둘째, 사정없이 밀려드는 데이터를 빠르게 처리할 컴퓨팅 파워를 가지게 됩니다. 여러 서버가 가진 두뇌(CPU, 중앙처리장치)에 일을 골고루 나눠준 거죠. 이제 비정형데이터를 문전 박대할 필요가 없어집니다. 반대로 친구를 더 데리고 오라고 하죠. 때마침 SNS가 유행하게 되고, 집집마다 주던 인터넷 주소(IP주소)를 기계 하나하나에 각각 주게 됩니다. (주로 달면? 2011년 2월 4일부로 IPv4만 사용하던 것에서 IPv6 체계로 확장됨)

이제 사람과 컴퓨터만 데이터를 받고, 뿜어내는 것이 아니라 센서가 달린 500억 대의 기계들도 데이터를 내보내기 시작한 거죠. 말 그대로 데이터량은 폭발하게 됩니다. 이를 ‘빅데이터’라 칭하게 되죠. 어떻게 보면 클라우드 기술이 빅데이터를 불러냈다 할 수 있습니다. 물론 반대로 빅데이터가 먼저 나타나서 이를 해결하기 위해 클라우드 기술이 만들어졌다고도 할 수 있습니다. ‘서로가 서로를 불렀다’ 정도로 정리하죠.


클라우드의 핵심기술


PC 여러 대를 네트워크로 묶을 수 있다는 건, 비싼 컴퓨터인 서버와 스토리지도 가능하다는 말이 됩니다. 앞으로는 대표로 서버로 표현하겠습니다. 기업들은 조사를 해보게 되죠. 우리 회사에 직원 녀석들만 놀고 있는 줄 알았는데 꾀 안 부릴 거라 믿었던 서버도 대부분 놀고 있었던 거죠. 특정한 시간대나 이벤트 때 특정 자원이 바빴고, 모든 용량은 가장 바쁜 때에 맞춰져 있었죠. 아주 잠깐의 시간 외에는 엄청나게 여유가 있었던 겁니다. 결산 서버와 월급 계산용 서버는 월말에 잠시 일했고, 생산 실적을 관리하는 서버는 낮에만 일했던 거죠. 그림의 왼쪽에 음영이 표시된 정도만 각각 사용되고 있었던 겁니다. 화가 난 회사는 각각 일하던 서버들을 묶습니다. 그랬더니 서버의 활용도가 오른쪽처럼 높아지면서 3개가 필요하던 자원이 2개로 줄어들게 되는 겁니다.


서버가상화.png 아무도 몰랐던 기계들의 농땡이


이런 기적을 행하기 위해서는 두 가지 핵심적인 기술이 필요합니다. 클라우드의 핵심 기술이라 불리기도 합니다. 첫째는 서버 가상화 기술이고, 둘째는 분산 처리 기술입니다.


핵심기술.png 클라우드의 2가지 핵심기술


왜 두 가지 기술이 필요한지 알아보겠습니다. 먼저 서버 가상화 기술입니다. 최초에 클라우드 기술을 태동하게 했던 상황을 해결해주는 형태입니다. 여러 대의 실제 장비를 가상 설비로 소프트웨어를 이용해서 묶는 거죠. 그 위에 운영체제(OS)를 설치하고 실제 구동한 프로그램을 올립니다.

서버가상화1.png


이렇게 되면 실제 서버의 용량의 응용 프로그램이 필요로 하는 최대치에 맞춰 가져갈 필요가 없는 거죠. 실제 서버를 가상 설비로 통합해 켜고 끌 때 순간적으로 필요한 수만큼 서버를 늘리면 되니까요. 쉽게 서버나 스토리지를 늘릴 수 있게 된다는 것은 데이터의 양에 관계없이 보관할 곳을 확보할 수 있다는 말이 됩니다. 그리고 두 번째 가능성도 열게 되죠.

가상 설비를 여러 대의 서버와 스토리지를 통합할 수 있다는 말은 그 반대도 가능하다는 말이 됩니다. 하나의 서버를 필요에 따라 여러 개의 서버처럼 가상으로 나누어 쓰는 거죠.

서버가상화2.png

궁극적으로는 두 가지를 섞는 형태가 될 겁니다. 이렇게 되면, 새로운 사업모델이 생길 수 있습니다.

서버가상화3.png


2018년 11월 22일 오전에 “AWS 서버 장애 발생, 쿠팡, 배달의 민족 등 먹통”이라는 속보가 뜹니다. 많은 사람들이 두 가지에 놀라죠. 첫 번째는 쿠팡, 배민 정도의 큰 기업이 자체 서버 및 장비를 보유하지 않고 다른 회사가 제공하는 클라우드라는 서비스를 사용하고 있었다는 것이고, 두 번째는 AWS가 전자책, 택배 정도로 인식해왔던 아마존이 운영하는 서비스였다는 것이었죠.

이런 일을 가능하게 하는 근본적인 이유가 서버 가상화 기술입니다. 아마존이라는 클라우드 서비스 제공 기업이 엄청난 규모의 실제 장비를 보유하고 있고, 그 위에 고객들이 필요로 하는 프로그램을 구동하게 하는 거죠. 그리고 일정 금액을 사용료로 받는 겁니다. 업계에서는 이를 ‘서비스 종량제’라고 부르기도 합니다. 쓰레기 종량제가 생각나서 이 이름에 저는 부정적입니다만.

가상화 기술로 보관장소의 한계에 대한 봉인은 풀렸습니다. 더 많은 데이터가 걱정 없이 밀려 들어올 겁니다. 이제 데이터를 처리하는 시간이 문제가 됩니다. 이 문제를 해결하는 기술이 분산처리 기술입니다. 개념은 간단합니다. 밀려드는 데이터를 여러 대의 서버에 나누어 병렬로 처리하는 겁니다. 처리해야 할 부하 상태에 따라 작업에 참여하는 서버와 스토리지 같은 자원을 늘리거나 줄일 수도 있게 합니다. 이렇게 되면 대량의 데이터를 고속으로 처리하는 것이 가능해집니다. 예를 하나 들어보겠습니다. 구글에서 고안한 분산처리 방식이죠.

분산처리.png 분산 처리 사례

다양한 도형 그림이 있습니다. 원하는 결과는 문서 내용을 읽어서 각각의 도형이 몇 개씩 있는지 세어 출력하는 것입니다. 먼저 작업할 것을 두 개로 나눕니다. 나눠진 작업을 각각의 서버에서 수행합니다. 두 개의 서버라면 각각의 서버에서 할당된 도형이 몇 개인지 셉니다. 그리고 그 작업 결과를 합치는 겁니다. 대표적인 대용량 데이터 처리를 위한 병렬 처리 기법의 하나입니다. 이렇게 해서 데이터가 무한정 늘어나도 일단은 처리할 수 있는 체계가 만들어졌습니다.

대학시절에 방학 동안 건설현장에서 막노동을 한 적이 있습니다. 그때 새벽마다 나간 곳이 인력 시장이었습니다. 새벽 5시에 조그만 사무실에 20명 정도가 옹기종기 앉아 있으면, 건설현장에서 사장님께 어떤 일에 몇 명이 필요하다고 전화가 옵니다. 선착순으로 조금씩 빠져나가다 7시가 되면 더 이상 사람을 찾지 않기 때문에 인력시장이 파했습니다. 운 좋게 일을 나가게 되면 현장에 도착할 때까지 그 날 무슨 일을 할지 모릅니다. 도착하면 현장에 작업반장님이 계시지요. 그 분이 그 날 할 일을 알려줍니다.

작업반장.png


클라우드의 핵심 기술인 가상화와 분산처리의 관계가 새벽 인력시장의 매커니즘과 유사합니다. 정직원에 해당하는 서버를 소유하지 않고 필요할 때 필요한 만큼 새벽시장에서 조달합니다. 그리고 할당 받은 클라우드에 일을 잘 분산해 주는 것이죠.

이번 글에서는 클라우드의 핵심인 ‘가상화’와 ‘분산처리’를 살펴보았습니다. 다음 편에서는 클라우드의 여러 제공 방식에 대해 알아보겠습니다.


keyword
매거진의 이전글분열