IaaS vs PaaS

2021. 10. 1. 16:34Cloud

728x90
반응형

IaaS

IaaS 서비스 란?

IaaS는 가상의 하드웨어 인프라(서버, 스토리지, 네트워크)를 서비스로 제공하는 것을 의미한다.

가상의 하드웨어에 OS 및 필요 애플리케이션을 설치하여 서비스한다.

IaaS 서비스 유형

  • 컴퓨트 서비스 :
    • 사용자에게 가상의 서버를 구성하여 제공하는 서비스
    • 가상 서버의 기본 리소스(CPU, Momory, Disk, Network)할당 및 운영체제 제공하며, Disk는 OS 설치 영역만 포함
  • 스토리지 서비스"
    • 블록스토리지 : 데이터 저장 영역을 위한 스토리지 볼륨 할당/삭제 (가상 서버에 볼륨의 Attach/Detach 하는 방식)
    • 공유 저장소 : 사용자들이 소유한 데이터나 음악. 동영산, 문서와 같은 파일을 클라우드에 존재한 스토리지에 저장, 삭제, 공유 등의 작업을 할 수 있는 서비스
  • 네트워크 서비스
    • 사용자에게 서비스 별로 격리된 서브 네트워크를 구성하여 제공하는 서비스
    • 오픈소스 또는 3rd Party 제품을 활용한 SW 방식의 Router, L4, Firewall, VPN 등의 구성이 포함될 수 있음

IaaS 서비스 구성 요소

IasS 서비스는 가상화 SW(하이퍼바이저), 가상화 관리 SW, IaaS 플랫폼, 클라우드 운영 관리 플랫폼을 통해 제공됨

  • 가상화 SW (하이퍼바이저) : 물리 서버에 가상화 계층을 제공하여 가상 서버의 생성 및 제어를 위한 기능을 제공하는 소프트웨어
  • 가상화 관리 SW : 하이퍼바이저를 제어하여, 가상화 자원에 대한 생성, 제어, 모니터링 등의 기능을 제공하는 소프트웨어
  • IaaS 플랫폼:
    • 하이퍼바이저를 기반으로 클라우드 서비스를 구성하는 플랫폼
    • 컴퓨팅 서비스, 네트워크 서비스, 스토리지 서비스, 이미지 서비스, 클라우드 공유 저장소 서비스 등 클라우드 서비스에 필요한 요소를 포함
  • 클라우드 운영 관리 플랫폼
    • 하이퍼바이저 및 가상화 관리 SW와의 연계를 통해 정책 및 자동화된 프로세스 기반을 운영 환경을 제공하는 플랫폼 (멀티 클라우드 지원을 위한 다양한 하이퍼바이저 연계 지원 필수)
    • 사용자를 위한 서비스 포털과 관리자를 위한 운영자 포털로 구성
    • ITSM 기반의 자원 요청 관리 프로세스를 통해 자원에 대한 신청/승인/생성잉 진행 됨.
    • 통합 데이터 저장소를 기반으로 자동화된 자원 현황 관리 및 표준화된 운영 관리 기능을 제공함

IaaS 플랫폼

  • 대표적인 IaaS 플랫폼에는 클라우드 스택, 오픈스택, 유칼립투스, v클라우드디렉터 등이 있음
  • 오픈스택은 6개월 단위 버전 Upgrade를 통해 개발 속도가 빠르며, 무료로 사용할 수 있는 오픈 소스 기반의 플랫폼임.
  • 클라우드스택 특징
    • 복수 하이퍼바이저 지원(KVM, XEN, ESXi, OVM, 베어메탈)
    • 역할(권한 할당 및 관리)
    • 가상 네트워크(VLAN 지원)
    • 리소스 풀(예를 들어 관리자가 하나의 계정으로 생성 가능한 가상 시스템의 수, 계정에 할당되는 공용 IP 주소의 수와 같은 가상 리소스를 제한할 수 있음)
    • 스냅샷과 볼륨
    • 가상 라우터, 방화벽, 로그 밸런서
  • 오픈스택의 특징
    • 가상화된 일반 서버 리소스를 관리하는 기능
    • 로컬 영역 네트워크 관리 기능
    • 가상 시스템 이미지 관리
    • 보안 그룹
    • 역할 기반 액세스 제어
    • 프로젝트 및 할당량
    • 웹 브라우저를 통한 VNC 프록시
    • 6개의 Core Service와 13개의 Optional Service로 구성됨

