2020.01.28

김진철의 How-to-Big Data | 빅데이터의 미래 (3)

김진철 | CIO KR

사이버 물리 시스템과 클라우드 컴퓨팅의 관계
지난 서른여섯 번째 글에서 빅데이터를 포함하여 최근 주요 IT 기술 트렌드로 떠오르고 있는 5G, 클라우드 컴퓨팅, 인공지능, IoT, 엣지 컴퓨팅이 발전해 나가는 공통의 지향점으로서 “사이버 물리 시스템(Cyber-Physical System)”이라는 개념을 소개하였다. 이 사이버 물리 시스템의 정의와 특성, 그리고 사이버 물리 시스템에서 빅데이터를 다루는 문제가 왜 부각되어 나오게 되었는지 간단하게 그 배경을 소개하였고, 사이버 물리 시스템이 앞으로 발전해가는 방향을 잘 표현하는 말로서 “인지 사이버 물리 시스템(Cognitive Cyber-Physical System)”의 개념을 같이 살펴보았다.

이번 글에서는 최근 다시 중요한 기술로 부각되고 있는 클라우드 컴퓨팅이 사이버 물리 시스템에서 왜 중요한 기술이 되는지 같이 생각해보려고 한다. 서버리스 컴퓨팅과 클라우드 네이티브 프로그래밍이 최근 유행하면서 빅데이터 응용 소프트웨어 개발과 분석도 클라우드 컴퓨팅으로 많이 옮겨가는 추세지만, 클라우드 컴퓨팅 발전 초기에는 빅데이터 처리용 고성능 컴퓨팅 시스템에 베어메탈 하둡이나 스파크를 구축해서 빅데이터 처리를 하는 기업이나 조직이 많았지 클라우드 컴퓨팅을 빅데이터에 활용하는 기업이 생각보다 많지 않았다.

클라우드 컴퓨팅의 개념이 정립되어가던 2000년대 말부터 2010년대 중반까지 클라우드 컴퓨팅 발전 초반에는 컴퓨팅 자원 사용의 주문형 서비스화, 투자비(CapEx)가 아닌 운영비(OpEx)로의 IT 비용 전환을 통한 비용 절감의 측면에서 클라우드 컴퓨팅을 강조하는 경향이 많았다. 심지어 클라우드 컴퓨팅의 초창기에는, 현재는 대표적인 빅데이터 기술로 불리는 구글의 맵리듀스 기술을 클라우드 컴퓨팅의 대표적인 기술로 꼽는 사람들도 있었다. 클라우드 컴퓨팅 발전 초반에는 자원 활용의 탄력성(elasticity)이 크게 강조되지 않거나 서비스 지향(service-oriented) 유틸리티 컴퓨팅(Utility computing)의 개념과 혼용해서 혼란스럽게 사용하는 경우가 많았기 때문에 클라우드 컴퓨팅이 빅데이터 컴퓨팅에서 중요한 이유가 잘 전달되지 않았던 것 같다.

독자분들께서는 필자가 앞서 아홉 번째부터 열 네번째 글[2-7]에서 CERN에서 LHC 가속기 데이터 처리를 위해 클라우드 컴퓨팅 기술 개발을 시작한 배경에 대해 소개했던 것을 기억하고 계신지 모르겠다. CERN에서 LHC 가속기의 빅데이터를 처리하기 위해 구축한 LHC 컴퓨팅 그리드(LHC Computing Grid; LCG)에서, 그리드 자원의 이종성(heterogeneity)과 그리드 자원을 운영하는 연구기관들의 상이한 보안 정책과 서버 환경과 같은 문제로 인해 그리드에서 실행되는 분석 작업의 실패율이 높았고, 이 문제를 해결하기 위해 도입했던 것이 그리드 컴퓨팅 작업을 가상 머신에서 실행하도록 하는 것이었다. 이 과정에서 그리드 작업이 실행될 노드에 가상 머신 실행과 수명주기를 자동화하여 관리하는 기술이 필요하게 되었는데 이것이 클라우드 컴퓨팅 기술의 시작이라고 소개한 바 있다[2-7].

CERN의 LHC 가속기 빅데이터 처리의 사례에서 살펴본 것같이 원래 클라우드 컴퓨팅은 빅데이터 처리를 위해 필요한 자원을 필요한 때에 필요한 만큼 끌어다 쓰기 위해 만들어진 자원 관리 기술이다. 이런 이유로 사실 빅데이터와 클라우드 컴퓨팅 기술은 뗄래야 뗄 수 없는 밀접한 관계이다. 다만 클라우드 컴퓨팅이 다양한 기업의 워크로드들을 포용하고 자동화된 운영 기술로 발전하는 과정에서 빅데이터 처리와 계산 성능을 베어메탈 컴퓨팅의 수준으로 향상, 보상하는 기술의 발전이 상대적으로 더뎠기 때문에 빅데이터 활용에 클라우드 컴퓨팅의 도입이 상대적으로 늦어진 것이다.

이렇게 빅데이터 처리, 분석에 필요한 자원의 탄력적인 활용, 관리를 위해 필요했던 기술이 클라우드 컴퓨팅이었던 만큼, 사이버 물리 시스템에 필요한 빅데이터 처리와 엄청난 수와 종류의 컴퓨팅 자원을 흠없이(seamlessly) 관리하기 위해 필요한 자원 관리, 또는 운영 체제 기술의 관점에서 클라우드 컴퓨팅의 중요성을 생각해보아야 한다. 

클라우드 컴퓨팅의 서비스 지향적인 면은 인터넷 기반의 서비스 지향 컴퓨팅의 발전이 컴퓨팅 자원에 접근하는 방법에 영향을 준 것이지 사실 클라우드 컴퓨팅의 근본적인 필요 때문에 나타나는 특성은 아니다. (일례로 CERN의 LHC 컴퓨팅에서 사용한 그리드 컴퓨팅 기술도 XML 기반의 서비스 지향 컴퓨팅 모델을 이용해 원격의 컴퓨팅 자원에 접근하도록 개발되어 있다. 이런 이유로 오픈 그리드 포럼(Open Grid Forum)과 같은 그리드 컴퓨팅 서비스의 메시지 스키마 표준을 정의하는 단체가 생겨나 활발하게 활동하기도 했다.)

이제 사이버 물리 시스템을 지원하는 자원 관리와 운영 체제 기술로서 클라우드 컴퓨팅이 어떻게 연관이 있는지 살펴보도록 하자.

우리가 많이 사용하는 마이크로소프트의 윈도우 10과 같은 개인용 컴퓨터 운영체제와 구글의 안드로이드와 같은 모바일 디바이스용 운영 체제 소프트웨어를 사용하는 목적은 크게 두 가지가 있다. 먼저, 하드웨어를 다루는 저수준의 작업을 일련의 인터페이스(ABI(Abstract Binary Interface)와 API(Application Programming Interface))를 통해 추상화하여 컴퓨터 하드웨어에서 사용자의 목적을 만족시키는 응용 소프트웨어 작성을 쉽게 하는 것이다. 두번째로, 컴퓨터 하드웨어에서 계산을 위해 보유하고 있는 중앙처리장치(CPU), 메모리(RAM), 영구 저장 장치(persistent storage), 네트워크 인터페이스 등의 자원이 컴퓨터를 사용하는 여러 응용 소프트웨어와 사용자가 자신의 목적에 맞게 하드웨어 자원을 사용하면서 불편을 느끼지 않게끔 자원을 적절하게 할당, 관리해주는 것이다.

이런 운영 체제는 사이버 물리 시스템에서도 기본적인 소프트웨어 스택으로 중요한 역할을 한다. 예를 들어 대표적인 사이버 물리 시스템인 자동차에서 조향 장치, 엔진, 가감속기와 제동장치를 제어하는 전자제어기(Electronic Control Unit; ECU)의 제어 소프트웨어가 사용하는 실시간 운영체제가 전자제어기의 자원을 적절하게 활용하도록 지원하지 못해 제어 소프트웨어가 오작동을 일으키면 자동차가 본연의 기능을 다 할 수 없을 뿐만 아니라 경우에 따라서는 탑승객의 생명이 위험할 수 있다.

앞으로의 사이버 물리 시스템은 5G, 6G와 같은 무선 네트워크와 광대역 유선 네트워크를 통해 서로 연결되어 넓은 지역에서 다양한 자원을 사용해 지능화된 기능을 수행하게 될 것이다. 이때, 넓은 지역에 걸쳐 배치되어 있는 다양한 컴퓨팅 자원과 서비스(예를 들어 지능형 교통 정보 시스템(ITS), 고정밀 지도 서비스(High-Definition(HD) Map) 등)가 하나로 통합된 기능(예를 들어 자율주행 기반 모빌리티 서비스)을 흠없이 구현하고 실행하기 위해서는 이렇게 다양한 컴퓨팅 자원을 네트워크를 통해 서로 조율하고 관리하여 사이버 물리 시스템이 목적했던 기능과 서비스로 통합될 수 있도록 하는 저수준의 소프트웨어 스택이 필요하게 되는데, 클라우드 컴퓨팅이 바로 이런 역할을 하게 된다.

