클라우드 컴퓨팅의 서막 – CERN은 왜 클라우드 컴퓨팅이 필요했나?LHC 실험과 인공지능 기술에 대한 내용을 더 다루기 전에,
흔히 많은 클라우드 컴퓨팅은 구글이 제일 먼저 시작했다고 알고 있다. 이 말은 반은 맞고, 반은 틀리다. 클라우드 컴퓨팅의 기반이 되는 기술은 사실 구글이 클라우드 컴퓨팅이라는 말을 사용하기 전에 이미 CERN과 IBM 등의 회사들을 통해서 많이 개발되어 있었기 때문에 반은 틀린 말이라는 것이고, 클라우드 컴퓨팅이라는 용어가 처음 생겨나서 업계에 자리 잡게끔 한 것이 구글이기 때문에 반은 맞는 사실이다. 클라우드 컴퓨팅이라는 말이 처음 나왔을 때는 그 의미가 명확하지 않아서, 오라클의 회장 래리 엘리슨은 클라우드 컴퓨팅이 무엇인지 잘 모르겠다고 혹독한 비판을 하기도 했다[2-7].
1992년 CERN의 과학자들은 LHC 가속기와 네 개의 검출기의 개념 설계를 진행하면서 연간 약 1PB의 데이터가 생성될 것임을 알게 된 후, 과연 이 빅데이터를 어떻게 분석할 것인지 고민하기 시작했다. 검출기 데이터 처리를 자동화하기 위해 Level-1 트리거와 고수준 트리거(high-level trigger)에서 데이터 처리를 자동화하는 분산컴퓨팅 시스템을 만드는 것과는 별개로, 효과적인 데이터 분석을 하기 위해서는 또 다른 기술적인 난관을 해결해야 했다.
먼저, 분석하게 될 물리학자들이 CERN에 모두 모여 있지 않다는 것이다. LHC 데이터 분석을 수행할 물리학자들은 전 세계의 다양한 연구소에 소속되어 본인들이 소속된 연구기관에서 분석을 수행하게 될 것이었다. 이렇게 전 세계에 걸쳐 일하는 사람들이 어떻게 LHC 데이터를 전송받고, 전송받은 데이터를 분석하기 위한 막대한 양의 계산을 할 수 있도록 컴퓨팅 시스템을 만들어야 할 것인가?
두 번째 문제는 1PB의 데이터를 이용해 힉스 입자와 같은 중요한 물리학적 이벤트를 찾아내기 위한 분석을 하는 작업의 양이 당시의 수퍼컴퓨터로 할 수 있는 계산의 양을 훨씬 더 크게 뛰어넘었다는 것이다. 또한 당시의 서버 기술로는 CERN 데이터센터에 계산 서버를 꽉 채워도 LHC 데이터 분석을 위한 계산을 하기에는 역부족이었다. LHC 데이터 분석을 위한 계산 자원을 확보하기 위해서는 여러 개의 데이터센터에 걸친 계산 자원들이 하나의 단일한 계산 자원같이 인식되도록 하여 계산할 수 있도록 하는, 아주 극단적인 이종환경에서의 고성능 컴퓨팅을 지원하는 분산컴퓨팅 기술이 필요했다. 과연 이렇게 어려운 분산컴퓨팅 소프트웨어 기술을 LHC 실험이 시작되기 전까지 만들 수 있을 것인가?
마지막 세 번째로, LHC 실험이 아주 오랜 기간에 걸쳐서 준비되고, 단계별로 업그레이드되면서 생성되는 데이터의 양이 점차 증가한다는 것이었다. 2008년 LHC와 네 개의 검출기가 시운전을 시작하기 전에 LHC 연구원들은 1990년대부터 실험을 준비했으니 거의 20년에 걸쳐 실험을 준비한 셈이다. LHC의 개념 설계를 준비하였던 CERN의 과학자들이 그 당시 기술로는 상상도 할 수 없을 만큼 큰 데이터양인 연간 1PB의 데이터를 저장하고 분석해야 한다는 사실을 계산으로 확인하면서 맞닥뜨린 가장 어려운 문제는 연간 1PB의 데이터를 저장, 분석하기 위한 컴퓨팅 시스템이 당시 기술로서는 달성하기 어려운 수준의 확장성(scalability)을 요구한다는 것이었다.
2018년부터 2020년에 고광도(high-luminosity) LHC 업그레이드를 위해 삽입가속기(injector)와 기반 시설을 업그레이드하게 되면 연간 현재 연산 생산되는 데이터의 30배 가까이 되는 743페타바이트, 2023년부터 2025년까지 고광도(high-luminosity) LHC 업그레이드를 진행하고 나면 2028년경에는 지금 생산되는 데이터의 3,000배인 약 3.7엑사바이트의 데이터가 생성될 것으로 예측된다. 이러한 데이터 증가량을 따라잡기 위해서는 LHC 빅데이터를 처리하는 시스템은 초기 설계부터 높은 확장성을 유지할 수 있는 아키텍처로 설계돼야 했다.
당시 컴퓨팅 기술은 무어의 법칙에 따라 프로세서의 성능이 1.5년에서 2년마다 2배가 되면서 급격한 발전을 거듭하고 있었기 때문에, LHC 실험을 시작할 즈음인 2008년경에는 1992년보다는 훨씬 더 좋은 성능의 컴퓨터를 사용할 수 있으리라는 사실은 분명했다. 하지만 그렇다고 해도, 한 대의 서버로는 저장할 수도, 계산할 수도 없는 양의 데이터라는 것은 분명했다. 무엇보다도 1992년 당시에는, 요즘은 보편화된 베오울프 클러스터 컴퓨팅 기술이 개발되기 전이었기 때문에 1PB의 데이터를 저장하고 처리하는 슈퍼컴퓨터 기술을 개발한다는 것은 요원해 보였다.
다행히도 위의 CERN 데이터 분석 컴퓨팅의 요구사항이 그리드 컴퓨팅 기술이 등장하면서 해결될 가능성이 보이기 시작했다.
그리드 컴퓨팅 기술은 1998년 당시 미국 아르곤 국립 연구소(Argonne National Laboratory)와 시카고 대학에서 일하던 이안 포스터(Ian Foster) 박사와 남가주 대학(University of Southern California)에서 일하던 칼 케셀만(Carl Kesselman) 박사가 “그리드 컴퓨팅 – 새로운 컴퓨팅 인프라의 청사진(The Grid: Blueprint for a New Computing Infrastructure)”이라는 유명한 책을 내면서 비로소 개념적으로 정립이 되기 시작했다. 그리드 컴퓨팅에 대한 자세한 소개는 앞으로 연재를 진행하면서 자세히 하기로 한다.
전기를 공급하는 파워 그리드와 같이 컴퓨팅 자원을 필요할 때 전기 플러그를 꽂아 전기를 쓰듯이 공급하자는 개념이 바로 그리드 컴퓨팅이었다. 사실 그리드 컴퓨팅은 1961년에 제안된 유틸리티 컴퓨팅, 1992년에 찰리 카트렛(Charlie Catlett)과 래리 스마(Larry Smarm) 박사에 의해 제안된 메타컴퓨팅, IBM에 의해 제안된 자율컴퓨팅(Autonomous Computing) 등의 다양한 컴퓨팅 개념의 영향을 받아 만들어진 개념이었다.
그림 1. (왼쪽 위) 그리드 컴퓨팅과 Globus 프로젝트의 창시자 이안 포스터 박사. (왼쪽 중간) 그리드 컴퓨팅과 Globus 프로젝트의 공동 창시자 칼 케셀만 박사. (왼쪽 아래) 이안 포스터 박사와 칼 케셀만 박사가 지은 “그리드 컴퓨팅 – 새로운 컴퓨팅 인프라의 청사진(The Grid: Blueprint for a New Computing Infrastructure)” 책. 그리드 컴퓨팅의 개념을 정립하고 세계적으로 주목을 받았다. (오른 쪽) 그리드 컴퓨팅 기술을 미들웨어로 구현한 Globus Toolkit 소프트웨어의 구성. (그림 소스: (왼쪽 위) https://www.ci.uchicago.edu/profile/191 (왼쪽 중간) https://www.isi.edu/~carl/ (왼쪽 아래) https://goo.gl/s5NVGH (오른쪽) http://toolkit.globus.org/toolkit/about.html )
그리드 컴퓨팅 기술이 이안 포스터 박사와 칼 케셀만 박사에 의해 주도되어 개발된 Globus 미들웨어를 통해 가시화되면서 CERN의 과학자들은 이들의 그리드 컴퓨팅 기술과 개념을 LHC 실험 데이터 분석에 활용하기 있는 방법을 모색하기 시작하였다. 당시 초기 Globus 미들웨어는 CPU와 같은 계산 자원을 통합하는 데에 집중하고 있었기 때문에, Globus 미들웨어만으로는 LHC 실험의 요구사항을 모두 충족할 수 없었다. 특히 저장 장치와 데이터 전송에 대한 요구사항을 Globus 미들웨어가 적절하게 충족시키지 못했기 때문에 Globus 미들웨어를 코어로 하고, LHC 실험의 요구 사항을 위한 추가의 미들웨어 기술을 개발하는 LHC 컴퓨팅 그리드(LHC Computing Grid; 이하 LCG) 프로젝트를 출범시키게 된다.
전 지구적인 계산 자원을 Globus 미들웨어로 통합하기 위한 LHC 연구원들의 노력은 많은 어려움에 부딪히게 된다. 그 중에서 가장 어려운 문제는 전세계에 퍼져 있는 컴퓨팅 자원들의 극단적인 이종성(heterogeneity) 문제다. 이런 계산 자원의 극단적인 이종성 문제는, 단순히 컴퓨팅 자원을 제공하는 데이터센터에서 사용하는 하드웨어 기종의 차이뿐만이 아니라, 각 데이터센터의 보안 정책, 노드 별로 설치되어 운영되는 운영체제와 소프트웨어의 차이와 같은 다양한 수준과 영역에 걸쳐서 일어났다. 아무리 Globus 미들웨어에서 표준 인터페이스를 정의해 미들웨어 수준의 상호작용을 표준화한다고 해도, 이러한 표준 인터페이스를 구현하기 위한 수준에서의 이종성이 너무 다양해서 모든 경우를 다 살펴 포용하기가 매우 어려웠다.
그림 2. 미국의 그리드 사이트와 유럽의 그리드 사이트간에 데이터가 교환되고 있는 모습을 표현한 WLCG 대시보드 모니터링. (Google Earth로 가시화함. http://wlcg.web.cern.ch/wlcg-google-earth-dashboard)
Globus 미들웨어를 기반으로 개발되고 있던 LCG 미들웨어 기술로 전 세계 고에너지 물리학 연구소의 컴퓨팅 센터와 데이터센터에 있던 자원을 통합하고 있던 LHC 연구원들은 LHC 실험의 시운전이 임박한 2004년에도 이런 이종성 문제가 해결되지 않고 여전히 원격 그리드 컴퓨팅 자원에서의 작업 성공률이 60% 정도밖에 되지 않는다는 사실 때문에 많은 걱정을 하고 있었다. 이런 낮은 작업 성공률의 원인은 여러 가지가 있었는데, 가장 많은 영향을 미치는 것이 작업 실행 환경과 노드별 방화벽 정책을 포함한 보안 정책이 데이터센터별로 너무 다르다는 것이었다. 이런 작업 실행 및 보안 환경을 각 데이터센터의 독특한 상황을 고려하면서도 일관성 있게 유지, 관리할 수 있을지가 문제였다.
이 문제의 해결책은 의외의 영역에서 등장하는데, 바로 가상 머신을 활용하는 것이었다. 당시 LCG 자원 통합 및 운영을 위해 정기적으로 열리고 있던 LCG 운영 및 통합 회의(LCG Operation and Integration Meeting)에서 분석 작업을 실행하기 전에 분석 작업에 필요한 의존성 소프트웨어와 환경이 동일하게 맞추어진 가상 머신 이미지를 해당 노드에 먼저 전송하여 실행시킨 다음, 이 가상 머신에서 분석 작업을 실행하는 아이디어가 제안되었다. LCG 자원에서의 이종성 문제는 가상 머신을 활용하는 방법을 채택하면서부터 작업 성공률이 크게 개선되기 시작하였다.
이렇게 LCG 그리드 인프라에서 가상 머신을 이용해 작업 실행 환경의 이종성을 극복하기 위한 기술을 체계적으로 개발하기 시작한 것이 바로 오늘날 우리가 보고 있는 클라우드 컴퓨팅 기술의 시작이었다. 이러한 LCG 그리드 기술에서 가상 머신 기술을 클라우드 컴퓨팅 기술로서 체계화, 산업화하기 시작한 것이 당시 스페인 마드리드 대학의 고성능 컴퓨팅 기술 연구실에서 개발하였던 최초의 클라우드 컴퓨팅 미들웨어인 OpenNebula와 이스라엘 하이파(Haifa) 소재 IBM 연구소에서 유럽의 여러 분산컴퓨팅 연구팀과 유럽연합의 FP7 프로그램의 지원을 받아 개발하기 시작한 Reservoir 프로젝트이다[9-11].
그림 3. 전 세계에서 운영되고 있는 그리드 사이트의 위치 및 규모. 2016년 기준 자료이며, 전세계 컴퓨팅 센터에 걸쳐 약 65만 CPU 코어와 500PB의 저장 장치를 약 4만 6천명의 사용자들이 사용하고 있다. 한국의 KISTI에서 운영하고 있는 ALICE Tier-1 데이터센터도 같이 보인다[8].
빅데이터 기술에서 가장 중요한 것 – 자원 이종성 극복과 확장성
이 연재를 시작하면서 필자는 빅데이터 비즈니스를 기술에 초점을 맞추지 말고 조직 고유의 요구사항과 비즈니스, 또는 문제 해결의 목적에 초점을 맞추어서 빅데이터 비즈니스 모델과 시스템을 디자인하라고 계속해서 조언해 왔다. 클라우드 컴퓨팅이 시작된 배경을 살펴보면서도 우리는 조직 및 비즈니스에서 당면한 문제를 해결하기 위해 기술을 도입하는 것이지, 결코 기술만을 앞세워서는 성공할 수 없다는 사실을 다시 교훈으로 얻게 된다.
CERN에서 현재 클라우드 컴퓨팅의 핵심 기술의 하나인 가상화 기술이 필요하게 된 배경에는, LHC의 막대한 빅데이터를 분석하기 위한, 당시 기술로서는 도달하기 어려운 극단적인 수준의 확장성을 구현할 수 있는 컴퓨팅 인프라를 구축하기 위해 자원 이종성(resource heterogeneity) 문제 해결의 방책으로서 가상화 기술을 도입했다는 것을 앞에서 살펴보았다. CERN은 LHC 실험을 위해 필요한 기술적인 난제를 푸는 과정에서 클라우드 컴퓨팅 기술을 생각하게 된 것이지, 결코 클라우드 컴퓨팅 기술을 가지고 어떤 비즈니스를 할 것인지 생각한 것이 아니다.
CERN이 이렇게 가상화 기술을 그리드 컴퓨팅에 도입하고 개발했지만, 정작 LCG 미들웨어를 개발한 연구원들은 이 기술이 후에 클라우드 컴퓨팅이라 불리게 될 것을 생각하지 못했다. IBM이 유럽연합 FP7 프로그램의 지원을 받아 Reservoir 프로젝트를 시작하고 나서야 비로소 LCG 및 EGEE 미들웨어 기술 개발에서 클라우드 컴퓨팅이라는 말이 쓰이기 시작한 것을 보면 클라우드 컴퓨팅을 도입하는 것이 CERN과 LHC의 근본적인 임무와 비즈니스 모델에 영향을 주지는 않았다.
그래서 빅데이터를 하둡과 스파크로 대표되는 소프트웨어 기술로서만 보는 관점이 충분하지 않은 것이다. 빅데이터 비즈니스의 핵심은 결국 플랫폼 비즈니스 모델을 통해 비즈니스 대상에서 데이터를 수집하고, 이 수집된 데이터를 다르게 가공하거나 변형해서 또 다른 대상이나 데이터를 제공한 대상에게 새로운 서비스를 제공해서 이익을 얻는 것이다. 데이터를 수집하고 다루는 과정에서의 경쟁력과 차별성이 바로 빅데이터 비즈니스의 중요한 경쟁력중의 하나가 될 것이다. 기술적인 측면의 경쟁력, 차별화 요소중 하나가 빅데이터 인프라 시스템에 요구되는 자원 이종성(resource heterogeneity)과 확장성(scalability)을 어떻게 극복하느냐 하는 것이다.
빅데이터 인프라의 자원 이종성 문제와 확장성 문제를 각 조직과 기업마다 어떻게 극복하느냐 하는 것이 중요한 경쟁력이 되는가 하는 것은, 현재 성공적인 빅데이터 비즈니스를 꾸려가는 주요 기업들이 이런 기술들을 차별화된 기술로써 선보이는 것으로 살펴 볼 수 있다. 구글의 맵리듀스(MapReduce)나 빅테이블(BigTable)같은 분산컴퓨팅 기술들은 결국 빅데이터 처리를 위한 자원 확장성 문제를 해결하기 위한 구글만의 해결책이었다. 빅데이터 솔루션이 오늘날처럼 풍성하지 않았던 시기에 빅데이터 비즈니스를 일궈낸 선구자들은 빅데이터를 다루기 위해 IT 인프라에 필요했던 확장성을 극복하는 과정에서 기술적인 경쟁력과 차별화를 만들어 냈고, 이런 확장성을 극복하려는 방법으로 자원 이종성 문제를 해결해야 했다.
이제 클라우드 컴퓨팅은 가상화 기술을 핵심 기술로 하여 자원 이종성을 극복하고, IaaS 기술을 발전시키면서 OpenStack이 구현하는 것과 같이 메시지 큐(message queue) 미들웨어를 이용한 서비스 지향 아키텍처에 기초하여 클라우드 컴퓨팅 기술을 발전시키면서 확장성 문제를 해결해 나가고 있다. 이러한 클라우드 컴퓨팅 기술의 특성은 빅데이터 IT 시스템의 요구사항을 충족하는 데에도 적합하며, 앞으로 빅데이터 인프라에서는 클라우드 컴퓨팅 기술이 필수적인 시스템 소프트웨어 기술로써 활용될 수 밖에 없을 것이다.
필자가 빅데이터 문제를 해결하기 위한 클라우드 컴퓨팅을 얘기할 때에는 아마존 웹 서비스(Amazon Web Service)와 같은 퍼블릭 클라우드 서비스를 사용하는 관점에서 클라우드 컴퓨팅을 얘기하는 것은 아니다. 그리드 컴퓨팅이 가졌던 비전이었던 IT 자원을 원하는 만큼, 필요할 때, 요청만 해서 언제든지 사용한다는 개념은 현대 클라우드 컴퓨팅이 계승하여 서비스 형태(as-a-Service)의 주문형 자원 사용(on-demand resource utilization) 및 지불의 개념으로 훌륭하게 실현되었다. 필자는 클라우드 컴퓨팅을, 데이터센터 스케일의 자원 확장성을 제공하면서, 이런 거대한 스케일의 자원에서 나타나는 자원 이종성과 자원 계층을 극복하기 위한 시스템 소프트웨어 기술로서 말하고 있다.
요즘 리눅스만큼이나 중요한 위치를 차지하고 있는 오픈소스 클라우드 컴퓨팅 기술인 오픈스택은 점차 리눅스 커널(Kernel)과 같은, 데이터센터 스케일 컴퓨팅을 위한 클라우드 운영체제의 커널과 같은 위치로 발전해가고 있다. 빅데이터 저장, 처리, 가공 및 분석을 위해 필요한 컴퓨팅 자원, 저장 장치 자원, 네트워크 자원을 필요한 만큼 확장성 있게 제공하는 시스템 소프트웨어 스택으로서 클라우드 컴퓨팅 기술은 점차 빅데이터 인프라의 핵심 요소로 자리 잡아 가고 있다. 빅데이터를 활용하는 기업은 빅데이터가 요구하는 자원 확장성 문제를 근본적으로 해결하기 위한 IT 인프라 아키텍처로서 앞으로는 클라우드 컴퓨팅을 필수적으로 써야 할 것이다.
그렇다면 아마존 웹 서비스와 같은 퍼블릭 클라우드 서비스는 빅데이터 비즈니스 조직에서 어떻게 활용해야 할까? 이미 글이 길어져서 다음 연재에 좀더 자세히 소개하겠지만, 일단 간단하게 얘기하자면 빅데이터 비즈니스 초기에 빅데이터 인프라에 들어가는 투자 위험을 줄이고 시장 상황에 따라 변하는 빅데이터 자원 수요에 탄력적으로 대응하여 비즈니스 운영상의 위험 요소를 줄이는 용도로 퍼블릭 클라우드 서비스를 적극적으로 활용할 수 있다. 이에 대해서는 앞으로 빅데이터 비즈니스와 클라우드 컴퓨팅 기술과의 관계를 살펴보면서 좀더 자세히 다루기로 한다.
[참고문헌]
[1] 김진철, “LHC에서 배우는 빅데이터와 machine learning 활용 방안”, 2016년 9월 28일, A CIO Conversation for Technology Leadership – Breakfast Roundtable 발표 자료
[2] Oracle CEO Larry Ellison – What the hell is Cloud Computing?, https://www.youtube.com/watch?v=0FacYAI6DY0.
[3] “What the Hell is Cloud Computing?” (Larry Ellison, CEO of Oracle), http://www.utm.edu/staff/lholder/infs410/whatthehelliscloudcomputing.pdf .
[4] Bob Evans, “Cloud Computing: Larry Ellison’s Top 10 Reasons Why You’ll Want It,” June 6, 2012. (https://goo.gl/cfZMm)
[5] JAMES NUNNS, “He said what? 5 things Larry Ellison actually said about cloud,” Computer Business Review, 27TH APRIL 2015. (https://goo.gl/ijWaM1 )
[6] DAN FARBER, “Oracle’s Ellison nails cloud computing, “ C-Net, SEPTEMBER 26, 2008. (https://goo.gl/TFfqLt )
[7] Jonathan Vanian, “Oracle’s Larry Ellison Belittles Amazon and Microsoft,” Fortune, Mar 16, 2017. (https://goo.gl/M8Lo7u )
[8] European Grid Initiative, “Introduction to EGI – Vision and mission Solutions Governance International collaborations.”
[9] http://cordis.europa.eu/project/rcn/85304_en.html
[10] Benny Rochwerger, “REsources and SERvices VirtualizatiOn wIthout boundaries’,” IBM Haifa Research Lab, 2008. (contributed to NESSI, https://goo.gl/pHR6nT )
[11] The RESERVOIR Seed Team, “RESERVOIR, An ICT Infrastructure for Reliable and Effective Delivery of Services as Utilities,” IBM Technical Paper, 2008. (https://goo.gl/vHiCsV)
*김진철 박사는 1997년 한국과학기술원에서 물리학 학사, 1999년 포항공과대학교에서 인공신경망에 대한 연구로 석사 학위를, 2005년 레이저-플라즈마 가속기에 대한 연구로 박사 학위를 받았다. 2005년부터 유럽입자물리학연구소(CERN)의 LHC 데이터 그리드 구축, 개발에 참여, LHC 빅데이터 인프라를 위한 미들웨어 및 데이터 분석 기술을 연구하였다. 이후 한국과학기술정보연구원(KISTI), 포항공과대학교, 삼성SDS를 거쳐 2013년부터 SK텔레콤에서 클라우드 컴퓨팅과 인공지능 기술을 연구하고 있다. 빅데이터와 인공지능 기술의 기업 활용 방안에 대해 최근 다수의 초청 강연 및 컨설팅을 수행하였다. dl-ciokorea@foundryco.com