컨테이너 관리 플랫폼 기반의 클라우드 협업환경 구성

기술/표준화/보안BRIEF
2019년 12월 30일 | 조회수 99

한국정보화진흥원 / 김정엽 수석

 

미국, 영국, 일본 등 IT 선진국들은 관리를 위해 클라우드의 도입과 클라우드 기반 공공서비스 전환을 추진하면서, 공공부문의 대국민 서비스뿐만 아니라, 내부 업무환경도 클라우드 기반으로 전환하여 업무 효율성을 향상시키고 있다.

클라우드 업무환경은 기존 업무환경의 공간적 제약과 단말기 제약을 받지 않고 정보에 접근하여 업무를 처리하고 공유·협업할 수 있는 업무환경을 제공한다. 본고에서는 공유·협업·소통을 위한 클라우드 업무환경 서비스 참조모델을 실제 공공기관에 구현한 모델인 NiCloud 서비스와 이를 위한 컨테이너 관리 플랫폼과 이를 적용한 개방형 클라우드 플랫폼을 소개하고 NiCloud 서비스에 적용하기 위한 모델을 간략하게 설명한다.


1. 지능형 클라우드 협업환경 NiCloud 개요

공공부문에서 공공기관 지방이전(136개 공공기관 9대 혁신도시 이전, 38,257명) 정책으로 출장이나 현장 행정이 증가함에 따라, 기존 사무실 PC 중심의 업무환경에서 장소나 시간에 구애받지 않는 업무환경으로의 전환 요구와 함께, 기존에 개인PC에 분산되어 있는 정보자원을 통합하여 효율적으로 활용하기 위한 협업 및 공유 기반에 대한 필요성이 증가하고 있다. 이에, 공공기관에 적합한 구성으로, 클라우드 저장소를 기본으로 웹오피스, ESN을 통합·연계 활용하여 공유·협업·소통을 지원하는 업무모델을 서비스 참조모델을 기반으로 클라우드 업무환경 서비스를 구축하게 되었다.

지능형 클라우드 협업환경 NiCloud는 클라우드 업무환경 참조모델 중 저장소·웹오피스·ESN 통합모델을 구현한 서비스이다. NiCloud는 공공부문의 업무생산성 강화 수단으로 공유·협업·소통 환경을 클라우드 기반으로 구현하여 제공하는 것을 목적으로 한다.

 

[그림 1] 지능형 클라우드 협업환경 NiCloud 서비스

[그림 1] 지능형 클라우드 협업환경 NiCloud 서비스


2. 컨테이너 관리 플랫폼 쿠버네티스(kubernetes) 개념

클라우드 확산에 따라 다양한 클라우드 서비스 모델이 제시되고 있다. 모든 서비스를 비즈니스 관점에서 제공하는 SaaS에서부터, 전통적인 물리적 서버를 가상화하여 제공하는 Infra 관점의 서비스 모델까지 다양한 레벨의 가상화 서비스가 제공되고 있으며, 이 중 CaaS 서비스 모델로 대표되는 컨테이너 관점의 애플리케이션 배포 방식과 PaaS 서비스 모델로 대표되는 런타임 관점의 개발환경 제공모델에 관심이 집중되고 있다. 특히, 컨테이너와 개발환경의 경우 전통적으로는 직접 구축하여 활용하는 모델에서 IaaS기반으로 서비스되는 환경을 이용하는 방향으로 변화하고 있다.

 

[그림 2] 클라우드 모델별 관리 범위와 예시

[그림 2] 클라우드 모델별 관리 범위와 예시

 

여기에서 컨테이너 방식의 애플리케이션 배포방식이 주목받고 있는데, 전통적인 물리적 서버 기반의 배포에서 가상화된 배포를 통해 VM간의 애플리케이션 격리와 보안성을 확보하였으나, 개별 VM마다 운영체제를 포함한 모든 구성요소를 설치해야 했다. 여기에서 컨테이너는 컨테이너 간에 운영체제 등을 공유함으로써 서비스 생성과 배포를 기민하게 함게 동시에 느슨하게 커플링·분산되어 유연한 구조의 마이크로 서비스 구조에 적합한 환경을 제공할 수 있게 되었다.

 

[그림 3] 컨테이너 도입에 따른 배포 방식의 변화

[그림 3] 컨테이너 도입에 따른 배포 방식의 변화

컨테이너는 서비스를 포장하고 실행하는데 좋은 방법이며, 최근 클라우드 네이티브 구조를 구현하는데도 적합함에 따라 최근 적극적으로 도입되고 있다. 이에 따라 최근 클라우드 환경에서 컨테이너화된 서비스를 관리하기 위해서 이식성이 있고 확장 가능한 컨테이너 관리 플랫폼으로 쿠버네티스가 대두되었다.

