클라우드 컴퓨팅과 인공지능의 만남

[컴퓨터월드] 4차 산업혁명 시대가 본격 열리고 있다. 4차 산업혁명의 핵심 주체는 소프트웨어다. 즉 ▲인공지능(AI) ▲사물인터넷(IoT) ▲빅데이터(Bigdata) ▲클라우드(Cloud) ▲로봇(Robot) ▲3D프린팅 ▲자율주행자동차 등 소프트웨어를 기반으로 한 핵심 기술들과 응용 기술들이 산업과 사회의 경계를 허물게 된다. 다시 말해 소프트웨어를 바탕으로 한 융합의 산물들이 우리사회를 크게 변화시켜 나간다는 것이다.

이 혁명은 기존 1~3차 산업혁명들과는 다른 양상으로 전개될 것이다. 즉 보다 더 빠르고, 더 다양하고 많은 분야에서, 사회 전체 시스템의 변화를 수반하며 사회를 탈바꿈시킬 것이다. 거부할 수 없는 변화의 흐름이자 진화이다. 본지는 이에 따라 4차 산업혁명의 핵심 주체들에 대한 보다 상세한 내용을 살펴보고자 안성원 소프트웨어정책연구소 신기술확산연구팀장이자 공학박사로부터 기고를 받아 10회에 걸쳐 전문가 강좌를 연재한다. <편집자>

▲ 안성원 소프트웨어정책연구소 신기술확산연구팀장
- 고려대학교 컴퓨터공학과 졸업 (컴퓨터공학박사)
- 연구분야: SW신기술/AI, IoT, 빅데이터 등 지능정보기술
/자율주행자동차/지능정보기술인프라

 

1. (인공지능 배경 및 개론) 인간과 컴퓨터 그리고 다가온 인공지능 (’17. 1월호)
2. (자동차) 빅데이터와 인공지능을 활용한 자율주행 자동차 어디까지 왔는가? (’17. 2월호)
3. (IoT & Bigdata & AI) 사물인터넷과 빅데이터 그리고 인공지능으로 이어지는 기술체인 (’17. 3월호)
4. (IoT&AI) 사물인터넷의 기술수준과 사물지능의 실현 가능성 (’17. 4월호)
5. (자동차) 자율주행차를 가능하도록 하기 위한 기반 기술들 (’17. 5월호)
6. (자동차) 커넥티드 카의 실현과 지능형 교통시스템 (’17. 6월호)
7. (Cloud&AI) 클라우드 컴퓨팅과 인공지능의 만남 (이번호)
8. (BigData) 빅데이터를 제대로 활용하기 위한 조건 : 데이터의 확보
9. (AI&ComputingPower) 고성능 병렬 컴퓨팅 환경의 중요성과 현황
10. (OpenSource) 공유를 통한 발전 사례 비교와 우리의 현황


클라우드 컴퓨팅(Cloud Computing)은 데이터에 대한 처리를 네트워크로 연결된 다수의 컴퓨팅 자원을 이용해 저장 및 처리하는 기술이다. 다양한 컴퓨팅 디바이스(Device)들이 서로 유동적으로 연결되며 이 기기들 간의 업무 분산을 통해 다양한 형태의 서비스를 제공할 수 있다.

클라우드는 직역하면 ‘구름’이다. 구름과 같이 수증기가 응집되어 하나의 커다란 집합체를 이루는 것처럼, 컴퓨터 과학에서 세세한 개별 장치들의 연결된 모임을 추상화한 개념이 바로 클라우드 컴퓨팅이다. 이를 도식화할 때도 주로 아래 <그림 1>과 같은 구름 모양의 이미지가 등장한다.

▲ <그림 1> 클라우드 컴퓨팅의 도식화 예시

클라우드 또는 클라우드 컴퓨팅의 처음 목적은 서버 자원의 효율적인 사용이었다. 클라우드는 서비스 사업자들이 보유한 서버가 지역, 시간 등의 특성에 따라 특정 서버에 부하가 몰리는 반면 다른 서버는 유휴(Idle)한 상태에 있는 문제를 해결하기 위한 분산컴퓨팅(Distributed computing) 환경의 구축에서 시작되었다.

