[Cloud] : 02. IaaS


서론

  • 클라우드 서비스 유형 중 IaaS에 대해서 알아볼려고 한다. IaaS의 정의와 IaaS 구현하는 위해 필요한 가상화 기술과 현재 대표적으로 사용하는 IaaS 솔루션의 종류까지 알아 보도록 하겠다.

01. IaaS 란?

image-center

[참고:bluewave.net]


  • IaaS는 클라우드 계층 중 제일 기본적인 계층으로 Infrastructure as a Service의 약자로 인프라 자원을 제공해주는 클라우드이다.이다. 여기서 말하는 Infrastructure는 서버 구성을 위한 하드웨어를 말한다. 예를 들면 DISK, Network, Storage, VM를 말한다. 이 말을 조금 더 쉽게 설명하면 내가 필요한 사양의 하드웨어 스펙으로 VM을 생성해준다는 의미이다. 물론 Network, Storage 등 더 추가적인 인프라도 서비스로 제공해줘서 원하는 대로 Network 구성이나 Storage 구성을 할 수 있다.

image-center

[참고:https://hazelcast.com/]


02. VM 가상화 방법

  • IaaS는 인프라를 서비스로 제공해 주기 위해서 가상화 기술을 사용한다. 가상화란 하나(혹은 여러개)의 거대한 물리적인 리스소를 여러 서버 환경으로 쪼개어 쓸 수 있게 하는 기술로서 대표적으로 Hypervisor, Container 방식 2가지가 있다.

  • Hypervisor
    • Hypervisor 방식은 Hypervisor를 통하여 가상화를 하는 방식으로, 여기서 말하는 Hypervisor는 가상 머신(Virtual Machine, VM)을 생성하고 구동하는 일종의 소프트웨어이다. Hypervisor 통한 가상화 방법도 아래와 같이 두가지 유형으로 나뉜다.
      image-center
  • Type-1 Hypervisor
    • 이 유형의 하이퍼바이저는 호스트가 초경량의 기본적인 역할 수행하는것을 십분 활용한다. 유형-1 하이퍼바이저는 호스트 운영체제의 역할을 하이퍼바이저 코드의 일부로 포함한다. 하이퍼바이저가 하드웨어 상 직접 실행되어 하부의 운영체제가 필요없다. 이를 베어메탈이라고 한다.
  • Type-2 Hypervisor
    • 이 유형의 하이퍼바이저는 호스트 운영 체제에서 일반적인 응용프로그램 소프트웨어로 실행된다. 호스트 운영체제는 가상화를 지원하는 기존의 모든 운영체제가 가능하다. 하이퍼바이저는 이 운영체제상에서 다른 응용프로그램 및 프로세스와 실행되고 자신에게 할당된 하드웨어 자원을 가진다.

    • 유형-2의 가상환경에서는 호스트의 역할은 거의 없고 단지 하이퍼바이저가 실행될 플랫폼을 제공할 따름이다.

  • Container
    • Container 기술을 통해서 가상화를 진행하는 방법으로 아래 사진을 보면 Hypervisor 대신 Container Engine이 가상화를 진행한다. 다만 Hypervisor 방식과는 다르게 VM를 생성하는것이 아니라 Container(혹은 POD) 단위로 런타임을 제공하는 형태이다.

    image-center

03. Network 가상화 방법

  • SDN
    • SDN(Software-Defined Networking)은 네트워크 가상화 접근 방식 중 하나로서 네트워크 리소스를 최적화하고 쉽게 변경할 수있게 한다. SDN은 네트워크의 제어와 데이터 평면을 분리하여 소프트웨어 프로그래밍 가능 인프라를 만드는 방식으로 작동합니다.
      image-center
    [참고:https://www.netmanias.com/]


  • NFV
    • NFV(Network Function Virtual)은 NFV는 위에 설명한 SDN을 소프트웨어적으로 구현할 수 있는 기술이다. NFV는 서버 가상화의 아이디어를 네트워크 장비까지 확장해 네트워크에서 특정 기능을 수행하도록 한다. 하드웨어에서 실행되었던 라우터, 방화벽, 로드 밸런서 등의 네트워크 서비스를 가상화하는 방식입니다.

    • NFV를 통해서 가지는 장점은 아래와 같다. NFV를 사용해 전용 하드웨어가 아닌 표준 하드웨어에서 네트워크 기능을 수행할 수 있다. 또한 네트워크 기능이 가상화되므로 여러 기능을 하나의 서버에서 실행할 수 있어 물리적인 하드웨어가 덜 필요하며 리소스를 통합할 수 있어 물리적 공간, 전력 및 전체 비용을 절감할 수 있습니다.

    image-center

    [참고:AUTTO-RESEARCH]


  • 네트워크 가상화
    • 네트워크 가상화와 NFV는 다른 개념이다. 여러 물리적 네트워크를 하나의 소프트웨어 기반 가상 네트워크로 결합하거나 하나의 물리적 네트워크를 별도의 독립적인 가상 네트워크로 나눌 수 있다. 예를 들면 VLAN이 있다.

04. IaaS 종류

  • AWS, GCP, NCP, TOAST 등 과 같이 IaaS 기능을 포함하는 Cloud Solution들은 많다. 다만 이번 포스팅에서는 IaaS 기능만 제공하는 Cloud Solution 들만 다루도록 하겠다.

  • Openstack
    • Openstack은 Redhat에서 개발한 오픈소스 기반의 IaaS Solution으로써 프라이빗, 퍼블릭 클라우드를 구성할 수 있다.
      image-center

    • 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이다
      image-center

    • 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개까지 실행해야된다.

    image-center

    • vSphere를 사용해 본 경험상으로는 위에 얘기한 Openstack 보다는 조금더 하드웨어 친화적이었다. Openstack의 경우는 일반적인 VM 만드는 방식을 생각하면 쉽게 만들 수 있었지만, vSphere 같은 경우는 사용이 어려웠다. 다만 시스템 안정성은 좋았던 걸로 기억한다.

05. 끝마치며

  • 이번 포스팅에서는 Cloud 기술의 기반인 IaaS를 알아 보았다. 다음 시간에는 실질적인 개발자에게 도움이 되고 활용도가 높음 PaaS에 대해서 알아보도록 하겠다.

댓글남기기