나의 삽질 저장소!

클라우드를 지탱하는 기술 - 3편

by softPine

클라우드를 실현하고 지탱하는 기술 중 주 된 기술들을 간단하게 알아보겠다.

 

서버 가상화 기술의 장점

서버 가상화란 하나의 물리적 서버 리소스에 여러 개의 서버 환경을 할당하고, 각각의 환경에 OS와 애플리케이션을 실행할 수 있게 만들어 준다. 물리 서버의 경우, 모든 리소스를 사용하는 상황이 흔치 않으므로, 리소스가 남는 경우가 많다. 이럴 때 가상화를 사용하면 서버 리소스를 최대한 많이 사용할 수 있다. 이로 인해 물리 서버의 수가 줄어들기도 하며, 각각의 환경이 독립적이므로 보안적으로도 이득을 얻을 수 있다.

 

서버 가상화 기술

서버 가상화 기술은 주로 하이퍼바이저, 호스트 OS, 컨테이너 3종류로 나뉜다.

 

하이퍼바이저

하나의 물리 서버 위에 하이퍼바이저라는 가상화 소프트웨어를 동작시키고, 그 위에 Linux와 Windows 같은 여러 개의 게스트 OS를 가동시키는 형태. 당연히 각 서버의 성능은 물리서버 보다 떨어진다. 대표적으로는 VMware의 vSphere, MS의 Hyper-V, Citrix의 Xen, Linux의 표준 기능인 KVM이 있다.

 

호스트 OS

하이퍼바이저와는 다르게 일반적인 윈도우나 Linux 같은 OS 위에 가상화 소프트웨어가 올라가고 다시 그 위에 게스트 OS를 가동시키는 형태이다. 일단 Host OS가 있기에 한번 더 에뮬레이트 되는 관계로 성능이 하이퍼바이저보다 더욱 떨어지는 경향이 있다. 그러나 호스트 OS 가상화의 장점은 OS를 가상화에 맞게 수정하지 않고 편하게 가상화 환경을 구성할 수 있다는 장점이 있다. 대표적으로는 VMware의 VMware Workstation, Sun의 VirtualBox, Parallels의 Parallels Workstation등이 있다.

 

컨테이너

컨테이너 기술이란 하나의 OS 환경에서 애플리케이션의 실행을 위한 영역을 여러 개로 나누어 사용하는 기술. 나눈 영역을 컨테이너라고 부르며, 각각의 컨테이너는 다른 컨테이너에 영향을 주지 않으면서 별도의 애플리케이션을 실행할 수 있는 환경을 말한다. 컨테이너는 호스트 OS의 입장에서 보면 하나의 프로세스(실행 중인 프로그램)이다.

컨테이너는 애플리케이션의 실행 환경을 가상화하는 것으로 이해해도 좋다. 이로 인한 장점으로 가상화에 따른 오버헤드가 적기 때문에 빠르게 운영할 수 있으며, 성능 저하도 다른 가상화 기술들에 비해 적은 편이다. 일단 게스트 OS가 없으므로 용량을 절약할 수 있으며, 애플리케이션을 실행할 수 있는 환경을 패키징을 하므로 쉽게 이식할 수 있는 장점도 있다.

 

스토리지 기술

클라우드에서는 블록, 파일, 오브젝트 기반의 스토리지를 제공한다.

 

블록 스토리지

일정한 크기의 블록으로 나뉜 스토리지의 논리 볼륨을 블록 단위로 액세스할 수 있는 스토리지. 광 채널과 iSCSi 같은 프로토콜을 사용한다. 서버와 슽뢰지가 데이터를 교환할 때의 오버헤드가 적어서, 빠른 데이터 전송이 가능하다. 그러므로 낮은 레이턴시가 요구되는 DB 용도로 사용되고 있다.

 

파일 스토리지

파일을 그대로 읽고 쓸 수 있으며 공유할 수 있는 스토리지. SMB, CIFS, NFS등의 프로토콜을 사용하며 파일 단위로 이루어진다. NAS도 파일 스토리지로 분류한다. 주로 백업 용도로 이용하며, 접근 제어나 파일의 속성 정보를 관리하기가 쉽다는 장점이 있다.

 

오브젝트 스토리지

데이터를 객체 단위로 처리한다. 데이터 및 관련 메타 데이터로 구성된 오브젝트에는 고유한 ID가 부여된다. 오브젝트 스토리지는 OS나 파일 시스템에 의존하지 않으면서도 데이터를 저장하고 오브젝트에 액세스할 수 있는 특징이 있다. 오브젝트 스토리지의 액세스 형태는 HTTP 프로토콜 기반의 REST API를 사용한다. 쉽게 용량 증설이 가능하며, 크기와 데이터의 수에 대한 제한이 없다. 아카이빙 용도로 이용한다.

 

네트워크 가상화 기술