이는 서로 다른 서버들을 네트워크로 연결하고, 서버의 용량을 초과하는 방대한 양의 데이터를 나눠서 저장하거나, 많은 계산을 필요로 하는 작업들을 분산시켜서 병렬적으로 보다 빠르게 정보를 처리하도록 하는 것이 목적이다. 즉, 컴퓨팅 파워와 저장능력을 여러 다른 컴퓨터들과의 연결을 통해 향상시킨 개념이다. 다소 쉽고 직관적인 비유를 들자면, 컴퓨터 세상의 크라우드 소싱(Crowd sourcing)1)이라 할 수 있다.


클라우드 컴퓨팅 위해서는 가상화 기술이 중요

클라우드 컴퓨팅 서비스를 가능하게 하기 위해서는 먼저 가상화(Virtualization) 기술이 요구된다. 가상화 기술은 여러 하드웨어를 하나의 하드웨어처럼 동작하게 하거나, 반대로 하나의 하드웨어를 여러 개의 하드웨어인 것처럼 동작하게 할 수 있는 기술이다. 클라우드 컴퓨팅에서 가상화 기술은 분산되어 있는 서로 다른 컴퓨팅 디바이스들을 사용자 입장에서는 마치 하나의 기기처럼 동작하는 것과 같이 보이게 하는 기술로, 기기들 간의 통신 및 로드 밸런싱(Load balancing)을 갖춰야 한다.

사용자는 일반적으로 사용자가 보고, 듣고, 조작할 수 있는 친숙한 UI(User Interface) 외에 그 기반에서 일어나고 있는 복잡한 매커니즘에 대해서는 알 필요가 없다. 복잡한 기반 매커니즘을 숨기고 사용자에게는 꼭 필요한 UI만을 제공하는 것을 컴퓨터 과학에서는 추상화(Abstraction)라고 하는데, 클라우드 컴퓨팅에도 각각의 하드웨어를 추상화시키는 작업이 필요하며 이를 구현하기 위해서는 가상화 기술이 수반되어야 한다.

가상화를 통한 클라우드 환경은 근래 들어 하드웨어의 발달과 대중화로 인해 규모의 확장성 측면에서 괄목할 만한 성과를 보이고 있다. 클라우드 컴퓨팅은 수많은 CPU와 GPU를 병렬로 연결하여 슈퍼컴퓨터를 만들거나, 거대한 글로벌 엔터프라이즈 규모로 확장되는 양상을 보인다. 최근에는 고성능 인공지능의 등장과 빅데이터의 활성화에 따라 클라우드 컴퓨팅은 이 기술들을 보다 발전시킬 수 있는 인프라적인 요소로 각광을 받고 있다. 인공지능과 빅데이터는 클라우드 컴퓨팅을 발전시키기 위한 핵심기술이자 요소이다.

클라우드 컴퓨팅은 성능과 확장성이라는 측면에서도 많은 장점을 갖지만, 비용의 절감 측면에서도 장점이 있다. 이를테면, 수백 대로 이루어진 클라우드 컴퓨팅 환경을 구축했을 경우, 필요할 때는 슈퍼컴퓨터와 동일한 수준의 계산 성능을 보이면서 자원의 일부는 서비스 제공에, 또 다른 일부는 내부 연구를 위한 실험환경으로, 남는 자원은 다른 사용자에게 유료로 빌려주는 등 컴퓨팅 자원을 효과적으로 사용할 수 있다. 이러한 유연함은 주로 특정 용도로만 사용되는 값비싼 슈퍼컴퓨터보다 더 경제적이다.


성능, 확장성 외에 비용도 절감

