지난 기고문 “Telco 인프라, Pets에서 Cattle로의 진화?”에서 Web Scale System Architecture에 관한 ‘Cattle’과 ‘Pets’의 비유를 통해 알아보았습니다. 간단히 다시 한번 설명을 하고 본 기고문의 본론을 시작하도록 하겠습니다.
Pets Scale과 Cattle Scale 구조의 차이
▲ 5G 인프라의 마이크로 서비스화
Cattle은 ‘가축’이라는 뜻으로 들판에서 키우는 수백 수천 마리의 들소 떼를 의미하며 Pets는 집에서 애지중지 키우며 평생을 주인과 같이하는 ‘반려동물’입니다. 이를 IT에 비유해 Pets는 다른 것으로 쉽게 대체될 수 없는, 결코 죽어서는 안되는 시스템을 의미합니다. 이에 반해 Cattle은 자동화된 툴을 이용해 두 개 이상의 서버로 구성되는데요. 운영자의 간섭 없이 자동으로 새로운 서버로 대체될 수 있는 시스템을 말합니다. Web Scale은 앞서 설명한 두 아키텍처 중 Cattle에 해당하며, 구글, 아마존, 넷플릭스, 페이스북과 같은 초대규모의 클라우드 시스템 또는 그 아키텍처를 의미합니다.
SKT의 통신망은 절대 죽어서는 안되는 Pets 구조에 가까운 시스템으로 구성돼 있습니다. 하지만 5G와 같은 초연결, 초대용량 시스템을 초고속으로 처리하기 위해서는 Web Scale로 진화해야 합니다. 그럼 Pets 구조에 가까운 SKT의 통신망을 Web Scale로 진화하기 위한 핵심 요소는 무엇이 있을지 알아보겠습니다.
VNF (Virtual Network Function)의 마이크로 서비스화(Micro-Service Architecture – MSA)
가장 먼저, VNF의 아키텍처가 마이크로 서비스화 되어야 합니다. 마이크로 서비스 아키텍처(MSA)를 정확히 설명하려면 이 기고 전체를 할애해도 부족하기에 간단히 설명하겠습니다. MSA란 최소 기능 단위를 독립적으로 실행 또는 배포가 가능한 모듈로 구성하며 각 모듈 간에는 잘 정의된 인터페이스를 이용하여 통신하는 소프트웨어 아키텍처를 의미합니다. 이와 반대의 개념으로는 모든 기능을 단일 모듈 안에 다 구현하는 모노리틱(Monolithic) 아키텍처가 있습니다.
MSA에서 각 모듈은 모듈 간 인터페이스만 유지하면 독립적으로 진화할 수 있으며, 단일 모듈 장애 시에 다른 모듈에 직접적인 영향을 주지 않습니다. 또한 시스템 확장(Scale-Out )시에는 꼭 필요한 모듈만 Scale-Out이 가능합니다. 따라서, 이러한 특성은 앞서 설명한 Cattle 시스템을 구성하는 데 가장 적합한 소프트웨어 아키텍처라고 할 수 있습니다.
▲ Function(임의의 기능)/DB/Web 기능이 하나의 모듈에 들어가 있는 모노리틱 아키텍처를 MSA화 한 모습
모노리틱 아키텍처를 MSA화 할 경우 위 그림의 오른쪽 아래에서도 볼 수 있듯, DB와 Web과 같은 공통 기능은 공통 서비스 모듈로 분리해 공통으로 사용하게 됩니다, 그리고 Function1,2 (F1, F2)를 독립 모듈로 분리해 독립적으로 업그레이드 및 확장(Scale-Out)이 가능하게 되는 방식으로 구현됩니다.
VNF의 컨테이너화 (Containerization)
컨테이너란 하나의 단위 기능을 실행하기 위해 필요한 실행 코드, 라이브러리, 및 설정을 모두 포함한 패키징(Packaging) 방식을 의미합니다. 컨테이너는 다른 컨테이너들과 운영체제(정확히는 OS Kernel)를 공유하며 다른 컨테이너들과 독립된 프로세스로 실행이 됩니다. 이에 반해 가상 머신 (Virtual Machine 또는 VM)은 독립적인 운영체제의 모든 기능을 포함하고 있으며 여러 개의 응용 프로그램 또는 프로세스를 실행할 수 있습니다. 따라서 컨테이너는 가상머신에 비해 용량이 크지 않아 가벼우며(lightweight), 생성 속도 또한 훨씬 빠릅니다. 반면, 가상 머신은 독립적인 운영 체제를 사용하기 때문에 보안이나 안정성에 있어 컨테이너보다 우수한 장점도 있습니다. 이러한 컨테이너의 특성은 앞서 설명한 MSA 소프트웨어 아키텍처 및 Cattle 시스템의 요구 사항을 모두 만족하는 소프트웨어 패키징 방식입니다.
▲ VM 아키텍처 및 컨테이너 아키텍처의 비교
VNF에 이러한 아키텍처를 적용하면, VNF 기능을 작은 독립적인 모듈로 재설계하고 이 모듈들을 각각 컨테이너화해 배포하게 됩니다. 여러 개의 동일한 기능을 갖는 컨테이너가 하나의 모듈 기능을 하고, 이 컨테이너 중 하나 또는 여러 개가 장애를 일으키면 바로 컨테이너를 제거(Terminate)하며 아주 짧은 시간 내에 필요한 수만큼의 컨테이너를 재생성하여 대체하게 됩니다. 시스템 업그레이드가 필요하면 여러 모듈 중 필요한 모듈만 수정하여 업그레이드할 수 있고, 업그레이드 방식 또한 여러 개의 컨테이너를 한 번에 업그레이드하는 대신 하나씩 순차적으로 업그레이드(Rolling Upgrade) 함으로써 서비스의 지속성도 유지할 수 있습니다. 시스템의 Scale-Out 또한 기능 확장이 필요한 모듈의 컨테이너 수만 늘려주면 쉽고 빠르게 가능해집니다.
5G의 효과가 극대화되기 위해 필요한 건?
지금까지 설명했듯이 통신망 인프라를 Web Scale 아키텍처로 바꾸기 위해서는 VNF의 아키텍처부터 운영 방식까지 많은 부분이 바뀌어야 합니다. 따라서, 이를 상용화하기 위해서는 VNF의 개발을 담당하는 VNF 벤더, 통신 인프라 구축 및 운영을 책임지고 있는 통신사가 모두 함께 움직여야 합니다.
현재 글로벌 벤더에서는 이미 5G용 VNF를 중심으로 일부 VNF를 마이크로 서비스화하고 컨테이너를 이용해서 준비 중이며, 해외 모 통신사는 LTE 서비스 신규 구축 시에 컨테이너화를 한다는 소문까지 들리기도 합니다. 따라서, 5G 인프라는 컨테이너 중심의 Web Scale 아키텍처로 구축될 것으로 보입니다만, 이 시점을 5G 기술 표준화 관점에서 살펴 보면 2020년이 될 것 같습니다.
현재 5G 표준은 세계 통신 표준 단체인 3GPP(3rd Generation Partnership Project)가 규정하고 있으며 5G의 첫 표준 규격인 Release 15이 작년 2018년 6월에 발표됐습니다. 이는 5G Phase I이며, 그 다음 5G 규격인 Release 16이 5G Phase II인데 올해 2019년 12월 발표될 예정입니다. 5G 표준 회의에 참여하는 분들에 의하면 Phase I에도 어느 정도 모듈 분리가 이루어져 있지만, Phase II에서 MSA가 본격적으로 적용이 될 예정이며 이 표준을 이용하여 구현된 모듈을 컨테이너화를 했을 때 그 효과가 극대화될 것이라고 합니다. 따라서, 실제로 5G 인프라가 Web Scale로 발전할 수 있는 계기가 마련되는 시점은 5G Phase II 발표 (2019년 12월) 이후인 2020년일 것으로 예상됩니다.
작년 12월에 통신 3사가 일제히 B2B 향으로 5G 시대를 열었으며, 언론에 따르면 올해 3월에는 5G 스마트폰도 출시된다고 합니다. 하지만 표준이나 기술적인 관점에서 보면 5G 인프라는 상용화가 완료되는 것이 아니라 이제 본격적으로 시작될 것으로 보이네요. 시간이 좀 걸리더라도 통신 인프라도 더는 Pet이 아닌 Cattle 시스템과 같은 Web Scale로 진화하여 다양한 5G 서비스를 더 빠르게 더 안정적이면서 더 효율적으로 제공될 것으로 기대하며 이 글을 마치도록 하겠습니다.