네트워크에도 하드웨어 구성에 의존성 없이 유연한 구조를 사용하기 위해 가상화를 사용한다.

 

VLAN

하나의 물리적인 네트워크를 여러 개의 논리적인 네트워크로 분할하는 기술. 이 분할된 네트워크들은 L3 즉 라우터를 거치지 않으면 통신을 할 수 없다. 이를 통해 팀 단위로 네트워크를 나누게 되면 쉽게 관리를 할 수 있다.

 

VPN

인터넷과 같은 불특정 다수가 이용하는 네트워크에 가상으로 전용선과 같은 사설망을 연결하는 기술.

 

NFV

Network Functions Virtualization의 약자로 네트워크 기능을 소프트웨어로 구현하여 가상 서버 위에 구축하는 기술. 이렇게 구현된 네트워크들은 기존의 장비 없이 네트워크 기능을 제공하므로 유연성 있는 네트워크를 구성할 수 있다.

 

SDN

Software Defined Networking의 약자이며, 기존 네트워크 장비마다 가지고 있떤 통신의 전송 기능(데이터 플레인)과 제어 기능(컨트롤 플레인)을 분리하여, 제어 기능을 컨트롤러에 논리적으로 집중시켜서 데이터의 흐름을 소프트웨어로 정의하자는 것.

서버 가상화와 마찬가지로 네트워크가 추상화되므로, 하나의 물리적 네트워크 위에 컨트롤러 별로 여러 개의 가상 네트워크를 구축할 수 있다. SDN이 보급되면서 네트워크 장비는 컨트롤러가 집중적으로 제어하게 되며, 기업 사용자는 네트워크 가동상황 및 운영에 맞추어 소프트웨어로 유연하게 데이터 전송 경로를 변경할 수 있게 될 것으로 기대하고 있다.

 

엣지 컴퓨팅

서버를 클라우드 쪽에 배치하는 대신, 서버를 스마트폰 등의 단말 디바이스에 가장 가까운쪽에 분산 배치하고, 그 서버에서 말단 디바이스가 보낸 데이터를 처리하는 컴퓨팅 모델. 클라우드 컴퓨팅은 서버를 한곳에서 모아 집중 처리를 하지만, 엣지 컴퓨팅은 말단에서 분산처리를 한다는 차이가 있다. IoT 애플리케이션에 어울리는 모델이다. 보통 주요 요구사항중에 실시간 데이터 처리 및 높은 신뢰성을 요구되는 상황에서 사용한다.

 

하이퍼 컨버지드 인프라스트럭쳐

먼저 컨버지드 인프라란 말이 있는데 컨버지드(Converged)는 하나로 모은다란 뜻이다. 컨버지드 인프라란 서버, 네트워크, 스토리지, 소프트웨어 등을 하나의 패키지에 통합한 제품을 말하며, 수직 통합 시스템이라고도 한다. 이제 하이퍼 컨버지드 인프라스트럭처란 소프트웨어 기반의 서버와 네트워크, 스토리지 등의 구성 요소가 통합된 제품이다. 각 서버 네트워크, 스토리지를 모듈 단위로 구성하고, 소프트웨어로 전체 시스템 구성 설정 및 구성 방법을 변경할 수 있는 등 운영 효율성이 우수하다(전체를 하나의 시스템으로 관리를 할 수 있다).

 

서버리스 아키텍쳐

클라우드가 보급되면서 빠르고 유연한 컴퓨팅 환경을 이용할 수 있게 되었다. 이로인해 마이크로 서비스 아키텍처라는 아키텍처 모델이 보급되었다. 하나의 애플리케이션을 작은 서비스의 집합체로 구축하는 방법을 말하며, 개별 서비스들이 API와 같은 간단한 방법으로 연계해서 동작하게 된다. 각 개별 서비스들은 단독으로 작동하지만 ,여러 개의 독립적인 컴퍼넌트로 구성되며, 각 컴포넌트가 서로 느슨하게 결합한 상태로 동작하여 전체 기능을 구현한다. 기능을 컴포넌트 단위로 나누어 개발하므로, 클라우드 사업자는 새로운 서비스를 신속하게 개발할 수 있으며 필요에 따라서는 새로운 컴포넌트를 교체할 수 있게 된다.

이때 클라우드 서비스가 풀 매니지먼트인 경우, 사용자는 서버의 존재를 전혀 의식하지 않은 상태에서 애플리케이션을 동작시킬 수 있다. 이것을 서버리스 아키텍처라고 한다. 또한 서버리스 아키텍처를 채용한 클라우드 서비스를 FaaS(Function as a Service)라고 부른다.

'클라우드 > 기반지식' 카테고리의 다른 글

클라우드 접근법 - 2편  (0) 2021.04.06
클라우드란? - 1편  (0) 2021.03.26

블로그의 정보

나의 삽질저장소

softPine

활동하기