우리가 컴퓨터를 만들기 위해 사용하는 다양한 소자와 부품, 장치들은 물리적인 법칙에 의해 제약을 받기 때문에 그 자체로 물리적인 한계를 가지고 있다. 우리가 필요한 컴퓨팅 자원을 무한정 공급해주는 컴퓨터를 만들 수 없는 이유가 바로 컴퓨터 하드웨어가 근본적으로 물리 법칙의 지배를 받고 있기 때문이다. 이렇게 컴퓨터 하드웨어의 물리적 제약 때문에 컴퓨팅 자원은 그 조직 수준과 규모, 목적에 따라 다양한 계층을 이루며 조직될 수밖에 없다.

컴퓨터 하드웨어의 역사는 이런 하드웨어의 확장성과 성능에 영향을 끼치는 물리적인 제약을 넘어서는 기술의 발전과 맥을 같이 한다. 1990년대 중반까지만 해도 컴퓨터 하드웨어의 확장성과 성능을 높이는 방법은 단일 프로세서의 단위 면적에 가능하면 많은 계산 소자를 집적하고 단위 시간에 가능하면 많은 연산을 할 수 있도록 최대한 저지연으로 응답하는 회로를 만드는 것이었다.

이런 경향이 바뀌게 된 계기가 바로 네트워크로 연결된 컴퓨터를 이용한 병렬 컴퓨팅 기술인 베오울프 클러스터 기술의 개발이다. 베오울프 클러스터 기술의 개발 이후 컴퓨터의 성능은 소자수준의 기술과 여러 대의 컴퓨터를 흠없이(seamlessly) 안정적으로 엮어 대형 컴퓨터로 통합할 수 있는 분산 컴퓨팅 기술이 같이 발전하는 방식으로 꾸준하게 성능이 높아져 왔다.

앞으로 다가오고 있는 사이버 물리 시스템 시대에는 이런 경향이 극단적으로 발전하여 사이버 물리 시스템을 구성하는데 활용될 것으로 필자는 생각한다. 사이버 물리 시스템을 구성하는 단위 제어기나 부품에서의 지능형 엣지 컴퓨팅을 위해 고성능 컴퓨팅 프로세서와 이 프로세서의 성능과 자원을 효과적으로 활용하도록 돕는 운영 체제가 앞으로 더 중요해질 것이다. 이에 더해, 공간적인 제약을 넘어서는 대규모의 컴퓨팅 자원을 끌어와 활용하거나 서로 다른 하위 수준의 기능과 서비스가 사용자 수준에서 비즈니스 가치를 주는 기능과 서비스로 통합되기 위해 필요한 자원 조율과 관리에는 클라우드 컴퓨팅 기술이 운영체제의 역할을 하게 될 것이다.

대표적인 클라우드 컴퓨팅 오픈소스 소프트웨어인 “오픈스택(OpenStack)”이 한창 인기가 절정이었던 시절에 IT업계의 클라우드 컴퓨팅 전문가들이 “오픈스택”을 “클라우드 OS”라고 부른 것도 이런 맥락이라고 보면 될 것이다. 실제로 “오픈스택”의 코어 프로젝트들은 클라우드 컴퓨팅 시스템에서 리눅스의 커널과 같은 역할을 한다. 리눅스 커널을 개발하고 유지하는 리눅스 재단의 전무(executive director)인 짐 젬린(Jim Zemlin)이 “2014년 파리 오픈스택 서밋(OpenStack Summit Paris 2014)” 회의에서 “오픈스택”이 조만간 데이터센터 컴퓨팅에서 리눅스 커널과 같은 역할을 하는 중요한 프로젝트로 발전하게 될 것이라고 언급하면서 “오픈스택”의 빠른 성장이 부럽다는 취지의 연설을 한 것도 이런 추세를 잘 표현한 것으로 볼 수 있다.

사이버 물리 시스템이 사회 곳곳에 확산되는 미래에서 클라우드 컴퓨팅은 분산 컴퓨팅 시스템 자원이 필요한 사이버 물리 시스템의 기능을 구현하기 위해 데이터센터와 모바일 엣지 컴퓨팅(Mobile Edge Computing; MEC) 시스템 수준에서 자원을 관리하고 조율하는데 사용되는 운영체제의 역할을 하게 될 것이다. 좀더 이해하기 쉽도록 다른 방식으로 한 번 더 설명하자면, 하나의 컴퓨터 시스템의 자원 보유량을 넘는 컴퓨팅 자원이 필요한 사이버 물리 시스템의 기능을 구현하고 제공하기 위해 데이터센터 스케일로 운영되는 컴퓨팅 자원이, 현재 우리가 쓰고 있는 리눅스에서 CPU 명령 사이클과 메모리 등의 자원을 할당받아 이용하기 위해 리눅스 커널의 API를 이용하는 것과 마찬가지로, 클라우드 컴퓨팅 시스템으로 통합되어 하나의 컴퓨터와 같이 관리되면서 클라우드 컴퓨팅 서비스 API를 이용하여 사이버 물리 시스템의 기능을 구현하게 될 것이다.

이 얘기는 사이버 물리 시스템 입장에서는 데이터센터가 자동차의 전자제어장치(Electronic Control Unit; ECU)와 같은 단위 사이버 구성요소 또는 컴포넌트의 역할을 하게 되는 것이다. 사이버 물리 시스템을 구성하는 사이버 구성요소로서 데이터센터에 있는 컴퓨팅 자원들을 소프트웨어적으로 요청하고 프로그램하기 위해 클라우드 컴퓨팅 서비스가 운영체제와 같은 역할을 하게 된다는 것이다.

이렇게 데이터센터를 사이버 구성요소로 할 만한 사이버 물리 시스템의 기능이 과연 무엇이 있을까라고 독자 여러분들께서는 궁금해하실 수 있을 것 같다. 역시 자율주행과 모빌리티 서비스 분야의 예를 들어 같이 생각해보자.

자율주행 자동차가 안전하게 자율주행을 하기 위해서는 차량 주변에 안전을 위협하거나 주행에 영향을 주는 장애물이나 차량, 또는 보행자가 없는지 주행 환경을 정확하게 인지하고 주행 계획에 반영해야 할 필요가 있다. 자율주행 차량의 원가(cost)나 내부 공간 문제 때문에 자율주행 차량에 달 수 있는 센서의 수와 종류에 한계가 있고, 센서마다 다른 물리적 특성과 감지 능력의 차이, 생성하는 데이터의 양 때문에 센서 정보를 주행 계획 계산에 필요한 시간 안에 계산하여 주행 계획에 반영할 수 있도록 처리하기에는 현재 자동차 한 대에 설치되는 컴퓨팅 시스템의 자원만으로는 많이 부족할 것으로 예상된다.

이렇게 자동차 한 대에 장착할 수 있는 컴퓨팅 자원만으로 복잡한 주행 환경 인지와 판단을 모두 하기 어렵고, 센서의 물리적인 특성으로 인해 감지되지 못하는 위협 요소와 장애물들을 감지하고 판단하기 위해서는 교통 인프라와 다양한 사물들이 생성하는 정보들을 통합하여 자율주행 자동차의 주행 계획 계산에 활용하여야 한다. 이렇게 자율주행 자동차의 주행 계획 계산에 자동차의 센서 정보뿐만 아니라 교통 인프라와 사물이 가진 센서와 정보를 같이 활용하여 주행 환경 인지를 하는 것을 “확장된 인지(extended perception)”라고 한다.

이런 “확장된 인지”를 위한 데이터 수집과 처리를 위해서는 단위 사이버 물리 시스템인 자율주행 자동차가 가진 컴퓨팅 자원을 넘어서는 교통 인프라와 사물 인터넷 서비스를 제공하는 데이터센터의 자원을 활용하여야 할 필요가 생긴다.

예를 들어 자율주행 자동차가 가려고 하는 목적지까지의 경로에 사고나 차량이 많아 생기는 교통 체증이 있거나 하는 등의 실시간 교통 상황을 도로 인프라에 설치된 CCTV와 차량 각각에 설치된 C-V2X 통신 장치를 통해서 데이터를 수집하여 자율주행차에 제공하는 서비스를 생각해 보자. 