쿠버네티스의 기본 구조를 보면, 클러스터는 쿠버네티스에서 관리되는 컨테이너화된 애플리케이션을 실행하는 노드의 집합으로, 최소 1개의 워커 노드와 1개의 마스터 노드를 가진다. 워커 노드는 애플리케이션의 구성요소인 파드를 호스트하며, 마스터 노드는 클러스터 내 파드를 관리한다.

 

[그림 4] 쿠버네티스 클러스터의 구조

[그림 4] 쿠버네티스 클러스터의 구조

PaaS(Platform as a Service)는 IaaS(Infrastructure as a Service)와 SaaS(Software as a Service)의 중간인 미들웨어 성격의 클라우드 서비스로서 컨테이너 기반으로 SW 플랫폼 서비스를 제공하고 있다. PaaS는 표준화된 HW 및 SW의 설치 및 구성을 자동화하여 신속한 개발환경·테스트가 가능하게 하는 서비스이다.

PaaS는 애플리케이션 개발·실행·관리를 가능하게 하는 플랫폼을 제공하며, SaaS의 개념을 개발 플랫폼으로 확장한 방식이다. 개발을 위한 플랫폼 구축이 필요 없이 웹에서 쉽게 빌려 쓸 수 있는 모델로, 개발자는 개발에만 집중하고 애플리케이션이 동작하는 주변 환경은 가져다 쓰는 구조이다. 이를 통해 개발에서 배포까지 라이프사이클이 짧아 DevOps 문화를 적용하기 용이하다는 장점을 가진다.

 

[그림 5] 클라우드 플랫폼 지원 기능

[그림 5] 클라우드 플랫폼 지원 기능

개방형 클라우드 플랫폼인 파스-타(PaaS-TA)는 클라우드 인프라 환경을 제어하면서 애플리케이션을 쉽게 개발하고 안정적으로 운영할 수 있도록 관리·지원하는 클라우드 플랫폼을 말한다.

 

[그림 6] 파스-타의 애플리케이션 라이프사이클

[그림 6] 파스-타의 애플리케이션 라이프사이클

파스-타는 부처, 민·관 협업 지원 및 개발자들의 자유로운 개발환경을 위해서 주요 오픈소스인 Cloud Foundry 등을 대상으로 핵심기술, 보안등의 오픈소스를 분석하여 만든 전자정부표준 프레임워크 기반의 개방형 클라우드 플랫폼 이다. 이를 위해 오픈소스를 활용하여 누구나 사용할 수 있도록 다양한 IaaS 환경을 지원하며, 쉽고 편하게 쓸 수 있도록 설치 자동화를 만들어서 배포하고 있다. 특히 파스-타는 인프라 제어 및 관리서비스·실행환경·서비스환경·개발환경·운영환경으로 구성되어 있는데, 쿠버네티스와의 통합 기능을 버전4.0부터 제공하여 CaaS와 PaaS 별도 운영에 따른 컨테이너 관리의 중복 등을 해소하는데 도움을 주고 있다.

 

[그림 7] 파스-타 주요 버전별 제공 기능

[그림 7] 파스-타 주요 버전별 제공 기능


3. 컨테이너 관리 플랫폼 · 개방형 클라우드 플랫폼 기반의 클라우드 업무환경 구성

최근의 클라우드 네이티브 서비스는 개발·테스트·배포를 모두 자동화 시켜 개발 사이클이 끊임없이 순환되도록 하여 개발속도를 최대화 시키는 개발스타일인 DevOps와 마이크로 서비스 아키텍처를 기반으로 하는 경우가 많으며, 클라우드 플랫폼인 PaaS는 클라우드 네이티브한 개발 환경을 제공하며, 개발자는 마이크로 서비스를 고려하여 DevOps 스타일로 개발하게 된다.

특히 애플리케이션의 개별 부분은 독립적인 기능으로 나누어지면서 서로 연결되며, 모놀리스 아키텍처에서 정의된 기능을 작은 서비스로 분리하는 행위를 마이크로 서비스라고 한다. 서비스들간 서로 소통을 위한 구성요소 사이의 상호작용 규칙을 API(Application Programming Interface) 라고 한다.

기존의 PaaS 서비스에서 컨테이너 중심으로 서비스되는 클라우드-네이티브(cloud-native) 지향의 마이크로 서비스 아키텍처(MircroServices Architecture: MSA)로 변화하고 있다. MSA는 독립적으로 작은 기능들을 결합하여 구성된다. MSA 구조로 변환하면, 개발 기간 단축 및 확장성 개선을 통해 서비스 개발의 자동화가 향상된다. MSA 구조의 서비스들은 대부분 가상 머신(Virtual Machine: VM) 보다 가볍고 신속한 컨테이너(container) 기반의 기능 구현이 적합한 것으로 알려져 있다. 따라서 DevOps 환경 기반의 컨테이너 관리 플랫폼이 요구되는데, 이를 해결하기 위해 파스-타에서 쿠버네티스 통합한 구조를 제시하고 있다.

 