클라우드 컴퓨팅의 서비스는 크게 세 가지로 분류된다. 즉 IaaS(Infrastructure as a Service), PaaS(Platform as a Service), SaaS(Software as a Service) 등이다. 이 분류는 미국 국립표준기술연구소(NIST)에서 지정한 표준이다. 이들의 관계도는 <그림 2>와 같이 계층화된 모델로 종종 표현되곤 한다.

▲ <그림 2> 클라우드 컴퓨팅 서비스의 종류

IaaS는 인프라에 관한 서비스이다. 인프라는 기본적으로 클라우드 서비스를 가능하게 하기 위해서 필요한 기반을 의미한다. 앞서 설명한 가상화 기술과 네트워크 기술을 통해 각각의 물리적인 컴퓨팅 자원을 분할, 통합, 관리하는 가상머신(Virtual Machine) 환경 서비스를 제공한다. 사용자는 이 인프라 위에서 다양한 클라우드 서비스를 구현 및 테스트 하거나 활용할 수 있다. 클라우드 인프라를 구축하기 위해서는 우선 구현하고자 하는 클라우드 내에 네트워크로 연결된 장비(디바이스)들 간의 가상화가 필요하다.

장비를 가상화한다는 것은 해당 장비가 하나의 물리적인 하드웨어를 가지고 있지만, 마치 두 개를 가진 것처럼 동작하게 한다는 것을 의미한다. 클라우드 서비스에서는 그 반대의 동작도 필요하다. 즉 여러 대의 장비가 마치 하나의 장비인 것처럼 서로 유기적으로 묶여 있어야 하고, 이들 간의 업무 분산 및 데이터의 저장과 이동이 지원되어야 한다. 이를 위해서는 계산이나 저장소 역할을 하는 디바이스(대표적으로는 서버)가 각 개체 단위로 가상머신이 되어야하기도 한다.

가상화의 개념에 대해서 좀 더 깊이 들어가 보면, 장비에 장착되어 있는 하드웨어를 가상화하기 위해서는 하드웨어들을 관장할 가상머신모니터(VMM: Virtual Machine Monitor)와 같은 중간관리자가 필요한데, 이를 하이퍼바이저(Hyperviser)라고 한다. 가상화는 <그림 3>과 같은 시스템 개념도상 하이퍼바이저의 위치 및 역할 차이에 따라 타입1과 타입2로 나뉜다.

▲ <그림 3> 가상화의 종류

타입1은 일반적으로 하이퍼바이저(Hyperviser)형 가상화라고 한다. 이는 하드웨어 상에 가상머신을 관리하기 위한 VMM을 직접 동작시키는 방식으로 하드웨어를 관장하기 위한 호스트 운영체제(OS)가 필요 없는 형태이다. 이 방식은 하이퍼바이저가 하드웨어의 어느 부분까지 관장하며 관리할 것인가에 따라 다시 전가상화(Full Virtualization)와 반가상화(Para Virtualization)로 나뉜다.

타입2는 일반적으로 호스트(Host)형 가상화라고 하는데, 하드웨어 상에 호스트 운영체제가 설치되어 있고, 이 호스트 운영체제 상에 설치되어 하이퍼바이저 역할을 수행하는 VMM이 가상머신을 동작시키는 방식이다.

쉽게 말하면, 하이퍼바이저 방식은 하드웨어 위에서 직접 가상머신을 구동하고, 호스트 방식은 마이크로소프트(MS) 윈도우와 같이 잘 알려진 운영체제 위에서 리눅스를 에뮬레이션(Emulation) 하는 것과 같다. 하이퍼바이저 방식의 대표적인 예는 오픈 소스 기반인 젠(Xen)이나 KVM이 있고, 그밖에도 ESX, VM 서버, 하이퍼V 등이 있다. 호스트 방식의 대표적인 예로는 VM웨어 시리즈나 버추얼박스(Virtual Box), 버추얼PC(Virtual PC) 등이 있다.


다양한 형태의 클라우드 서비스

