ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [23년 2학기] 클라우드 컴퓨팅 중간 출석과제
    HM's Dairy/University 2023. 10. 28. 00:56

    문1] 클라우드 컴퓨팅 서비스 모델 3가지(IaaS/PaaS/SaaS) 각각을 설명 하시오.

     

    IaaS (Infrastructure as a Service)

     

      '기반 인프라를 서비스'로 제공하는 모델이다. 물리적인 하드웨어 대신 인프라 자원을 가상화하여 제공하는 서비스이다. 여기서 가상화라는 것은 실제로 존재하지 않지만 존재하는 것처럼 구현하는 기술을 의미한다. 사용자가 직접 가상 머신, 스토리지, 네트워크와 같은 자원을 관리하고 구성할 수 있다. 그렇기 때문에 서버나 스토리지, 그리고 네트워크 같은 자원을 동적으로 늘리거나 줄일 수 있다.

     

      그러나 관리가 편하고 비용 부담을 줄일 수 있으며 유연하다는 장점이 있지만 인프라 지식을 필요로 하고 관리의 책임이 오로지 사용자에게 있다는 단점이 있다.

     

      예시로는 Amazon Web Services (AWS)의 EC2 (Elastic Compute Cloud), Microsoft Azure의 Virtual Machines, 그리고 Google Cloud Platform(GCP)의 Compute Engine, Naver Cloud Platform(NCP)의 Server 등이 있다.

     

    PaaS (Platform as a Service)

     

      '플랫폼을 서비스'로 제공하는 모델이다. 개발, 테스트, 배포, 운영 등 소프트웨어를 개발하는 데에 필요한 플랫폼과 도구를 제공하는 서비스이다. IaaS 에서는 사용자가 직접 인프라를 구축했다면 PaaS는 그 위에 올리는 시스템을 사용자가 직접 관리하고 구성할 수 있도록 한다. 운영 체제, 하드웨어, 네트워크 같은 세부 사항을 걱정하지 않고 애플리케이션 개발에만 집중할 수 있도록 하는 것이 이 서비스의 목적이다.

     

      다양한 개발 언어, 프레임워크, 서비스를 지원하여 하나하나 인프라를 구성할 필요 없이 소프트웨어를 빠르게 배포하고 높은 확장성과 성능을 제공받을 수 있다는 장점이 있다. 그러나 아무래도 인프라를 직접 구성하지 않기 때문에 플랫폼에 종속되어 있을 수밖에 없다는 단점이 있다. 해당 플랫폼에서 제공하지 않는 버전이나 언어 및 프레임워크를 사용하려면 직접 구성하는 수밖에 없다.

     

      예시로는 Heroku, CloudType 등이 있다.

     

    SaaS (Software as a Service)

     

      '소프트웨어를 서비스'로 제공하는 모델이다. 사용자가 직접 웹 브라우저를 통해 애플리케이션에 액세스할 수 있게 제공해주는 서비스이다. 사용자가 개발에 참여할 필요가 없으며 서비스를 사용하기만 하면 된다. 즉, 여기에서의 사용자는 개발자가 사용자였던 IaaS 와 PaaS 와는 다르게 일반 사용자를 의미한다.

     

      사용이 쉽고 어디에서나 인터넷만 연결되어 있다면 접속이 가능하다는 장점이 있지만 반대로 인터넷이 연결되어 있지 않다면 접속할 수 없다는 단점이 있다. 또한, 어플리케이션에서 제공하는 기능밖에 사용할 수 없고, 해당 서비스업체에서 제 3자에게 사용자의 정보를 제공될 경우, 사용자의 개인 정보 보호에 대한 문제도 존재한다.

     

      예시로는 구글문서, 구글드라이브, 네이버 포털사이트 등이 있다.

     

     

    문2] 가상화 기술 3가지(호스트 가상화/하이퍼바이저 가상화/컨테이너 가상화) 각각 설명 하시오.

     

    호스트 가상화 (Hosted Virtualization)

     

      실제 운영체제를 설치하고 그 위에 가상화 소프트웨어를 설치하는 환경을 의미한다. 호스트OS는 하드웨어 위에서 직접 실행되고 가상화 소프트웨어는 호스트OS 위에서 게스트OS, 즉, 가상머신(VM)을 실행하게 해준다.

     

      이것은 VM 레벨로 격리를 시켜주며, 게스트OS를 실제 하드웨어처럼 인식해서 게스트OS끼리 서로 충돌을 하거나 오류가 생기는 등의 영향을 끼치지 않는다.

     

      설치를 하고 사용하는 방법이 간단하다는 장점이 있지만 게스트OS가 직접 하드웨어에 접근하는 것이 아니라 호스트OS를 통해서 하드웨어에 접근하는 것이기에 성능이 저하될 수 있다는 단점도 있다.

     

      예시로는 VMware Workstation, Oracle VirtualBox 가 있다.

     

    하이퍼바이저 가상화 (Hypervisor Virtualization)

     

      여러 개의 운영체제를 동시에 실행할 수 있게 해주는 소프트웨어로, 하드웨어 바로 위에 설치가 가능하다.

    하드웨어에 직접 접근하여 물리적 자원을 게스트 OS에 직접 할당해주기 때문에 호스트 가상화 방식보다 성능적인 장점을 가진다.

     

      이것은 베어메탈 하이퍼바이저라고 칭하기도 한다. 하이퍼바이저가 관리하는 메모리, CPU, 네트워크 I/O같은 리소스는 각 게스트 OS 간에 공유되지 않기 때문에 자신만의 독립적인 실행 환경을 가지게 되고 게스트OS들은 VM 레벨로 격리되어 서로에게 영향을 주지 못하게 된다. 일반적으로 상용화된 데스크탑이나 노트북보다는 서버용 컴퓨터에서 많이 사용된다.

     

      예시로는 VMWare ESXi, Microsoft Hyper-V, 그리고 Xen가 있다.

     

      그러나 하이퍼바이저에도 종류가 한 가지 더 있다. 앞서 말한 것은 Type1의 경우이고, Type2의 경우도 존재한다. 이것은 호스트OS 위에서 동작하고 호스트OS를 통해 게스트OS들을 관리하는데, 그렇기 때문에 Type1에 비해 성능이 조금 떨어질 수 있다. 주로 개발이나 테스트 환경에서 사용되지만 쉽게 설치할 수 있다는 장점이 있다. 호스트 가상화와 비슷한 구조를 이루고 있는데, 그 이유는 호스트 가상화 기술이 먼저 탄생했고 이후 Type2 하이퍼바이저 가상화 기술로 확장되었기 때문이다.

     

    컨테이너 가상화 (Container Virtualization)

     

      운영 체제가 아닌 애플리케이션과 해당 애플리케이션의 종속성만을 가상화하는 기술이다. 각각의 컨테이너는 독립된 실행 환경을 가지고 있지만 같은 운영체제 커널을 공유한다. 그래서 가볍고 빠르면서 하드웨어 자원을 효율적으로 사용할 수 있다.

    이것은 애플리케이션의 일관성을 유지하면서 빠른 배포와 확장성을 가진다. 다양한 환경에서 테스트가 용이하다는 특징 또한 가지고 있다.

     

      호스트OS의 커널을 공유하면서 애플리케이션 레벨로 격리가 된다. 컨테이너끼리 서로의 파일 시스템이나 프로세스, 네트워크 등이 완전히 격리된다. 그러므로 다른 컨테이너에게 영향을 주지 않도록 보장된다.

     

      예시로는 Docker, Kubernetes 등이 있다.

     

    정리

     

      가상화 기술은 결국 격리를 의미한다. 어떤 것을 격리하느냐에 따라 다르지만 결국 안정적으로 자원을 할당하고자 하는 목적은 같다.

     

     

    문3] 스토리지 다중화 기술중 RAID 0~6 방식을 비교 설명 하시오.

     

    RAID 0 (Striping)

     

      높은 I/O 성능을 제공한다. 데이터를 여러 디스크에 분산해서 저장하므로, 하나의 큰 용량으로 사용이 가능하다는 장점이 있다. 그러나 하드가 하나라도 고장 나게 되면 전체 데이터가 손실되기 때에 안정성이 아주 낮다. 중요한 데이터를 저장하기에는 적절하지 않다.

     

    RAID 1 (Mirroring)

     

      데이터 안정성이 높고 복구 또한 어렵지 않다. 하나의 하드가 고장이 나더라도 다른 하드에서 데이터를 가지고 올 수 있다. 하지만 이중화된 저장 공간이 필요하기에 비용 부담이 있고, 쓰기 성능이 낮은 편이다.

     

    RAID 2

     

      해밍 코드를 이용하여 에러 검출 및 복구가 가능하다. 그러나 구현이 복잡하고, 비트 단위로 나누어 여러 개의 디스크에 분산 저장하는 비트 레벨 스트라이핑을 적용하기에 상당한 하드가 필요하다. 이것 역시 비용 부담이 크다는 단점이 있다. 그래서 현재는 거의 사용되지 않는다.

     

    RAID 3

     

      바이트 레벨 스트라이핑을 사용하여 대용량 데이터 처리 시에 좋은 성능을 보인다. 그러나 패리티 정보를 위한 별도의 디스크가 필요하고 작은 크기의 I/O 에서는 성능 저하가 일어난다. RAID 시스템에서 데이터의 무결성을 확인하기 위해 패리티 계산이 일어나게 되는데 그 때, 오버헤드가 발생하게 되거나 패리트 정보가 저장된 하드가 작업 실패 시에 복구가 어려워진다.

     

    RAID 4

     

      데이터를 '블록'이라는 큰 단위로 나누어 여러 개의 디스크에 분산 저장하는 방식인 블록 레벨 스트라이핑을 사용하여 대용량 데이터 처리 시에 좋은 성능을 보인다. 그러나 패리티 정보를 위한 별도의 디스크가 필요한데, 이것으로 인해 쓰기 성능이 저하되고 병목 현상이 발생할 수 있다. 이 역시 패리티 정보가 저장된 하드가 작업에 실패한다면 전체 시스템의 성능에 영향을 준다.

     

    RAID 5 (Striping with Parity)

     

      읽기 속도가 매우 빠르고 하나의 디스크 오류까지 복구할 수 있다. 비용 부담이 적다. 그러나 쓰기 연산과 디스크를 재구축 할 때에는 성능 저하가 발생할 수 있다. 즉, 속도가 느려지게 된다. 또한, 2개 이상의 디스크가 고장이 나면 데이터를 복구할 수 없다.

     

    RAID 6 (Striping with Double Parity)

     

      동시에 최대 두 개의 디스크 오류까지 복구할 수 있다. 때문에 RAID5보다 높은 안정성을 제공한다. 그러나 쓰기 연산 및 디스크 재구축 시에 걸리는 시간으로 인해 오버헤드가 발생하여 성능 저하가 생길 수 있고, 추가적인 패리티 정보로 인한 저장 공간 손실 가능성 또한 존재한다.

     

Designed by Tistory.