[그림 8] 쿠버네티스의 파스-타 통합구조

[그림 8] 쿠버네티스의 파스-타 통합구조

파스-타 기반의 마이크로서비스 구조로 기존 클라우드 서비스를 전환하는 경우, 기존 서비스 구조를 마이크로서비스에 적합한 구조로 나누고 이를 연계하는 구조를 검토해야 하는데, 마이크로서비스 사이의 통신은 공유 데이터베이스가 아닌 API를 통해 이루어진다. 본 고에서 소개하는 공공기관 클라우드 협업환경인 NiCloud 의 경우 다양한 기존 서비스들을 융합한 클라우드 서비스로서 향후 마이크로서비스 아키텍처를 적용하여 클라우드 네이티브 애플리케이션으로서 클라우드 플랫폼인 파스-타의 API 게이트웨이를 포함하는 DevOps 지원 기능을 충분히 활용하고 컨테이너에 적합한 구조로 재구성하였다.

이와 함께 최근 도커·쿠버네티스 등 컨테이너 기반의 가상환경과 개방형 플랫폼인 파스-타에서 수평적 확장이 용이한 탄력적 아키텍처로서 특히 마이크로 서비스들을 체계적으로 관리하기 위해서는 마이크로 서비스 API를 정의하고 생성하는 서비스 생성자와 서비스를 사용하는 소비자 간에 잘 정의된 마이크로 서비스 API 체계가 요구되었으며, 이 들 마이크로서비스간에 연계를 위한 API 게이트웨이 및 계정 API 등을 위한 기능 등을 파스-타에서 제공하는 기능을 활용하여 재작성 되고 있다.

본 고에서 제안하는 참조모델들은 기본 요소인 저장소·웹오피스·ESN만을 포함하고 있으며, 또한 수요기관에 따라 다양한 요구조건이 존재하기 때문에 이를 다 만족시키기에는 한계가 있다. 이를 개선하기 위해서는 업무환경의 안정적인 운영과 유연하고 지속적으로 기능을 변경하고 확장하기 위한 기반과 그에 적합한 아키텍처 적용이 필요하다.

 

[그림 9] 개방형 클라우드 플랫폼 기반의 NiCloud 서비스 구성

[그림 9] 개방형 클라우드 플랫폼 기반의 NiCloud 서비스 구성


4. 결론

클라우드 업무환경은 공공부문의 클라우드 도입과 이를 활용한 업무 생산성 향상을 위하여, 클라우드가 제공하는 유연성과 접근 편의성을 적극 이용한 사례로 볼 수 있다. 본 고에서 설명한 참조모델의 구현인 NiCloud 이용을 통해 클라우드 업무환경이 공공부문에서 적극 활용되며, 이를 통해 업무의 효율성을 증대시키는데 활용된다.

마이크로 서비스 아키텍처는 DevOps 환경과 컨테이너 환경을 잘 지원가능하고, 소규모 서비스 단위로 관리됨에 따라 기존의 모노리틱 아키텍처에서 서비스의 일정 부분을 고치더라도 전체를 다시 빌드하고 재배포하는 변경주기에 비해 복잡한 대규모 시스템을 독립적인 단위로 결합하여 구성할 수 있으므로 서비스의 변경이 용이하고 효율적인 자원 사용이 가능하다는 장점이 있다. 다만, 정기적으로 업데이트 되는 부분과 성능을 위한 배포가 중요한 부분을 구분하여 컨테이너와 배포 파이프라인 중 선택적으로 구성할 필요가 있으며, 이는 장기적으로 성능 분석을 통해 최적화된 구성을 검토할 필요가 있다.

본 고에서는 공공기관 전용 공유·협업·소통을 위한 클라우드 업무환경을 구현한 모델인 NiCloud 서비스를 개방형 클라우드 플랫폼 파스-타에 적용하였다. 개방형 플랫폼을 통한 Open API 적용으로 ESN(Enterprise Social Network), 저장소, 웹오피스, 영상회의 등 업무의 협업·소통·공유 환경을 위한 통합모델 서비스들을 MSA(마이크로서비스아키텍처) 기반으로 개방형 플랫폼에 전환하여 파스-타 플랫폼 환경을 통해 다양한 환경을 지원할 수 있게 되었다. 이는 다양한 서비스가 융합된 NiCloud 서비스를 보다 클라우드 친화적인 구조로 전환될 수 있음을 확인할 수 있다. 이를 통해 파스-타를 기존의 서비스 전환에 적용 시 참조 가능한 플랫폼임을 확인하였다.