다시 클라우드 서비스 주제로 돌아와서, IaaS로 제공할 수 있는 서비스는 파일 및 오브젝트 스토리지, 가상 IP주소를 비롯한 SDN(Software Define Network)과 같은 가상네트워크, 방화벽, 컴퓨터 부하 조절을 위한 로드밸런서(Load balancer) 등이 있다. IaaS 서비스의 과금 정책은 컴퓨팅이나 저장에 소모되는 자원의 사용량을 기반으로 책정한다.

PaaS는 플랫폼 제공 형태의 서비스이다. 제공할 수 있는 서비스로는 가상운영체제, 프로그래밍 언어 실행환경, 데이터베이스, 웹 서버와 같은 계산 자원이 있다. 또한, 개발자들에게 개발을 위한 도구로써 표준, 개발 응용프로그램의 배포를 위한 채널 등을 제공할 수 있다. 구글의 APP엔진이 대표적인 예이다.

모바일 서비스에 특화된 BaaS(Bakend as a Service)도 최근 PaaS로 각광받고 있다. BaaS는 모바일 디바이스를 통한 클라우드 접속이 보편화 되면서 등장하게 되었다. 모바일 앱 개발 시 자주 사용하는 공통적인 백엔드 기능에는 계정등록 및 관리, 위치서비스, 데이터 저장 및 분석, 구매확인, 사용자 관리 푸시알림 등이 있는데, 이를 API 형태로 제공받으면서 개발자들이 백엔드 플랫폼을 서비스 형태로 빌려 쓰는 개념이다. 예를 들어 마이크로소프트(MS)는 이미 자사의 클라우드 컴퓨팅 플랫폼인 애저(Azure)에 BaaS기능을 포함시키고 있다.

SaaS는 사용자들에게 클라우드 인프라 및 플랫폼 상에서 구동하는 온디맨드(On-Demand) 형태의 응용 소프트웨어와 데이터베이스 등을 제공한다. 이 서비스는 사용자들로 하여금 자신의 컴퓨터 또는 디바이스에 응용프로그램을 설치하고 실행할 필요가 없게 한다. 따라서 프로그램의 유지보수 및 관리 등과 같은 관련비용이 필요하지 않다. 대표적인 서비스로는 구글 독스(Docs), 네이버 클라우드, 드롭박스(Dropbox) 등이 있다.

클라우드 컴퓨팅은 이처럼 자원의 효율적인 활용 측면에서 장점을 가지며, 사용자 입장에서는 반드시 좋은 컴퓨팅 사양을 갖추거나 특정 서비스를 제공받기 위한 프로그램을 자신의 단말에 설치하지 않아도 다양한 서비스를 받아 볼 수 있다는 장점이 있다. 이는 사용자 단말의 경량화를 가능하게 하며, 나아가 복잡한 컴퓨팅을 위한 추가적인 전력소모도 신경 쓰지 않아도 됨을 의미한다.


클라우드 컴퓨팅의 산물 ‘알파고’

인공지능의 측면에서 클라우드 컴퓨팅은 어떠할까? 글로벌 IT업계들은 이미 경쟁적으로 인공지능의 성능향상을 위해 클라우드 컴퓨팅을 적극 활용하고 있다.

구글, IBM, MS, 아마존 등은 지금까지 축적해온 클라우드 기술을 바탕으로 인공지능 클라우드 솔루션과 서비스를 구축하고 있다. 구글이 선보인 강력한 바둑머신 알파고 또한 클라우드 컴퓨팅의 산물이다. 클라우드 컴퓨팅은 상대적으로 저렴한 비용으로 인공지능의 연산능력을 향상시킬 수 있고, 또한 컴퓨팅 자원의 추가나 가변이 용이하다. <표>는 글로벌 IT 업계들의 인공지능을 위한 클라우드 컴퓨팅 환경 구축의 현황을 나타낸다.

▲ 글로벌 IT업계의 클라우드 및 머신러닝 개발 현황