국토교통부의 중앙 교통 정보 시스템이 운영되는 데이터센터로 우선 자율주행차의 경로에 해당하는 도로구간마다 차량 숫자와 교통 상황에 대한 영상 및 차량 데이터를 수집하여야 할 것이다. 이후, 교통 정보를 요청하는 차량이 가려고 하는 경로상의 도로 위 차량 숫자 및 사고 상황에 대한 정보만을 도로 교통 인프라의 CCTV 영상에서 인공지능 기술로 인지, 추출하고, C-V2X 통신을 통해 도로 구간별 차량 숫자 통계를 내기 위해 각 차량의 위치 센서 정보를 차량 고유 식별 정보를 없애고 익명화하여 데이터센터로 전송하여 경로상의 도로 구간별 교통량을 데이터센터에서 자동으로 집계한다.

자율주행차는 C-V2X 통신을 통해 자신의 경로를 데이터센터로 전송하고, 데이터센터에서 운영 중인 중앙 교통 정보 시스템에서는 해당 경로상의 교통량과 사고 정보를 자율주행차에 전송해준다. 자율주행차는 이들 교통량 정보와 사고가 일어난 경로상의 위치 정보를 활용해서 현재의 속도와 경로로 목적한 시간 내에 목적지에 도착할 수 있을지 주행하면서 지속해서 판단하게 되고, 만약 목적한 시간 내에 목적지에 도착할 수 없을 것 같다고 판단하게 되면 대안이 되는 경로를 새로 탐색하여 새로운 경로 계획을 세우게 된다.

자율주행차가 계획한 경로를 이동하면서 사고가 일어난 지점 부근을 지나게 될 때는 차선 변경과 같은 단거리 경로 계획을 세우기 위해 다시 중앙 교통 정보 시스템에 사고 지점 부근의 정보를 요청하게 된다. 중앙 교통 정보 시스템은 해당 지점의 사고 상황 정보를 다시 교통 인프라의 CCTV를 이용해 수집하거나, 만약 CCTV가 설치되지 않았거나 있더라도 사고 상황에 대한 영상이 충분하게 확보될 수 없는 상황이라면, 사고 상황 주변에서 정체된 차량의 위치를 확인하여 해당 차량들의 영상 센서 데이터를 전송받아 처리하고, 사고가 일어난 지점의 차선 정보와 사고 상황이 담긴 영상과 같은 정보를 요청한 자율주행차에 전송하도록 한다.

이 과정에서 자율주행차로 영상 정보를 전송하기 위해 중앙 교통 정보 시스템의 영상을 보내기에는 C-V2X 네트워크 트래픽의 혼잡으로 서비스 지연이 많이 생길 것으로 판단한 중앙 교통 정보 시스템의 인공지능 시스템이 해당 영상의 전송을 자율주행차가 주행하는 지역에서 가장 가까운 모바일 엣지 컴퓨팅 시스템의 “시스루(see-through)” 서비스로 서비스 처리를 이양(handover)하기 위해 C-V2X 서비스를 제공하는 통신사업자의 “시스루(see-through)” 서비스에 V2V 영상 전송을 이양한다.

중앙 교통 정보 시스템으로부터 특정 지점의 자동차 센서 영상 V2V 전송 요청을 받은 자율주행 자동차의 위치 및 속도 정보를 이용해 C-V2X “시스루(see-through)” 서비스에서 영상을 목적하는 지연시간에 맞게 스트림할 수 있는 가장 가까운 기지국이나 모바일 엣지 컴퓨팅 센터를 C-V2X  시스템에서 실시간으로 스케줄링한다. C-V2X 인프라를 통해 스케줄링된 모바일 엣지 컴퓨팅 센터의 “시스루(see-through)” 서비스는 요청한 자율주행차로 사고 지점에 대한 영상 센서 데이터를 전송해준다. 이 “시스루(see-through)” 서비스 영상 데이터와 중앙 교통 정보 시스템에서 보내오는 차선 및 위치 정보, 고정밀 지도(HD Map) 서비스 사업자가 보내주는 자율주행용 고정밀 지도(HD Map)를 이용해서 차선 변경을 위한 단거리 경로 계획을 하고 사고 지점을 회피하는 주행을 실행한다.

위에서 설명한 자율주행차의 주행 상황에서 클라우드 컴퓨팅이 어떤 역할을 하는지 같이 살펴보면서 사이버 물리 시스템과 클라우드 컴퓨팅과의 연관성을 좀더 구체적으로 생각해보자. 먼저 “확장된 인지”를 위해 교통 인프라의 CCTV 영상 정보와 자율주행차가 아닌 다른 차량의 센서 데이터를 사용하여 교통량 예측 및 사고 지점 정보를 수집하고 활용하는 부분은 분명 자율주행차 내부에 있는 컴퓨팅 시스템의 능력을 넘어서는 일이기 때문에 클라우드 컴퓨팅 인프라에서 일어나게 된다. 

왜 교통 인프라 CCTV 영상 데이터와 다른 차량의 영상을 자율주행차가 직접 받아서 처리하지 않느냐고 묻는 독자분이 있을 수 있어 다시 부연 설명하자면, 현재의 컴퓨팅 기술로 자율주행차는 자신의 센서가 수집한 데이터와 자동차 내부의 자율주행 기능을 처리하는 데에도 컴퓨팅 용량이 크게 모자라기 때문에 교통 인프라 데이터 및 다른 차량의 정보를 처리하는 일은 클라우드 인프라에서 일어날 수밖에 없다.

위 시나리오에서 또 하나 눈여겨 봐야 할 부분은 클라우드 컴퓨팅 서비스로 운영되는 중앙 교통 정보 시스템의 인공지능 시스템이 자신이 처리하는 교통 인프라 영상 데이터와 함께 다른 차량의 영상을 자율주행차로 전송하는 작업이 자신의 컴퓨팅 용량을 넘어설 것으로 판단하고 모바일 엣지 컴퓨팅 인프라의 “시스루(see-through)” C-V2X 서비스로 이 작업을 이양하는 부분이다. 

현재 클라우드 컴퓨팅은 하이브리드 클라우드 컴퓨팅이 대세가 되어가고 있다. 사실 이런 트렌드는 기술적으로 자연스러운 결과일 수밖에 없는데, 하나의 클라우드 컴퓨팅 서비스 회사가 모든 산업의 모든 요구 사항을 커버하기가 쉽지 않기 때문이다. 실제로, 현재 아마존 웹 서비스(Amazon Web Services; AWS)가 클라우드 컴퓨팅 시장을 거의 독점하다시피 하기는 했지만, 아마존 웹 서비스가 커버하지 못하는 영역은 일부 클라우드 컴퓨팅 서비스 회사들이 틈새시장을 겨냥해서 서비스하기도 한다. 예를 들면 아직 클라우드 컴퓨팅 서비스가 많이 침투하지 못한 베어메탈 고성능 컴퓨팅(bare-metal HPC) 자원의 클라우드 컴퓨팅 서비스를 과거 프로핏브릭스(ProfitBricks)와 같은 회사가 차별화된 서비스로 내세워 유럽 클라우드 컴퓨팅 시장에서 포지셔닝하기도 했다.

앞으로의 클라우드 컴퓨팅 인프라와 서비스는 하나의 클라우드 컴퓨팅 서비스 회사의 서비스를 이용하기보다는 서비스와 워크로드의 특성과 요구 사항, 서비스에 필요한 데이터에 관련된 법규와 개인 정보 보안, 서비스 대상 지역별로 다른 법적 문제 때문에 여러 클라우드 컴퓨팅 서비스 회사의 서비스와 기업 조직 내 프라이빗 클라우드(private cloud) 컴퓨팅 인프라를 같이 통합해서 사용하는 하이브리드 클라우드 컴퓨팅으로 발전할 수밖에 없다. 이런 하이브리드 클라우드 컴퓨팅 인프라에서는 사이버 물리 시스템 구성 요소의 기능과 신뢰성 수준에 따라 서로 다른 클라우드 컴퓨팅 인프라에서 사이버 물리 시스템의 다양한 하위 시스템과 구성 요소들이 운영되면서, 이들 클라우드 컴퓨팅 인프라 간 자동화된 자원 조율과 스케줄링이 하이브리드 클라우드 컴퓨팅 인프라를 이용해 개발된 사이버 물리 시스템의 전체적인 통합에 중요한 역할을 할 수밖에 없다.