클라우드 운영 관리 플랫폼

클라우드 운영 관리 플랫폼은 가상 자원에 대한 요청 관리, 통합 운영 관리, 자원 생성 및 구성 자동화, 보안관리, 서비스 수준 관리 등의 기능으로 구성됨

PaaS 서비스

PaaS 란?

  • Platform as a Service의 약자이며 클라우드 기반으로 개발 플랫폼을 서비스로 제공하는 기술
  • 애플리케이션을 개발할 수 있도록 인프라, 개발S/W, 개발 언어 등의 개발 환경을 제공
  • 개발된 애플리케이션을 배포, 테스트 한 후 제품으로 릴리즈, 운영하는 모든 단계를 제공

PaaS 플랫폼

물리환경 or 가상화 환경 기반으로 어플리케이션 개발 플랫폼을 구축하는 소프트웨어

(예) 오픈시프트, 클라우드 파운드리, 소프트레이어

PaaS 플랫폼 주요 구성요소

  • DevOps Tools & UX
    • 컨테이너 이미지 빌드 자동화
    • Jenkins CI, Eclipsw IDE 통합 제공
  • Application Services
    • 개발언어, 웹 프레임워크, 데이터베이스, 소스 버전 관리툴 및 CI툴 등의 애플리케이션 플랫폼을 이미지 형태로 패키징
  • Orchestration
    • 컨테이너들로 구성된 클러스터를 하나의 시스템처럼 관리
    • 로드밸런싱, Auto-scaling 등의 기능을 통헤 고가용성 확보
  • Linux Container
    • 컨테이너는 프로그램이 작동하기 위한 최소한의 요소들을 묶어 패키징 한 격리된 실행환경
      (시스템 드라이버 및 공통 시스템 기능은 OS Kernel을 공유 활용)
    • 컨테이너는 이미지 형태로 저장되고 관리됨
  • OS
    • 리눅스 (예) RHEL 7.2

  • 컨테이너 = Linux의 OS레벨 가상화 → 빠른 부팅 속도 + 높은 효율성
  • 가상 서버는 Guest OS를 포함하기 때문에, 가상 서버의 이미지의 Size 가 큼 → IO 사용율 증가
  • PaaS 솔루션 중 Cloud Foundry와 OpenShift의 활용률이 높음
  • Open Paas는 공개 SW 기반의 PaaS 솔루션을 의미하며, 공공 부분에서는 Cloud Foundry 계열의 PaaS-TA가 대표적
  • Cloud Foundry와 OPENSHIFT는 활용 기술 측면에서 차이점이 있음
  • 최근에는 Cloud Foundry와 OPENSHIFT 모두 Kubernetes 및 Docker 기반의 구성 체계를 활용하고 있음

OpenShift

  • DevOps Tools & UX
    • Docker 빌드 자동화
    • Jenkins CI, Eclipse IDE 통합 제공
  • Application Services
    • 대규모 커뮤니티 접속 가능 (Docker Hub)
  • Orchestration
    • 확장성이 좋음
    • 선언적 관리 방식
  • Linux Containers
    • 컨테이너 표준인 Docker 적용
  • OS
    • RHEL support 비용 포함됨

Cloud Foundry

  • DevOps Tools & UX
    • Docker 빌드 자동화
    • Jenkins CI, Eclipse IDE 통합 제공
  • Application Services
    • Docker 커뮤니티에 비해 소규모
  • Orchestration
    • Diego는 오케스트레이션 표준은 아님
  • Linux Containers
    • Garden은 컨테이너 표준은 아님
  • OS
    • Ubuntu support 비용 포함 안됨