이전 호에서도 언급했지만, 인공지능 딥러닝의 성능향상을 위해서는 수많은 데이터에 대한 학습이 필요하고, 이를 계산하기 위해서는 막강한 연산성능이 요구된다. 학습을 위한 빅데이터의 저장과 지속적인 공급 측면, 높은 연산성능을 이끌어 내기 위한 컴퓨팅 측면에서 클라우드 컴퓨팅은 슈퍼컴퓨터에 비하여 뛰어난 유연성과 가성비(가격대 성능비)를 제공한다.

글로벌 IT 업계들이 클라우드 방식으로 인공지능 서비스를 제공하거나 사용하고자 하는 데에는 성능과 유동적 관리 측면 외에도 또 다른 이유가 있다. 인공지능 서비스를 클라우드 형태로 제공하면 각 기업들은 반드시 모든 인공지능 기술을 확보할 필요가 없다. 다른 사업자가 제공하는 클라우드 인공지능 플랫폼을 활용하여 자신의 비즈니스 모델에 맞는 인공지능 서비스를 개발하거나 이용할 수 있다. 기업들은 자사의 머신러닝 툴을 오픈소스 형태로 공개하면서 인공지능 플랫폼 시장을 차지하기 위한 경쟁을 벌이고 있다.

사실 인공지능 머신러닝이 많은 성과를 낼 수 있긴 하지만, 일부 전문성과 컴퓨팅 자원을 갖춘 기업들이 아닌 많은 기업들에게는 여전히 장벽으로 존재한다. 특히 딥러닝 알고리즘은 입력되거나 계산되어야 하는 변수가 매우 다양하고 많아서 모델을 학습시키는데 상당한 컴퓨팅 자원이 필요하다. 때문에 값 비싼 전용 하드웨어가 필요하기도 하고, 출력 값의 정확도를 향상시키기 위해 반복적인 학습이 필요한데 하드웨어가 느리면 학습자체의 시간도 오래 걸린다. 그렇다고 하드웨어를 위한 적극적인 투자 또한 비용과 리스크를 함께 떠안는 셈이 된다.

클라우드 컴퓨팅을 활용하면 이런 부분을 해결 할 수 있다. 컴퓨팅을 위한 하드웨어 자원(IaaS)이나 학습을 위한 플랫폼(PaaS)을 빌려 쓰는 게 가능하다. 과금 체계에 따라서는 클라우드 컴퓨팅 자원에서 인프라 및 플랫폼뿐만 아니라 데이터까지도 이용하는 것이 가능할 수 있다.

구글은 클라우드 머신 러닝 플랫폼을 서비스 하고 있다. 구글이 제공하는 클라우드는 머신러닝 훈련을 보다 빠르게 해주는 컴퓨팅 자원(GPU, TPU 등)뿐만 아니라 몇몇 인공지능 기술들이 구현된 형태의 플랫폼 또한 제공한다.


MS, 인텔리전트 클라우드 서비스 추진

MS는 지난 30년간 윈도우 운영체제(Windows OS)와 같은 시스템 소프트웨어, MS 오피스(MS Office)와 같은 대중적인 응용프로그램으로 글로벌 시장에서 최고의 매출을 유지해 왔다. 최근 MS의 전략과 비전은 모바일을 중시하는 ‘클라우드 퍼스트’로 바뀌었다.

MS는 판매하는 모든 제품과 서비스를 자사의 클라우드 서비스인 애저(Azure)를 통해 더욱 정교하고 소비자 친화적으로 서비스하는 것을 목표로 하고 있다. 이를테면, 사물인터넷 서비스는 Azure IoT, DB는 SQL 서버, 업무환경은 자동번역이 지원되는 오피스(Office) 같은 형식을 통합으로 지원하는 클라우드 서비스이다.

여기에 인공지능을 더하여 ‘인텔리전트 클라우드’ 서비스를 추진하고 있다. 지난 수십 년간의 기본 정책이었던 ‘윈도우 독점적인 소프트웨어’ 에서 리눅스나 iOS까지 지원하는 클라우드 플랫폼 서비스로 전환하고 있는 것이다.