위의 자율주행차 주행 시나리오에서 세번째로 생각해봐야 할 것은 클라우드 컴퓨팅 자원의 멀티테넌시(multi-tenancy) 문제이다. 커넥티드 자율주행차와 같은 미션 크리티컬한 사이버 물리 시스템의 경우 멀티테넌시의 문제는 보안과 맞물려 까다롭고 어려운 문제로 바뀌게 된다. 실제로 안전에 민감한 시스템인 자율주행차를 위한 중앙 교통 정보 시스템을 운영하기 위해 국토교통부가 별도로 데이터센터를 구축하고 별도의 프라이빗 클라우드 컴퓨팅 시스템을 만들 수도 있을 것이다. 그렇지만, 미국 국방성의 국방정보 시스템을 퍼블릭 클라우드로 이전해 10년간 운영하는 “제다이(JEDI) 프로젝트”를 전 세계 시장 점유율 2위 퍼블릭 클라우드(public cloud) 사업자인 마이크로소프트가 최근 수주한 것과 같이 펴블릭 클라우드 서비스 사업자에 안전과 보안 요건에 대한 요구사항을 걸고 입찰을 하여 클라우드 컴퓨팅 인프라와 서비스를 받을 가능성이 더 높아 보인다.

먼저 정부통합전산센터와 같은 정부의 데이터센터에서 운영 중인 클라우드 컴퓨팅 시스템에 자율주행차량용 중앙 교통 정보 제공 시스템과 같은 교통 사이버 물리 시스템의 일부를 구축한다고 가정하자. 현재 정부통합전산센터의 클라우드 시스템에는 정부 각 부처의 다른 정보 시스템이 같이 운영되고 있고, 다양한 보안 요건과 워크로드 특성을 가진 정보 시스템이 운영되고 있다. 교통 사이버 물리 시스템과 같은 미션 크리티컬 워크로드를 운영하는 클라우드 컴퓨팅 시스템은 데이터 보안, 지연 및 데이터 처리 요구 사항 면에서 더 높은 기준을 요구할 가능성이 높으므로 당연히 이를 위한 클라우드 컴퓨팅 자원의 특성도 달라질 것이다.

이미 구축된 클라우드 컴퓨팅 시스템에서 교통 사이버 물리 시스템의 요구 사항을 만족할 수 있도록 높은 성능, 보안 요건, 네트워크 자원 점유율 및 품질(quality of service; QoS)을 만족시킬 수 있을 것인가? 다른 워크로드 특성과 보안 특성을 가진 정보 시스템 및 서비스와 같은 클라우드 자원을 이용할 경우 안전한 서비스 제공을 위한 보안과 응답 지연, 성능을 유지할 수 있도록 우선순위를 가지고 안전하고 안정적인 멀티테넌시가 보장될 수 있을 것인가? 

정부통합전산센터와 같은 정부 기관의 프라이빗 클라우드 자원을 같이 활용하더라도 미션 크리티컬한 교통 사이버 물리 시스템의 요건을 만족시킬 수 있는 유연성과 확장성이 제공되도록 앞으로 클라우드 컴퓨팅 기술이 발전하겠지만 현재는 기술적으로 쉬운 일은 아니다.

특정한 사이버 물리 시스템이나 사이버 물리 시스템 내 하부 시스템을 위한 전용 프라이빗 클라우드를 별도로 구성한다고 해도 요구사항과 운영조건을 만족시키기가 쉽지 않을 수 있는데, 아마존 웹 서비스(Amazon Web Services)나 마이크로소프트 애저(Microsoft Azure) 같은 퍼블릭 클라우드가 다양한 사이버 물리 시스템 전체에 대한 클라우드 컴퓨팅 서비스를 모두 제공한다는 건 경우에 따라 기술적으로 정말 어려운 일일 수 있다. 다만 퍼블릭 클라우드 사업자들이 규모의 경제에서 오는 이점을 살려 서비스를 비용효율적으로 제공할 수도 있겠지만, 현재 시점에서 이 또한 기술적으로 어렵다.

위에서 필자가 말하고 싶은 요점은, 공간적으로 넓은 지역에 걸친 서비스들이 네트워크를 통해 연결되어 실제 사용자들이 사용하는 서비스로 완결되는 사이버 물리 시스템의 경우 사이버 물리 시스템의 모든 단위 기능들이 하나의 클라우드 컴퓨팅 인프라에서 운영되기 어려울 수도 있다는 것이다. 

이런 이유로 사이버 물리 시스템을 위한 클라우드 컴퓨팅 시스템은 사이버 물리 시스템에서 필요한 하부 구성 요소의 특성에 맞는 다양한 퍼블릭 클라우드 시스템들과 일부 프라이빗 클라우드 시스템에서 서비스들이 연동되어 운영되며, 이것 때문에 사이버 물리 시스템을 위한 멀티테넌시를 보장하는 것이 어려운 기술적인 문제가 된다는 것이다. 여러 클라우드 컴퓨팅 인프라에 걸친 하이브리드 클라우드 환경에서 안전하게 멀티테넌시가 보장되어야 하기 때문이다.

앞으로 자세하게 소개하겠지만, 이렇게 사이버 물리 시스템에서 멀티테넌시가 보장되는 하이브리드 클라우드 환경 구성을 위해서는 사이버 물리 시스템을 통합하는 네트워크 인프라 수준에서 멀티테넌시를 지원하는 기술이 있어야 한다. 실제로 5G 및 미래의 6G 이동통신에서는 네트워크 가상화의 개념이 적극적으로 받아들여져 확장되고 있다.

5G 이동통신부터 표준에 반영된 “네트워크 슬라이싱(network slicing)”은 이동통신 서비스 인프라 자원을 이동통신을 이용하는 고객들의 산업별, 조직별, 또는 고객별로 가상화, 분할하여 독립된 모바일 네트워크 서비스 인프라를 고객별로 요구하는 특성에 따라 제공하면서 성능 수준과 품질을 관리할 수 있도록 하는 기술로, “네트워크 기능 가상화(Network Function Virtualization; NFV)”와 함께 5G 이동통신에서 클라우드 컴퓨팅의 개념이 반영된 대표적인 기술로 꼽힌다.

“네트워크 슬라이싱”에서는 고객별로 종단 간(end-to-end) 멀티테넌시가 부여되어 5G 이동통신 인프라 자원을 독점하는 것과 같이 분리하여 사용할 수 있도록 해주며, 이런 특성 때문에 고객별로 다른 지연(latency) 및 대역폭, 기타 서비스 요구사항에 맞게 5G 이동통신망을 활용할 수 있도록 한다. 

이 “네트워크 슬라이싱” 기술 덕분에 고객을 직접 대면하는 단말기나 자율주행차와 같은 “자율 에이전트(autonomous agent)”부터 5G 모바일 네트워크의 코어 네트워크(core network) 및 서비스 서버에 이르는 데이터센터 서비스 인프라에 이르기까지 모바일 네트워크 자원의 멀티테넌시 부여 및 관리가 가능해지기 때문에 사이버 물리 시스템에 필요한 하이브리드 클라우드 환경에서 멀티테넌시를 지원하기도 용이해진다. “네트워크 슬라이싱”을 이용해 우선 네트워크 자원이 가상화가 되어 있으면 네트워크로 연결된 하이브리드 클라우드 자원별로 멀티테넌시를 지원하면 상대적으로 쉽게 하이브리드 클라우드 환경에서 종단 간 멀티테넌시 부여가 가능해지기 때문이다.

하지만, 이동통신사에서 부여, 관리하는 멀티테넌시와 하이브리드 클라우드를 구성하는 클라우드 인프라 전체를 아우르는 멀티테넌시 및 클라우드 컴퓨팅 자원 관리를 어떻게 할 것인지에 대해서는 아직 산업계에서 분명한 해결책이 나와 있지 않기 때문에, 사이버 물리 시스템 기술과 서비스가 발전하면서 앞으로 하이브리드 클라우드 컴퓨팅 환경에서의 멀티테넌시 관리 및 보안 기술의 중요성이 더 높아질 것으로 보인다.

위와 같이 자율주행 모빌리티 서비스 시나리오를 예로 들어 사이버 물리 시스템에서 클라우드 컴퓨팅이 필요한 이유와, 사이버 물리 시스템을 구성하는 운영체제 인프라로서 클라우드 컴퓨팅 기술이 앞으로 해결해야 할 기술적인 문제도 간단하게 같이 짚어보았다. 사이버 물리 시스템의 지능화 정도에 따라 부족한 계산 자원을 활용하는 문제로 인해 생기는 계층적 클라우드 컴퓨팅 자원 간의 자원 조율 및 관리 문제, 미션-크리티컬한 요구 사항을 만족하기 위한 하이브리드 클라우드 컴퓨팅 자원 조율과 관리 문제, 그리고, 하이브리드 클라우드 환경에서 모바일 네트워크 및 네트워크 자원의 가상화를 포함한 멀티테넌시 부여 및 관리 문제 등이 우선적으로 해결해야 하는 기술적인 과제들이다.
 


지금까지 생각해본 기술적인 문제와 함께 사이버 물리 시스템의 발전에 동반해서 나타나게 될 사이버 물리 시스템과 클라우드 컴퓨팅 자원의 지능 제어 및 관리 문제를 좀더 생각해보도록 하자.

 