OPENSHIFT 아키텍쳐

  • 마스터
    • 사용자 로그인, 애플리케이션 관리, 도메인 생성 등 모든 오픈시프트 동작을 관리하는 Host
    • Oauth, etcd, Replication Controller, Scheduler, DNS 등의 Kubernetes 패키지 설치
    • REST API 제공으로 외부 관리 시스템과의 연계 가능
  • 노드
    • 실제 물리 서버 또는 Virtual Machine(VM)으로 구성되는 Host
    • 이미지 기반 Docker 컨테이너들이 실제 배치되는 영역
  • 컨테이너
    • 하나의 Docker 이미지를 실행하기 위한 자원 컨테이너로 노드상에서 동작
    • 논리적인 자원들(CPU, Memory)이 Resource Limits나 Quota 설정으로 할당 배치되어 개발자와 사용자들이 사용하는 논리적인 영역
    • 컨테이너 간은 SELinux에 의해 완벽하게 격리
  • 도커 이미지
    • 개발언어, 웹 프레임워크. 데이터베이스, 소스버전관리툴 및 CI툴 등의 애플리케이션 플랫폼을 이미지 형태로 패키징
  • 상용 레벨 적용이 가능한 오픈소스 컨테이너 오케스트레이션 시스템으로서, 리눅스 컨테이너들로 구성된 클러스터(Pod)를 하나의 시스템처럼 도구로서 개발을 빠르게 하고 운영을 단순화함

쿠버네티스 구성 요소

  • 클러스터 : 어플리케이션 컨테이너들이 배치되고 실행되는 컴퓨팅 자원
  • 파드
    • 어플리케이션 실행에 필요한 도커 컨테이너들의 집합으로 생명주기를 같이 하는 컨테이너 그룹
    • 쿠버네티스를 통한 배포 및 실행의 최소 단위
  • 리플리케이션 컨트롤러
    • Pod들의 라이프사이클 관리 및 health status 체크
    • 사용자의 선언(Json 파일)에 따라 Pod 숫자(replica 숫자)를 관리
  • 서비스 : 관련 Pod 집합을 대표하며, 로드밸런서 기능
  • 레이블 : Pod들의 그룹핑/조직화를 위해 관리하는 key-value pair 메타데이터
  • API 서버: 사용자의 request를 받는 역할을 하는 http 서버
  • ETCd :
    • Key-value- store로 설정 값을 저장하면, kubernetes에서 그 값을 참조해서 작동
    • core-os ecosystem의 소프트웨어 중 하나
  • Kubeproxy : L3, L4와 유사한 기능을 함. Iptables를 제어해서 라우팅 및 로드밸런싱 역할, 서비스 관련 기능
  • kubelet : 일종의 worker, docker 실행 및 iptables 설정

PaaS 서비스

  • PaaS 플랫폼을 사용하면 개발과 운영을 모두 이해하고 작업을 진행하는 DevOps, 개발테스트상용계에 이르는 애플리케이션 배포 및 운영 자동화가 가능함

  • 애플리케이션을 실행하는 인스턴스를 모니터링하고 인스턴스의 확대(Scale-out)와 축소(Scale-in)을 자동 수행

    →서비스 운영의 안정성과 효율성 향상

  • 애플리케이션 개발을 위한 작업 환경 확장, 자동 배포, 테스트 영향도 파악 등으로 인해 개발 시간 단축

    • PaaS플랫폼 장점
      • DevOps
        • IT 운영작업에 대해 소프트웨어 개발 원칙을 적용하는 것으로
        • 운영작업의 일부인 소스코드 배포, 테스트 및 프로모션 활동등을 개발작업의 일부로 적용하여 자동화함
        • 개발과 운영의 간극을 줄여주는 활동
      • Continuous Delivery
        • 애플리케이션의 생명 주기 중 코드 프로모션에 대한 자동화 적용을 통해
        • 코드의 변경이 운영환경에 자주 반영될 수 있도록 푸쉬함으로써
        • 비지니스 변경에 기민하게 대응되도록 하는 활동
      • IT Scailng
        • PaaS를 이용해 공장에서 생산라인을 증설하는 것처럼 빠르고 효율적으로 확장할 수 있음
        • Application의 확장 - 비지니스에 기민한 대응을 위한 기능의 추가 및 개선
        • Application 운영을 위한 인프라의 확장 - 애플리케이션 운영의 안정성 및 퍼포먼스 향상을 위한 효율족 인프라 관리
        • Application 개발을 위한 작업자, 작업환경, 프로세스의 확장 - 개발자에게 프로젝트 별 개발 환경, Respository, 개발 절차 등의 쉬운 환경 설정, 개발 머신 배포
728x90
반응형