[Cloud] : 02. IaaS
서론
- 클라우드 서비스 유형 중 IaaS에 대해서 알아볼려고 한다. IaaS의 정의와 IaaS 구현하는 위해 필요한 가상화 기술과 현재 대표적으로 사용하는 IaaS 솔루션의 종류까지 알아 보도록 하겠다.
01. IaaS 란?
- IaaS는 클라우드 계층 중 제일 기본적인 계층으로 Infrastructure as a Service의 약자로 인프라 자원을 제공해주는 클라우드이다.이다. 여기서 말하는 Infrastructure는 서버 구성을 위한 하드웨어를 말한다. 예를 들면 DISK, Network, Storage, VM를 말한다. 이 말을 조금 더 쉽게 설명하면 내가 필요한 사양의 하드웨어 스펙으로 VM을 생성해준다는 의미이다. 물론 Network, Storage 등 더 추가적인 인프라도 서비스로 제공해줘서 원하는 대로 Network 구성이나 Storage 구성을 할 수 있다.
02. VM 가상화 방법
-
IaaS는 인프라를 서비스로 제공해 주기 위해서 가상화 기술을 사용한다. 가상화란 하나(혹은 여러개)의 거대한 물리적인 리스소를 여러 서버 환경으로 쪼개어 쓸 수 있게 하는 기술로서 대표적으로 Hypervisor, Container 방식 2가지가 있다.
- Hypervisor
- Hypervisor 방식은 Hypervisor를 통하여 가상화를 하는 방식으로, 여기서 말하는 Hypervisor는 가상 머신(Virtual Machine, VM)을 생성하고 구동하는 일종의 소프트웨어이다. Hypervisor 통한 가상화 방법도 아래와 같이 두가지 유형으로 나뉜다.
- Hypervisor 방식은 Hypervisor를 통하여 가상화를 하는 방식으로, 여기서 말하는 Hypervisor는 가상 머신(Virtual Machine, VM)을 생성하고 구동하는 일종의 소프트웨어이다. Hypervisor 통한 가상화 방법도 아래와 같이 두가지 유형으로 나뉜다.
- Type-1 Hypervisor
- 이 유형의 하이퍼바이저는 호스트가 초경량의 기본적인 역할 수행하는것을 십분 활용한다. 유형-1 하이퍼바이저는 호스트 운영체제의 역할을 하이퍼바이저 코드의 일부로 포함한다. 하이퍼바이저가 하드웨어 상 직접 실행되어 하부의 운영체제가 필요없다. 이를 베어메탈이라고 한다.
- 이 유형의 하이퍼바이저는 호스트가 초경량의 기본적인 역할 수행하는것을 십분 활용한다. 유형-1 하이퍼바이저는 호스트 운영체제의 역할을 하이퍼바이저 코드의 일부로 포함한다. 하이퍼바이저가 하드웨어 상 직접 실행되어 하부의 운영체제가 필요없다. 이를 베어메탈이라고 한다.
- Type-2 Hypervisor
-
이 유형의 하이퍼바이저는 호스트 운영 체제에서 일반적인 응용프로그램 소프트웨어로 실행된다. 호스트 운영체제는 가상화를 지원하는 기존의 모든 운영체제가 가능하다. 하이퍼바이저는 이 운영체제상에서 다른 응용프로그램 및 프로세스와 실행되고 자신에게 할당된 하드웨어 자원을 가진다.
-
유형-2의 가상환경에서는 호스트의 역할은 거의 없고 단지 하이퍼바이저가 실행될 플랫폼을 제공할 따름이다.
-
- Container
- Container 기술을 통해서 가상화를 진행하는 방법으로 아래 사진을 보면 Hypervisor 대신 Container Engine이 가상화를 진행한다. 다만 Hypervisor 방식과는 다르게 VM를 생성하는것이 아니라 Container(혹은 POD) 단위로 런타임을 제공하는 형태이다.
- Container 기술을 통해서 가상화를 진행하는 방법으로 아래 사진을 보면 Hypervisor 대신 Container Engine이 가상화를 진행한다. 다만 Hypervisor 방식과는 다르게 VM를 생성하는것이 아니라 Container(혹은 POD) 단위로 런타임을 제공하는 형태이다.
03. Network 가상화 방법
- SDN
- SDN(Software-Defined Networking)은 네트워크 가상화 접근 방식 중 하나로서 네트워크 리소스를 최적화하고 쉽게 변경할 수있게 한다. SDN은 네트워크의 제어와 데이터 평면을 분리하여 소프트웨어 프로그래밍 가능 인프라를 만드는 방식으로 작동합니다.
[참고:https://www.netmanias.com/] - SDN(Software-Defined Networking)은 네트워크 가상화 접근 방식 중 하나로서 네트워크 리소스를 최적화하고 쉽게 변경할 수있게 한다. SDN은 네트워크의 제어와 데이터 평면을 분리하여 소프트웨어 프로그래밍 가능 인프라를 만드는 방식으로 작동합니다.
- NFV
-
NFV(Network Function Virtual)은 NFV는 위에 설명한 SDN을 소프트웨어적으로 구현할 수 있는 기술이다. NFV는 서버 가상화의 아이디어를 네트워크 장비까지 확장해 네트워크에서 특정 기능을 수행하도록 한다. 하드웨어에서 실행되었던 라우터, 방화벽, 로드 밸런서 등의 네트워크 서비스를 가상화하는 방식입니다.
-
NFV를 통해서 가지는 장점은 아래와 같다. NFV를 사용해 전용 하드웨어가 아닌 표준 하드웨어에서 네트워크 기능을 수행할 수 있다. 또한 네트워크 기능이 가상화되므로 여러 기능을 하나의 서버에서 실행할 수 있어 물리적인 하드웨어가 덜 필요하며 리소스를 통합할 수 있어 물리적 공간, 전력 및 전체 비용을 절감할 수 있습니다.
[참고:AUTTO-RESEARCH] -
- 네트워크 가상화
- 네트워크 가상화와 NFV는 다른 개념이다. 여러 물리적 네트워크를 하나의 소프트웨어 기반 가상 네트워크로 결합하거나 하나의 물리적 네트워크를 별도의 독립적인 가상 네트워크로 나눌 수 있다. 예를 들면 VLAN이 있다.
- 네트워크 가상화와 NFV는 다른 개념이다. 여러 물리적 네트워크를 하나의 소프트웨어 기반 가상 네트워크로 결합하거나 하나의 물리적 네트워크를 별도의 독립적인 가상 네트워크로 나눌 수 있다. 예를 들면 VLAN이 있다.
04. IaaS 종류
-
AWS, GCP, NCP, TOAST 등 과 같이 IaaS 기능을 포함하는 Cloud Solution들은 많다. 다만 이번 포스팅에서는 IaaS 기능만 제공하는 Cloud Solution 들만 다루도록 하겠다.
- Openstack
-
Openstack은 Redhat에서 개발한 오픈소스 기반의 IaaS Solution으로써 프라이빗, 퍼블릭 클라우드를 구성할 수 있다.
-
Openstack의 최대 장점은 오픈소스라는 점이 제일 장점으로 뽑히며, 각 기능들을 컴포넌트화 하여 프로젝트 별로 개발하고 있어 각 기능들의 대한 업데이트가 빠른 편이다. 다만 컴포넌트에 따라서 deprecated 되는 경우가 있어서 이부분에 대해서는 사용 시 유의해야된다.
- 대표 컴포넌트
- Nova : OpenStack 컴퓨팅 리소스를 위한 전체 관리 및 액세스 툴로 스케줄링, 생성, 삭제하는 기능을 담당
- Neutron : OpenStack 서비스 전반에서 네트워크에 대한 관리를 담당.
- Swift : 내결함성이 뛰어난 오브젝트 스토리지 서비스로, RESTful API를 사용해 구조화되지 않은 애플리케이션을 저장 및 검색하는 역할을 담당.
- Cinder : 셀프 서비스 API를 통해 액세스할 수 있는 퍼시스턴트 블록 스토리지.
- Keystone : 모든 OpenStack 서비스를 인증하고 권한을 부여하며 모든 서비스를 위한 엔드포인트 카탈로그의 역할.
- Glance : 다양한 위치에 있는 가상 머신 디스크의 이미지를 저장하고 검색.
- 실무에서 Openstack을 다뤄봤는데 IaaS만 다루는 Solution 답게 virtual machine을 다뤄본 사람은 금방 익숙해 질 수 있다. 다만 Openstack은 오픈소스 답게 신뢰도 면에서는 불안함이 있다. 내가 담당하고 있던 Openstack에서도 많은 이슈들이 발생했었다.
-
- VMware vSphere
-
VMware vSphere는 VMware의 제품군 중 DataCenter에 포함되는 것으로, 내부 클라우드 에서 주로 사내/데이터 센터 클라우드를 표준화하여 외부 클라우드와 연결, 통합하는 클라우드 OS이다
-
VMware vSphere도 각 컴포넌트들이 기능들을 담당하고 있다. 컴포넌트의 종류는 아래와 같다.
-
ESXi : VMware에서 만든 Vsphere Hypervisor 제품군 중에 하나인 가상화 OS이다. 다른 제품들과 다르게 무료이다. 가상 시스템을 실행하는 하이퍼바이저. 각 가상 시스템에는 물리적 시스템의 모든 기능을 수행하는 구성 및 디스크 파일 집합이 있닥.
-
vCenter : 다수의 ESXi를 중앙집중관리 할 수 있는 VMware 서버. 네트워크에 연결된 ESXi 호스트의 중앙 관리자 역할을 하는 서비스.
-
vMotion : vCenter 제공 기능 / 하나의 서버에서 다른 서버로 마이그레이션 제공. 타 서버로 가상머신의 무정지 이동 가능.
-
vSphere HA : vCenter 제공 기능 / 클러스터링 된 ESXi 호스트 중 장애가 감지되면, VM들을 여유 리소스가 있는 ESXi로 마이그레이션
-
Clone : vCenter 제공 기능 / VM을 복제하는 기능
-
Template : vCenter 제공 기능 / 하나의 VM을 마스터 이미지로 만들어 동일 Guest OS를 배포
-
vCLS(vSphere 클러스터 서비스) : vCLS는 에이전트 가상 시스템을 사용하여 클러스터 서비스 상태를 유지한다. vCLS 에이전트 가상 시스템은 클러스터에 호스트를 추가할 때 생성된다. 클러스터 내에 분산된 각 vSphere 클러스터에서 vCLS VM을 3개까지 실행해야된다.
-
- vSphere를 사용해 본 경험상으로는 위에 얘기한 Openstack 보다는 조금더 하드웨어 친화적이었다. Openstack의 경우는 일반적인 VM 만드는 방식을 생각하면 쉽게 만들 수 있었지만, vSphere 같은 경우는 사용이 어려웠다. 다만 시스템 안정성은 좋았던 걸로 기억한다.
-
05. 끝마치며
- 이번 포스팅에서는 Cloud 기술의 기반인 IaaS를 알아 보았다. 다음 시간에는 실질적인 개발자에게 도움이 되고 활용도가 높음 PaaS에 대해서 알아보도록 하겠다.
댓글남기기