2020.01.28

김진철의 How-to-Big Data | 빅데이터의 미래 (3)

김진철 | CIO KR

사이버 물리 시스템과 클라우드 컴퓨팅의 관계
지난 서른여섯 번째 글에서 빅데이터를 포함하여 최근 주요 IT 기술 트렌드로 떠오르고 있는 5G, 클라우드 컴퓨팅, 인공지능, IoT, 엣지 컴퓨팅이 발전해 나가는 공통의 지향점으로서 “사이버 물리 시스템(Cyber-Physical System)”이라는 개념을 소개하였다. 이 사이버 물리 시스템의 정의와 특성, 그리고 사이버 물리 시스템에서 빅데이터를 다루는 문제가 왜 부각되어 나오게 되었는지 간단하게 그 배경을 소개하였고, 사이버 물리 시스템이 앞으로 발전해가는 방향을 잘 표현하는 말로서 “인지 사이버 물리 시스템(Cognitive Cyber-Physical System)”의 개념을 같이 살펴보았다.

이번 글에서는 최근 다시 중요한 기술로 부각되고 있는 클라우드 컴퓨팅이 사이버 물리 시스템에서 왜 중요한 기술이 되는지 같이 생각해보려고 한다. 서버리스 컴퓨팅과 클라우드 네이티브 프로그래밍이 최근 유행하면서 빅데이터 응용 소프트웨어 개발과 분석도 클라우드 컴퓨팅으로 많이 옮겨가는 추세지만, 클라우드 컴퓨팅 발전 초기에는 빅데이터 처리용 고성능 컴퓨팅 시스템에 베어메탈 하둡이나 스파크를 구축해서 빅데이터 처리를 하는 기업이나 조직이 많았지 클라우드 컴퓨팅을 빅데이터에 활용하는 기업이 생각보다 많지 않았다.

클라우드 컴퓨팅의 개념이 정립되어가던 2000년대 말부터 2010년대 중반까지 클라우드 컴퓨팅 발전 초반에는 컴퓨팅 자원 사용의 주문형 서비스화, 투자비(CapEx)가 아닌 운영비(OpEx)로의 IT 비용 전환을 통한 비용 절감의 측면에서 클라우드 컴퓨팅을 강조하는 경향이 많았다. 심지어 클라우드 컴퓨팅의 초창기에는, 현재는 대표적인 빅데이터 기술로 불리는 구글의 맵리듀스 기술을 클라우드 컴퓨팅의 대표적인 기술로 꼽는 사람들도 있었다. 클라우드 컴퓨팅 발전 초반에는 자원 활용의 탄력성(elasticity)이 크게 강조되지 않거나 서비스 지향(service-oriented) 유틸리티 컴퓨팅(Utility computing)의 개념과 혼용해서 혼란스럽게 사용하는 경우가 많았기 때문에 클라우드 컴퓨팅이 빅데이터 컴퓨팅에서 중요한 이유가 잘 전달되지 않았던 것 같다.

독자분들께서는 필자가 앞서 아홉 번째부터 열 네번째 글[2-7]에서 CERN에서 LHC 가속기 데이터 처리를 위해 클라우드 컴퓨팅 기술 개발을 시작한 배경에 대해 소개했던 것을 기억하고 계신지 모르겠다. CERN에서 LHC 가속기의 빅데이터를 처리하기 위해 구축한 LHC 컴퓨팅 그리드(LHC Computing Grid; LCG)에서, 그리드 자원의 이종성(heterogeneity)과 그리드 자원을 운영하는 연구기관들의 상이한 보안 정책과 서버 환경과 같은 문제로 인해 그리드에서 실행되는 분석 작업의 실패율이 높았고, 이 문제를 해결하기 위해 도입했던 것이 그리드 컴퓨팅 작업을 가상 머신에서 실행하도록 하는 것이었다. 이 과정에서 그리드 작업이 실행될 노드에 가상 머신 실행과 수명주기를 자동화하여 관리하는 기술이 필요하게 되었는데 이것이 클라우드 컴퓨팅 기술의 시작이라고 소개한 바 있다[2-7].

CERN의 LHC 가속기 빅데이터 처리의 사례에서 살펴본 것같이 원래 클라우드 컴퓨팅은 빅데이터 처리를 위해 필요한 자원을 필요한 때에 필요한 만큼 끌어다 쓰기 위해 만들어진 자원 관리 기술이다. 이런 이유로 사실 빅데이터와 클라우드 컴퓨팅 기술은 뗄래야 뗄 수 없는 밀접한 관계이다. 다만 클라우드 컴퓨팅이 다양한 기업의 워크로드들을 포용하고 자동화된 운영 기술로 발전하는 과정에서 빅데이터 처리와 계산 성능을 베어메탈 컴퓨팅의 수준으로 향상, 보상하는 기술의 발전이 상대적으로 더뎠기 때문에 빅데이터 활용에 클라우드 컴퓨팅의 도입이 상대적으로 늦어진 것이다.

이렇게 빅데이터 처리, 분석에 필요한 자원의 탄력적인 활용, 관리를 위해 필요했던 기술이 클라우드 컴퓨팅이었던 만큼, 사이버 물리 시스템에 필요한 빅데이터 처리와 엄청난 수와 종류의 컴퓨팅 자원을 흠없이(seamlessly) 관리하기 위해 필요한 자원 관리, 또는 운영 체제 기술의 관점에서 클라우드 컴퓨팅의 중요성을 생각해보아야 한다. 

클라우드 컴퓨팅의 서비스 지향적인 면은 인터넷 기반의 서비스 지향 컴퓨팅의 발전이 컴퓨팅 자원에 접근하는 방법에 영향을 준 것이지 사실 클라우드 컴퓨팅의 근본적인 필요 때문에 나타나는 특성은 아니다. (일례로 CERN의 LHC 컴퓨팅에서 사용한 그리드 컴퓨팅 기술도 XML 기반의 서비스 지향 컴퓨팅 모델을 이용해 원격의 컴퓨팅 자원에 접근하도록 개발되어 있다. 이런 이유로 오픈 그리드 포럼(Open Grid Forum)과 같은 그리드 컴퓨팅 서비스의 메시지 스키마 표준을 정의하는 단체가 생겨나 활발하게 활동하기도 했다.)

이제 사이버 물리 시스템을 지원하는 자원 관리와 운영 체제 기술로서 클라우드 컴퓨팅이 어떻게 연관이 있는지 살펴보도록 하자.

우리가 많이 사용하는 마이크로소프트의 윈도우 10과 같은 개인용 컴퓨터 운영체제와 구글의 안드로이드와 같은 모바일 디바이스용 운영 체제 소프트웨어를 사용하는 목적은 크게 두 가지가 있다. 먼저, 하드웨어를 다루는 저수준의 작업을 일련의 인터페이스(ABI(Abstract Binary Interface)와 API(Application Programming Interface))를 통해 추상화하여 컴퓨터 하드웨어에서 사용자의 목적을 만족시키는 응용 소프트웨어 작성을 쉽게 하는 것이다. 두번째로, 컴퓨터 하드웨어에서 계산을 위해 보유하고 있는 중앙처리장치(CPU), 메모리(RAM), 영구 저장 장치(persistent storage), 네트워크 인터페이스 등의 자원이 컴퓨터를 사용하는 여러 응용 소프트웨어와 사용자가 자신의 목적에 맞게 하드웨어 자원을 사용하면서 불편을 느끼지 않게끔 자원을 적절하게 할당, 관리해주는 것이다.

이런 운영 체제는 사이버 물리 시스템에서도 기본적인 소프트웨어 스택으로 중요한 역할을 한다. 예를 들어 대표적인 사이버 물리 시스템인 자동차에서 조향 장치, 엔진, 가감속기와 제동장치를 제어하는 전자제어기(Electronic Control Unit; ECU)의 제어 소프트웨어가 사용하는 실시간 운영체제가 전자제어기의 자원을 적절하게 활용하도록 지원하지 못해 제어 소프트웨어가 오작동을 일으키면 자동차가 본연의 기능을 다 할 수 없을 뿐만 아니라 경우에 따라서는 탑승객의 생명이 위험할 수 있다.

앞으로의 사이버 물리 시스템은 5G, 6G와 같은 무선 네트워크와 광대역 유선 네트워크를 통해 서로 연결되어 넓은 지역에서 다양한 자원을 사용해 지능화된 기능을 수행하게 될 것이다. 이때, 넓은 지역에 걸쳐 배치되어 있는 다양한 컴퓨팅 자원과 서비스(예를 들어 지능형 교통 정보 시스템(ITS), 고정밀 지도 서비스(High-Definition(HD) Map) 등)가 하나로 통합된 기능(예를 들어 자율주행 기반 모빌리티 서비스)을 흠없이 구현하고 실행하기 위해서는 이렇게 다양한 컴퓨팅 자원을 네트워크를 통해 서로 조율하고 관리하여 사이버 물리 시스템이 목적했던 기능과 서비스로 통합될 수 있도록 하는 저수준의 소프트웨어 스택이 필요하게 되는데, 클라우드 컴퓨팅이 바로 이런 역할을 하게 된다.

