ICT트랜드

ICT트랜드

애플리케이션별 서버 가상화 기술 적용방안 - 정보자원관리과 김현정 사무관

애플리케이션별 서버 가상화 기술 적용방안
정보자원관리과 김현정 사무관

1. 서버 가상화 기술 분석 서버 가상화란 하나의 물리 서버를 여러 개의 논리 서버로 분할하여 사용하는 것을 말한다. 서버 가상화에는 운영체제를 공유하지 않는 가상머신 방식과 운영체제를 공유할 수 있는 경량화된 컨테이너 방식이 혼재되어 발전하고 있다. 이에 따라 애플리케이션 마다 어떤 서버 가상화 기술을 채택할지 고민이 필요한 시점이다. 가. 가상머신 기술 분석 먼저 가상머신 기술은 하이퍼바이저를 이용하여 가상 서버를 제공하는 방식이다. 하이퍼바이저는 CPU, 메모리, 디스크 등 하드웨어를 모두 가상화하여 가상머신마다 독점적으로 사용할 수 있도록 제공해 준다. 이 기술은 하이퍼바이저 설치 방식에 따라 물리서버에 하이퍼바이저를 바로 설치하는 Native 방식과 호스트 운영체제를 설치하고 하이퍼바이저를 설치하는 Hosted 방식으로 나누어진다.(그림1) 이 기술을 구현한 대표적인 예는 KVM, Xen, Hyper-V, ESXi 등이 있다.
그림1. Type별 가상머신 아키텍처 - Type1(Native) / 가상머신(애플리케이션, 게스트 운영체제), 가상머신(애플리케이션, 게스트 운영체제) / 하이퍼바이저 / 하드웨어 / Type2(Hosted) / 가상머신(애플리케이션, 게스트 운영체제), 가상머신(애플리케이션, 게스트 운영체제) / 하이퍼바이저 / 호스트 운영체제 / 하드웨어
나. 컨테이너 기술 다음으로 컨테이너 기술이 있다. 컨테이너는 리눅스 커널이 프로세스를 격리하여 가상 자원인 컨테이너를 제공하는 기술이다. 이 기술은 리눅스 커널 기능인 namespace와 cgroup을 이용해서 격리된 환경을 제공해 준다. 컨테이너 기술의 아키텍처는 호스트 운영체제를 설치하고 컨테이너 엔진을 올린 다음 애플리케이션이 포함된 컨테이너 이미지를 배포하여 실행하는 구조이다.(그림2) 이 기술을 구현한 대표적인 예는 리눅스 컨테이너(LXC), 도커, Cri-O 등이 있다. 이와 함께 컨테이너 배포와 관리를 자동화해 주는 오케스트레이션 엔진인 쿠버네티스가 있어 컨테이너 확산에 크게 기여하고 있다.
그림2. 컨테이너 아키텍처 - 컨테이너(애플리케이션, Bins/Libs), 컨테이너(애플리케이션, Bins/Libs), 컨테이너(애플리케이션, Bins/Libs) / 컨테이너 엔진 / 호스트 운영체제 / 하드웨어
다. 서버 가상화 기술 비교 두 개의 기술을 비교해보면 가상머신 기술은 하드웨어를 가상화하여 가상머신을 제공하는 개념으로 하이퍼바이저가 핵심 역할을 수행한다. 이 하이퍼바이저가 추가 계층을 제공함으로써 가상머신간의 격리수준이 높다. 또한 가상머신내 장애 발생에 따른 외부로 영향이 쉽게 차단된다. 따라서 가상머신 방식은 보안과 안정성이 우수하다고 볼 수 있다. 또한, 게스트 운영체제를 본인이 사용하던 운영체제를 그대로 사용할 수 있어 애플리케이션 전환이 용이하다. 하지만 게스트운영체제의 추가 설치로 복잡하고 무거우며, 큰 사이즈로 인해 인스턴스 생성 및 확장 등 속도가 느리다는 단점이 있다.
컨테이너 기술은 운영체제가 프로세스를 격리하여 컨테이너를 제공해 주는 방식으로 빠른 배포와 확장이 가능하여 신속성과 유연성을 확보할 수 있다. 또한 필요한 소프트웨어만 배포하여 가볍고 성능이 향상된다. 또한 오케스트레이션 시스템을 통해 인스턴스 실행, 이동 뿐만 아니라 확장, 장애조치 등도 자동화함으로써 운영관리가 용이해진다. 반면에 호스트 운영체제 공유로 격리 수준이 낮고 컨테이너 내 프로그램 오류가 전체 시스템에 영향을 줄 수 있어 보안성과 안정성의 문제가 발생할 소지가 있다. 또한 경량화하여 서비스해야 하므로 애플리케이션 전환이 어려운 단점이 있다.
표 1. 가상머신과 컨테이너 장단점 비교
구분 가상머신 컨테이너
장점 ▪ 보안, 안전성 우수
▪ 게스트운영체제 선택 가능
▪ 자동화 및 중앙화로 운영 관리 용이
▪ 컨테이너에 비해 애플리케이션 전환 용이
▪ 빠른 배포와 확장으로 신속성과 유연성 확보
▪ 필요한 소프트웨어만 배포하여 가볍고 성능 향상
▪ 오케스트레이션시스템을 통해 운영관리 용이
단점 ▪ 복잡하고 무거움
▪ 인스턴스 생성 및 확장 속도 느림
▪ 보안, 안정성 문제 존재
▪ 애플리케이션 전환 어려움
2. 애플리케이션 특성 분석 OLTP시스템은 사용자가 온라인으로 서버에 접속하여 트랙잭션을 처리하는 시스템이다. 이와 같은 시스템은 동시에 여러 사용자가 데이터베이스를 조회하거나 갱신함으로 데이터 정합성이 중요해진다. 이와 같은 시스템들은 금융시스템, 국가의 중요 업무시스템들로 사업이나 조직의 생존에 필수적인 시스템들이다. 이와 같은 시스템들을 미션크리티컬 애플리케이션이라고 분류할 수 있다.
또다른 예로 기관이나 업체의 홈페이지는 정보전달 위주이고 읽기전용 서비스가 많다. 또한 실시간으로 정보를 제공하는 서비스들이다. 이와 같은 시스템은 메뉴별 별도의 서비스로 데이터베이스 분할이 용이하고 빠른 서비스가 중요하다. 하지만 특정 시점에 사용자들이 몰려 사용자수를 예측하기 곤란하다는 특성이 있다. 이와 같은 애플리케이션들은 환경변화와 사용자 요구에 따라 수정 보완이 이루어지는 변화에 민감한 애플리케이션들이다.
표 2. 애플리케이션(AP)별 특성
구분 미션크리티컬 AP 변화에 민감한 AP
정의 사업이나 조직의 생존에 필수적인 시스템 시장과 환경변화에 따라 서비스가 변화하는 시스템
특성 보안성과 안정성이 중요 신속성과 유연성이 중요
사례 금융시스템, 사회보장정보시스템, 전사적 자원관리(ERP), 그룹웨어 등 기관홈페이지, 재난안전서비스, 마스크앱, 원서접수시스템 등
인프라
요구사항
안정적이고 보안성이 확보된 인프라 제공 자원 사용이 가변적인 인프라 제공
3. 서버 가상화 기술 적용방안 이와 같은 가상화 기술의 장단점과 애플리케이션의 특성을 고려해 보면, 애플리케이션 특성에 따라 가상화 기술의 선택이 필요하다는 것을 알 수 있다. 먼저, 사업 및 조직의 생존에 필수적인 미션크리티컬 애플리케이션은 보안과 안정성이 우수하다고 여겨지는 가상머신 기술이 적합하다고 할 수 있다. 또한 신속하고 유연한 서비스가 필요한 변화에 민감한 애플리케이션들은 사용량에 따라 신속하게 자원을 할당 회수할 수 있는 컨테이너 기술이 적합하다고 할 수 있다. 또한, 두가지 특성을 모두 가진 애플리케이션은 어떤 특성에 더 가까운지를 고려하여 서버 가상화 기술을 채택하는 것이 필요할 것이다. * 출처 : 김현정, "애플리케이션 특성을 반영한 서버 가상화 기술 적용방안", 충남대학교 컴퓨터공학과 석사학위논문, 2021.8.