마이크로소프트의 사례처럼 다양한 시스템을 지원하는 클라우드 플랫폼 서비스는, 앞서 예시로 든 기업들이 구글의 클라우드 자원을 빌려 쓰듯이 소비자들도 자신의 PC없이 컴퓨터를 빌려서 이용할 수 있다는 점을 보여주고 있다. 많은 글로벌 IT 기업과 기관이 값비싼 슈퍼컴퓨터 대신 클라우드 컴퓨팅 시스템에 투자하는 이유이다.

입자가속이나 충돌과 같은 실험을 진행하고 있는 유럽입자물리연구소(CERN)2)의 경우에는 하루에 500테라바이트(TB) 이상의 데이터가 생성되고 있는데, 향후 2023년까지 현재의 60배에 달하는 컴퓨팅 자원이 필요할 것으로 예상된다.

때문에 CERN은 오픈스택(OpenStack)3)을 활용한 클라우드 환경을 구축하고 컴퓨팅 파워를 충당하고 있다. 현재 CERN의 컴퓨팅 자원의 90% 이상을 가상화했고, 클라우드에 참여하는 컴퓨팅 코어는 19만 개 이상(`16년 10월 기준)이며 10만 개의 코어를 추가 중에 있다. 이로써 컴퓨팅 파워에 필요한 예산과 인력 문제를 보다 효율적으로 처리하고 있다.

클라우드 컴퓨팅의 영역은 IoT, 빅데이터, 인공지능과 같은 4차 산업혁명 시대의 핵심기술과 맞물려 넓어지고 있는데, 가상화를 통한 ‘이종기기 간의 지원’ 또한 큰 특징이자 장점이라 할 수 있다. 현재 IT 및 SW개발 기업들이 지향하는 서비스는 결국 고객의 다양한 요구조건을 만족시키는 것이고, 이것은 특정기기에 종속된 네이티브 앱(Native App) 보다는 크로스플랫폼(Cross Platform)이 가능한 기술임이 자명하다. 때문에 사용하는 운영체제나 기기에 상관없이 지속적이고 한결같은 서비스를 연동할 수 있는 클라우드 서비스 분야에 기업들은 집중하고 있다. 앞서 살펴본 MS의 사례에서처럼 말이다.


4차 산업 시대에 떠오르는 클라우드 컴퓨팅

지난 호에서 가상비서에 대해 소개했었는데, 이러한 가상비서들에게 소비자가 요구한 사항 중 제법 계산이 필요한 ‘지능적’서비스를 제공하기 위해서는 사용자의 디바이스가 아닌 다른 곳에서 컴퓨팅 자원을 끌어다 쓸 수 있다. 그리고 이 계산을 위한 다른 곳은 클라우드 서비스를 제공하는 서비스업자가 제공할 수도 있다.

사용자가 집에서 휴식을 취하거나, 출근 준비를 하거나, 운전을 하거나 그 어떤 일을 하더라도 인공지능이 결합된 서비스를 위한 컴퓨팅은 멈추지 않고 계속되는 것이다. 클라우드와 인공지능이 결합된 서비스는 결국 이렇게 완성되어 갈 것이다.

정리하면, 4차 산업혁명시대의 실현에는 지금까지 살펴보았던 IoT, 빅데이터, 인공지능과 클라우드 서비스의 상호 필요에 의한 융·복합이 있을 수밖에 없으며, 각 기술 요소가 서로를 발전시킬 것이다.

####

1) 크라우드 소싱(Crowd sourcing): 대중(Crowd)과 아웃소싱(Outsourcing)의 합성어로, 대중들의 참여를 통해 솔루션을 얻는 방법.

2) 유럽입자물리연구소(CERN): 원래 명칭은 ‘유럽 원자핵 공동 연구소’

3) 오픈스택(OpenStack): 오픈소스 클라우드 기술로 IaaS에 초점이 맞추어져 있고, 2012년 비영리단체인 (OSF)Open Stack Foundation에서 유지, 보수, 아파치 라이선스로 배포하는 등의 관리를 하고 있다.

저작권자 © 아이티데일리 무단전재 및 재배포 금지