우리가 컴퓨터를 만들기 위해 사용하는 다양한 소자와 부품, 장치들은 물리적인 법칙에 의해 제약을 받기 때문에 그 자체로 물리적인 한계를 가지고 있다. 우리가 필요한 컴퓨팅 자원을 무한정 공급해주는 컴퓨터를 만들 수 없는 이유가 바로 컴퓨터 하드웨어가 근본적으로 물리 법칙의 지배를 받고 있기 때문이다. 이렇게 컴퓨터 하드웨어의 물리적 제약 때문에 컴퓨팅 자원은 그 조직 수준과 규모, 목적에 따라 다양한 계층을 이루며 조직될 수밖에 없다.

컴퓨터 하드웨어의 역사는 이런 하드웨어의 확장성과 성능에 영향을 끼치는 물리적인 제약을 넘어서는 기술의 발전과 맥을 같이 한다. 1990년대 중반까지만 해도 컴퓨터 하드웨어의 확장성과 성능을 높이는 방법은 단일 프로세서의 단위 면적에 가능하면 많은 계산 소자를 집적하고 단위 시간에 가능하면 많은 연산을 할 수 있도록 최대한 저지연으로 응답하는 회로를 만드는 것이었다.

이런 경향이 바뀌게 된 계기가 바로 네트워크로 연결된 컴퓨터를 이용한 병렬 컴퓨팅 기술인 베오울프 클러스터 기술의 개발이다. 베오울프 클러스터 기술의 개발 이후 컴퓨터의 성능은 소자수준의 기술과 여러 대의 컴퓨터를 흠없이(seamlessly) 안정적으로 엮어 대형 컴퓨터로 통합할 수 있는 분산 컴퓨팅 기술이 같이 발전하는 방식으로 꾸준하게 성능이 높아져 왔다.

앞으로 다가오고 있는 사이버 물리 시스템 시대에는 이런 경향이 극단적으로 발전하여 사이버 물리 시스템을 구성하는데 활용될 것으로 필자는 생각한다. 사이버 물리 시스템을 구성하는 단위 제어기나 부품에서의 지능형 엣지 컴퓨팅을 위해 고성능 컴퓨팅 프로세서와 이 프로세서의 성능과 자원을 효과적으로 활용하도록 돕는 운영 체제가 앞으로 더 중요해질 것이다. 이에 더해, 공간적인 제약을 넘어서는 대규모의 컴퓨팅 자원을 끌어와 활용하거나 서로 다른 하위 수준의 기능과 서비스가 사용자 수준에서 비즈니스 가치를 주는 기능과 서비스로 통합되기 위해 필요한 자원 조율과 관리에는 클라우드 컴퓨팅 기술이 운영체제의 역할을 하게 될 것이다.

대표적인 클라우드 컴퓨팅 오픈소스 소프트웨어인 “오픈스택(OpenStack)”이 한창 인기가 절정이었던 시절에 IT업계의 클라우드 컴퓨팅 전문가들이 “오픈스택”을 “클라우드 OS”라고 부른 것도 이런 맥락이라고 보면 될 것이다. 실제로 “오픈스택”의 코어 프로젝트들은 클라우드 컴퓨팅 시스템에서 리눅스의 커널과 같은 역할을 한다. 리눅스 커널을 개발하고 유지하는 리눅스 재단의 전무(executive director)인 짐 젬린(Jim Zemlin)이 “2014년 파리 오픈스택 서밋(OpenStack Summit Paris 2014)” 회의에서 “오픈스택”이 조만간 데이터센터 컴퓨팅에서 리눅스 커널과 같은 역할을 하는 중요한 프로젝트로 발전하게 될 것이라고 언급하면서 “오픈스택”의 빠른 성장이 부럽다는 취지의 연설을 한 것도 이런 추세를 잘 표현한 것으로 볼 수 있다.

사이버 물리 시스템이 사회 곳곳에 확산되는 미래에서 클라우드 컴퓨팅은 분산 컴퓨팅 시스템 자원이 필요한 사이버 물리 시스템의 기능을 구현하기 위해 데이터센터와 모바일 엣지 컴퓨팅(Mobile Edge Computing; MEC) 시스템 수준에서 자원을 관리하고 조율하는데 사용되는 운영체제의 역할을 하게 될 것이다. 좀더 이해하기 쉽도록 다른 방식으로 한 번 더 설명하자면, 하나의 컴퓨터 시스템의 자원 보유량을 넘는 컴퓨팅 자원이 필요한 사이버 물리 시스템의 기능을 구현하고 제공하기 위해 데이터센터 스케일로 운영되는 컴퓨팅 자원이, 현재 우리가 쓰고 있는 리눅스에서 CPU 명령 사이클과 메모리 등의 자원을 할당받아 이용하기 위해 리눅스 커널의 API를 이용하는 것과 마찬가지로, 클라우드 컴퓨팅 시스템으로 통합되어 하나의 컴퓨터와 같이 관리되면서 클라우드 컴퓨팅 서비스 API를 이용하여 사이버 물리 시스템의 기능을 구현하게 될 것이다.

이 얘기는 사이버 물리 시스템 입장에서는 데이터센터가 자동차의 전자제어장치(Electronic Control Unit; ECU)와 같은 단위 사이버 구성요소 또는 컴포넌트의 역할을 하게 되는 것이다. 사이버 물리 시스템을 구성하는 사이버 구성요소로서 데이터센터에 있는 컴퓨팅 자원들을 소프트웨어적으로 요청하고 프로그램하기 위해 클라우드 컴퓨팅 서비스가 운영체제와 같은 역할을 하게 된다는 것이다.

이렇게 데이터센터를 사이버 구성요소로 할 만한 사이버 물리 시스템의 기능이 과연 무엇이 있을까라고 독자 여러분들께서는 궁금해하실 수 있을 것 같다. 역시 자율주행과 모빌리티 서비스 분야의 예를 들어 같이 생각해보자.

자율주행 자동차가 안전하게 자율주행을 하기 위해서는 차량 주변에 안전을 위협하거나 주행에 영향을 주는 장애물이나 차량, 또는 보행자가 없는지 주행 환경을 정확하게 인지하고 주행 계획에 반영해야 할 필요가 있다. 자율주행 차량의 원가(cost)나 내부 공간 문제 때문에 자율주행 차량에 달 수 있는 센서의 수와 종류에 한계가 있고, 센서마다 다른 물리적 특성과 감지 능력의 차이, 생성하는 데이터의 양 때문에 센서 정보를 주행 계획 계산에 필요한 시간 안에 계산하여 주행 계획에 반영할 수 있도록 처리하기에는 현재 자동차 한 대에 설치되는 컴퓨팅 시스템의 자원만으로는 많이 부족할 것으로 예상된다.

이렇게 자동차 한 대에 장착할 수 있는 컴퓨팅 자원만으로 복잡한 주행 환경 인지와 판단을 모두 하기 어렵고, 센서의 물리적인 특성으로 인해 감지되지 못하는 위협 요소와 장애물들을 감지하고 판단하기 위해서는 교통 인프라와 다양한 사물들이 생성하는 정보들을 통합하여 자율주행 자동차의 주행 계획 계산에 활용하여야 한다. 이렇게 자율주행 자동차의 주행 계획 계산에 자동차의 센서 정보뿐만 아니라 교통 인프라와 사물이 가진 센서와 정보를 같이 활용하여 주행 환경 인지를 하는 것을 “확장된 인지(extended perception)”라고 한다.

이런 “확장된 인지”를 위한 데이터 수집과 처리를 위해서는 단위 사이버 물리 시스템인 자율주행 자동차가 가진 컴퓨팅 자원을 넘어서는 교통 인프라와 사물 인터넷 서비스를 제공하는 데이터센터의 자원을 활용하여야 할 필요가 생긴다.

예를 들어 자율주행 자동차가 가려고 하는 목적지까지의 경로에 사고나 차량이 많아 생기는 교통 체증이 있거나 하는 등의 실시간 교통 상황을 도로 인프라에 설치된 CCTV와 차량 각각에 설치된 C-V2X 통신 장치를 통해서 데이터를 수집하여 자율주행차에 제공하는 서비스를 생각해 보자. 

국토교통부의 중앙 교통 정보 시스템이 운영되는 데이터센터로 우선 자율주행차의 경로에 해당하는 도로구간마다 차량 숫자와 교통 상황에 대한 영상 및 차량 데이터를 수집하여야 할 것이다. 이후, 교통 정보를 요청하는 차량이 가려고 하는 경로상의 도로 위 차량 숫자 및 사고 상황에 대한 정보만을 도로 교통 인프라의 CCTV 영상에서 인공지능 기술로 인지, 추출하고, C-V2X 통신을 통해 도로 구간별 차량 숫자 통계를 내기 위해 각 차량의 위치 센서 정보를 차량 고유 식별 정보를 없애고 익명화하여 데이터센터로 전송하여 경로상의 도로 구간별 교통량을 데이터센터에서 자동으로 집계한다.

자율주행차는 C-V2X 통신을 통해 자신의 경로를 데이터센터로 전송하고, 데이터센터에서 운영 중인 중앙 교통 정보 시스템에서는 해당 경로상의 교통량과 사고 정보를 자율주행차에 전송해준다. 자율주행차는 이들 교통량 정보와 사고가 일어난 경로상의 위치 정보를 활용해서 현재의 속도와 경로로 목적한 시간 내에 목적지에 도착할 수 있을지 주행하면서 지속해서 판단하게 되고, 만약 목적한 시간 내에 목적지에 도착할 수 없을 것 같다고 판단하게 되면 대안이 되는 경로를 새로 탐색하여 새로운 경로 계획을 세우게 된다.

자율주행차가 계획한 경로를 이동하면서 사고가 일어난 지점 부근을 지나게 될 때는 차선 변경과 같은 단거리 경로 계획을 세우기 위해 다시 중앙 교통 정보 시스템에 사고 지점 부근의 정보를 요청하게 된다. 중앙 교통 정보 시스템은 해당 지점의 사고 상황 정보를 다시 교통 인프라의 CCTV를 이용해 수집하거나, 만약 CCTV가 설치되지 않았거나 있더라도 사고 상황에 대한 영상이 충분하게 확보될 수 없는 상황이라면, 사고 상황 주변에서 정체된 차량의 위치를 확인하여 해당 차량들의 영상 센서 데이터를 전송받아 처리하고, 사고가 일어난 지점의 차선 정보와 사고 상황이 담긴 영상과 같은 정보를 요청한 자율주행차에 전송하도록 한다.

이 과정에서 자율주행차로 영상 정보를 전송하기 위해 중앙 교통 정보 시스템의 영상을 보내기에는 C-V2X 네트워크 트래픽의 혼잡으로 서비스 지연이 많이 생길 것으로 판단한 중앙 교통 정보 시스템의 인공지능 시스템이 해당 영상의 전송을 자율주행차가 주행하는 지역에서 가장 가까운 모바일 엣지 컴퓨팅 시스템의 “시스루(see-through)” 서비스로 서비스 처리를 이양(handover)하기 위해 C-V2X 서비스를 제공하는 통신사업자의 “시스루(see-through)” 서비스에 V2V 영상 전송을 이양한다.

중앙 교통 정보 시스템으로부터 특정 지점의 자동차 센서 영상 V2V 전송 요청을 받은 자율주행 자동차의 위치 및 속도 정보를 이용해 C-V2X “시스루(see-through)” 서비스에서 영상을 목적하는 지연시간에 맞게 스트림할 수 있는 가장 가까운 기지국이나 모바일 엣지 컴퓨팅 센터를 C-V2X  시스템에서 실시간으로 스케줄링한다. C-V2X 인프라를 통해 스케줄링된 모바일 엣지 컴퓨팅 센터의 “시스루(see-through)” 서비스는 요청한 자율주행차로 사고 지점에 대한 영상 센서 데이터를 전송해준다. 이 “시스루(see-through)” 서비스 영상 데이터와 중앙 교통 정보 시스템에서 보내오는 차선 및 위치 정보, 고정밀 지도(HD Map) 서비스 사업자가 보내주는 자율주행용 고정밀 지도(HD Map)를 이용해서 차선 변경을 위한 단거리 경로 계획을 하고 사고 지점을 회피하는 주행을 실행한다.

위에서 설명한 자율주행차의 주행 상황에서 클라우드 컴퓨팅이 어떤 역할을 하는지 같이 살펴보면서 사이버 물리 시스템과 클라우드 컴퓨팅과의 연관성을 좀더 구체적으로 생각해보자. 먼저 “확장된 인지”를 위해 교통 인프라의 CCTV 영상 정보와 자율주행차가 아닌 다른 차량의 센서 데이터를 사용하여 교통량 예측 및 사고 지점 정보를 수집하고 활용하는 부분은 분명 자율주행차 내부에 있는 컴퓨팅 시스템의 능력을 넘어서는 일이기 때문에 클라우드 컴퓨팅 인프라에서 일어나게 된다. 

왜 교통 인프라 CCTV 영상 데이터와 다른 차량의 영상을 자율주행차가 직접 받아서 처리하지 않느냐고 묻는 독자분이 있을 수 있어 다시 부연 설명하자면, 현재의 컴퓨팅 기술로 자율주행차는 자신의 센서가 수집한 데이터와 자동차 내부의 자율주행 기능을 처리하는 데에도 컴퓨팅 용량이 크게 모자라기 때문에 교통 인프라 데이터 및 다른 차량의 정보를 처리하는 일은 클라우드 인프라에서 일어날 수밖에 없다.

위 시나리오에서 또 하나 눈여겨 봐야 할 부분은 클라우드 컴퓨팅 서비스로 운영되는 중앙 교통 정보 시스템의 인공지능 시스템이 자신이 처리하는 교통 인프라 영상 데이터와 함께 다른 차량의 영상을 자율주행차로 전송하는 작업이 자신의 컴퓨팅 용량을 넘어설 것으로 판단하고 모바일 엣지 컴퓨팅 인프라의 “시스루(see-through)” C-V2X 서비스로 이 작업을 이양하는 부분이다. 

현재 클라우드 컴퓨팅은 하이브리드 클라우드 컴퓨팅이 대세가 되어가고 있다. 사실 이런 트렌드는 기술적으로 자연스러운 결과일 수밖에 없는데, 하나의 클라우드 컴퓨팅 서비스 회사가 모든 산업의 모든 요구 사항을 커버하기가 쉽지 않기 때문이다. 실제로, 현재 아마존 웹 서비스(Amazon Web Services; AWS)가 클라우드 컴퓨팅 시장을 거의 독점하다시피 하기는 했지만, 아마존 웹 서비스가 커버하지 못하는 영역은 일부 클라우드 컴퓨팅 서비스 회사들이 틈새시장을 겨냥해서 서비스하기도 한다. 예를 들면 아직 클라우드 컴퓨팅 서비스가 많이 침투하지 못한 베어메탈 고성능 컴퓨팅(bare-metal HPC) 자원의 클라우드 컴퓨팅 서비스를 과거 프로핏브릭스(ProfitBricks)와 같은 회사가 차별화된 서비스로 내세워 유럽 클라우드 컴퓨팅 시장에서 포지셔닝하기도 했다.

앞으로의 클라우드 컴퓨팅 인프라와 서비스는 하나의 클라우드 컴퓨팅 서비스 회사의 서비스를 이용하기보다는 서비스와 워크로드의 특성과 요구 사항, 서비스에 필요한 데이터에 관련된 법규와 개인 정보 보안, 서비스 대상 지역별로 다른 법적 문제 때문에 여러 클라우드 컴퓨팅 서비스 회사의 서비스와 기업 조직 내 프라이빗 클라우드(private cloud) 컴퓨팅 인프라를 같이 통합해서 사용하는 하이브리드 클라우드 컴퓨팅으로 발전할 수밖에 없다. 이런 하이브리드 클라우드 컴퓨팅 인프라에서는 사이버 물리 시스템 구성 요소의 기능과 신뢰성 수준에 따라 서로 다른 클라우드 컴퓨팅 인프라에서 사이버 물리 시스템의 다양한 하위 시스템과 구성 요소들이 운영되면서, 이들 클라우드 컴퓨팅 인프라 간 자동화된 자원 조율과 스케줄링이 하이브리드 클라우드 컴퓨팅 인프라를 이용해 개발된 사이버 물리 시스템의 전체적인 통합에 중요한 역할을 할 수밖에 없다.

위의 자율주행차 주행 시나리오에서 세번째로 생각해봐야 할 것은 클라우드 컴퓨팅 자원의 멀티테넌시(multi-tenancy) 문제이다. 커넥티드 자율주행차와 같은 미션 크리티컬한 사이버 물리 시스템의 경우 멀티테넌시의 문제는 보안과 맞물려 까다롭고 어려운 문제로 바뀌게 된다. 실제로 안전에 민감한 시스템인 자율주행차를 위한 중앙 교통 정보 시스템을 운영하기 위해 국토교통부가 별도로 데이터센터를 구축하고 별도의 프라이빗 클라우드 컴퓨팅 시스템을 만들 수도 있을 것이다. 그렇지만, 미국 국방성의 국방정보 시스템을 퍼블릭 클라우드로 이전해 10년간 운영하는 “제다이(JEDI) 프로젝트”를 전 세계 시장 점유율 2위 퍼블릭 클라우드(public cloud) 사업자인 마이크로소프트가 최근 수주한 것과 같이 펴블릭 클라우드 서비스 사업자에 안전과 보안 요건에 대한 요구사항을 걸고 입찰을 하여 클라우드 컴퓨팅 인프라와 서비스를 받을 가능성이 더 높아 보인다.

먼저 정부통합전산센터와 같은 정부의 데이터센터에서 운영 중인 클라우드 컴퓨팅 시스템에 자율주행차량용 중앙 교통 정보 제공 시스템과 같은 교통 사이버 물리 시스템의 일부를 구축한다고 가정하자. 현재 정부통합전산센터의 클라우드 시스템에는 정부 각 부처의 다른 정보 시스템이 같이 운영되고 있고, 다양한 보안 요건과 워크로드 특성을 가진 정보 시스템이 운영되고 있다. 교통 사이버 물리 시스템과 같은 미션 크리티컬 워크로드를 운영하는 클라우드 컴퓨팅 시스템은 데이터 보안, 지연 및 데이터 처리 요구 사항 면에서 더 높은 기준을 요구할 가능성이 높으므로 당연히 이를 위한 클라우드 컴퓨팅 자원의 특성도 달라질 것이다.

이미 구축된 클라우드 컴퓨팅 시스템에서 교통 사이버 물리 시스템의 요구 사항을 만족할 수 있도록 높은 성능, 보안 요건, 네트워크 자원 점유율 및 품질(quality of service; QoS)을 만족시킬 수 있을 것인가? 다른 워크로드 특성과 보안 특성을 가진 정보 시스템 및 서비스와 같은 클라우드 자원을 이용할 경우 안전한 서비스 제공을 위한 보안과 응답 지연, 성능을 유지할 수 있도록 우선순위를 가지고 안전하고 안정적인 멀티테넌시가 보장될 수 있을 것인가? 

정부통합전산센터와 같은 정부 기관의 프라이빗 클라우드 자원을 같이 활용하더라도 미션 크리티컬한 교통 사이버 물리 시스템의 요건을 만족시킬 수 있는 유연성과 확장성이 제공되도록 앞으로 클라우드 컴퓨팅 기술이 발전하겠지만 현재는 기술적으로 쉬운 일은 아니다.

특정한 사이버 물리 시스템이나 사이버 물리 시스템 내 하부 시스템을 위한 전용 프라이빗 클라우드를 별도로 구성한다고 해도 요구사항과 운영조건을 만족시키기가 쉽지 않을 수 있는데, 아마존 웹 서비스(Amazon Web Services)나 마이크로소프트 애저(Microsoft Azure) 같은 퍼블릭 클라우드가 다양한 사이버 물리 시스템 전체에 대한 클라우드 컴퓨팅 서비스를 모두 제공한다는 건 경우에 따라 기술적으로 정말 어려운 일일 수 있다. 다만 퍼블릭 클라우드 사업자들이 규모의 경제에서 오는 이점을 살려 서비스를 비용효율적으로 제공할 수도 있겠지만, 현재 시점에서 이 또한 기술적으로 어렵다.

위에서 필자가 말하고 싶은 요점은, 공간적으로 넓은 지역에 걸친 서비스들이 네트워크를 통해 연결되어 실제 사용자들이 사용하는 서비스로 완결되는 사이버 물리 시스템의 경우 사이버 물리 시스템의 모든 단위 기능들이 하나의 클라우드 컴퓨팅 인프라에서 운영되기 어려울 수도 있다는 것이다. 

이런 이유로 사이버 물리 시스템을 위한 클라우드 컴퓨팅 시스템은 사이버 물리 시스템에서 필요한 하부 구성 요소의 특성에 맞는 다양한 퍼블릭 클라우드 시스템들과 일부 프라이빗 클라우드 시스템에서 서비스들이 연동되어 운영되며, 이것 때문에 사이버 물리 시스템을 위한 멀티테넌시를 보장하는 것이 어려운 기술적인 문제가 된다는 것이다. 여러 클라우드 컴퓨팅 인프라에 걸친 하이브리드 클라우드 환경에서 안전하게 멀티테넌시가 보장되어야 하기 때문이다.

앞으로 자세하게 소개하겠지만, 이렇게 사이버 물리 시스템에서 멀티테넌시가 보장되는 하이브리드 클라우드 환경 구성을 위해서는 사이버 물리 시스템을 통합하는 네트워크 인프라 수준에서 멀티테넌시를 지원하는 기술이 있어야 한다. 실제로 5G 및 미래의 6G 이동통신에서는 네트워크 가상화의 개념이 적극적으로 받아들여져 확장되고 있다.

5G 이동통신부터 표준에 반영된 “네트워크 슬라이싱(network slicing)”은 이동통신 서비스 인프라 자원을 이동통신을 이용하는 고객들의 산업별, 조직별, 또는 고객별로 가상화, 분할하여 독립된 모바일 네트워크 서비스 인프라를 고객별로 요구하는 특성에 따라 제공하면서 성능 수준과 품질을 관리할 수 있도록 하는 기술로, “네트워크 기능 가상화(Network Function Virtualization; NFV)”와 함께 5G 이동통신에서 클라우드 컴퓨팅의 개념이 반영된 대표적인 기술로 꼽힌다.

“네트워크 슬라이싱”에서는 고객별로 종단 간(end-to-end) 멀티테넌시가 부여되어 5G 이동통신 인프라 자원을 독점하는 것과 같이 분리하여 사용할 수 있도록 해주며, 이런 특성 때문에 고객별로 다른 지연(latency) 및 대역폭, 기타 서비스 요구사항에 맞게 5G 이동통신망을 활용할 수 있도록 한다. 

이 “네트워크 슬라이싱” 기술 덕분에 고객을 직접 대면하는 단말기나 자율주행차와 같은 “자율 에이전트(autonomous agent)”부터 5G 모바일 네트워크의 코어 네트워크(core network) 및 서비스 서버에 이르는 데이터센터 서비스 인프라에 이르기까지 모바일 네트워크 자원의 멀티테넌시 부여 및 관리가 가능해지기 때문에 사이버 물리 시스템에 필요한 하이브리드 클라우드 환경에서 멀티테넌시를 지원하기도 용이해진다. “네트워크 슬라이싱”을 이용해 우선 네트워크 자원이 가상화가 되어 있으면 네트워크로 연결된 하이브리드 클라우드 자원별로 멀티테넌시를 지원하면 상대적으로 쉽게 하이브리드 클라우드 환경에서 종단 간 멀티테넌시 부여가 가능해지기 때문이다.

하지만, 이동통신사에서 부여, 관리하는 멀티테넌시와 하이브리드 클라우드를 구성하는 클라우드 인프라 전체를 아우르는 멀티테넌시 및 클라우드 컴퓨팅 자원 관리를 어떻게 할 것인지에 대해서는 아직 산업계에서 분명한 해결책이 나와 있지 않기 때문에, 사이버 물리 시스템 기술과 서비스가 발전하면서 앞으로 하이브리드 클라우드 컴퓨팅 환경에서의 멀티테넌시 관리 및 보안 기술의 중요성이 더 높아질 것으로 보인다.

위와 같이 자율주행 모빌리티 서비스 시나리오를 예로 들어 사이버 물리 시스템에서 클라우드 컴퓨팅이 필요한 이유와, 사이버 물리 시스템을 구성하는 운영체제 인프라로서 클라우드 컴퓨팅 기술이 앞으로 해결해야 할 기술적인 문제도 간단하게 같이 짚어보았다. 사이버 물리 시스템의 지능화 정도에 따라 부족한 계산 자원을 활용하는 문제로 인해 생기는 계층적 클라우드 컴퓨팅 자원 간의 자원 조율 및 관리 문제, 미션-크리티컬한 요구 사항을 만족하기 위한 하이브리드 클라우드 컴퓨팅 자원 조율과 관리 문제, 그리고, 하이브리드 클라우드 환경에서 모바일 네트워크 및 네트워크 자원의 가상화를 포함한 멀티테넌시 부여 및 관리 문제 등이 우선적으로 해결해야 하는 기술적인 과제들이다.
 


지금까지 생각해본 기술적인 문제와 함께 사이버 물리 시스템의 발전에 동반해서 나타나게 될 사이버 물리 시스템과 클라우드 컴퓨팅 자원의 지능 제어 및 관리 문제를 좀더 생각해보도록 하자.

 


X