![](https://seokwoo.kim/wp-content/uploads/2022/01/cloud-abstraction.png)
IaaS 부터 SaaS 까지 클라우드 서비스 비교
![](https://www.seokwoo.kim/wp-content/uploads/2022/01/cloud-abstraction-1024x559.png)
IaaS, CaaS, PaaS, FaaS 및 SaaS는 모두 다른 범주의 클라우드 컴퓨팅 서비스입니다.
클라우드 컴퓨팅 서비스는 네트워킹, 스토리지, HVAC(heating, ventilation, & air conditioning), 가상화, 런타임, 컨테이너 기술 등의 관리를 오프로드/아웃소싱 하는 데 도움이 됩니다. 따라서 상대적으로 OPEX (Operating Expenditure) 비용은 증가하나 CAPEX (Capital expenditures) 비용을 상당히 줄일 수 있습니다. 이를 통해 민첩성, 개발자 속도를 높이고 출시 시간을 개선하면서 장기적으로 IT 비용을 절감할 수 있습니다.
다음 섹션에서는 각각의 사용 사례, 예제 및 지불 구조를 제공하면서 다양한 범주를 살펴볼 것입니다.
IaaS — IaaS (Infrastructure-as-a-Service)
IaaS를보고 설명하는 방법에는 여러 가지가 있습니다. 여기서 우리는 가장 눈에 띄는 두 가지 인 비즈니스 모델과 온라인 서비스를 살펴볼 것입니다.
비즈니스 모델로서
IaaS는 기존의 컴퓨터 인프라 구매 (“내 서버가 내 지하실에 있습니다.”) 와는 달리 필요할 때 (주문형) 대여가 가능한 비즈니스 모델입니다. IaaS 공급자는 네트워킹, 스토리지, 서버 및 가상화를 처리하는 반면 고객은 실제 애플리케이션, 데이터, 런타임, 컨테이너 기술 (필요한 경우) 및 운영 체제를 담당합니다.
이 접근 방식을 사용하는 가장 중요한 기능은 다음과 같습니다.
- 최대 부하를 수용할수 있습니다.
- 문제없이 갑작스러운 성능, 용량 확장이 가능합니다 (확장 성).
- 사용하지 않은 용량은 즉시 다시 해제하고 사용할 수 있습니다.
- 거의 실행되지 않는 애플리케이션을 위해 추가 인프라를 유지할 필요가 없습니다.
- 필요한 가상화 기술을 통해 다양한 플랫폼에서 간단한 소프트웨어 테스트가 가능합니다.
또한 IaaS를 특정 클라우드 오케스트레이션 기술 을 사용 하여 가상 머신 생성, Hypervisor 선택, 스토리지 볼륨 할당, 청구 목적으로 사용 정보 제공 등 을 사용하는 온라인 서비스로 볼 수 있습니다.
대부분의 퍼블릭 클라우드에서 사용하는 클라우드 오케스트레이션 기술은 독점적이지만 네이티브 클라우드에서도 사용할 수 있는 여러 오픈 소스 솔루션 (OpenStack, Apache CloudStack 등)입니다.
여기서는 VM이 관리 형 서비스로 사용할 수 있는 유일한 인프라가 아니라는 점에 유의해야합니다. 원시 블록 스토리지, 파일 또는 개체 스토리지, 방화벽, Load Balancer, IP 주소, VLAN (가상 근거리 통신망) 등과 같은 다른 리소스도 사용할 수 있습니다 .
주요 사용 사례 — 단일 테넌시, 기밀 컴퓨팅, 더 많은 구성 가능성 필요 (특정 커널 등)
예 — EC2, S3, Google Compute Engine, GCP 글로벌/지역 Load Balancer, Azure Load Balancer, Azure VM, Azure Storage 등
지불 구조 — 대부분의 클라우드는 초당 지불 옵션을 제공합니다. 또한 1 년 또는 3 년 동안 VM 인스턴스를 예약하려는 경우 할인이 제공됩니다. 소위 스팟 / 선점 형 인스턴스 를 사용하여 비용을 절감 할 수도 있습니다 . 이러한 인스턴스는 IaaS 공급 업체가 언제든지 워크로드를 인터럽트 가능한 워크로드에 대해 매우 할인된 가격으로 사용할 수 있습니다.
컨테이너 란?
컨테이너는 Hypervisor의 대안이며 Unix 세계의 여러 개념 (제어 그룹, Union 파일 시스템, 네임 스페이스 및 프로세스 )을 사용 하여 애플리케이션을 안전하게 실행합니다. 컨테이너는 물리적 하드웨어에서 직접 실행되는 단일 Linux 커널의 격리된 파티션에서 실행됩니다. Linux cgroup (제어 그룹) 및 네임 스페이스는 컨테이너를 격리, 보호 및 관리하는 데 사용되는 기본 Linux 커널 기술입니다. 컨테이너화는 Hypervisor 오버 헤드가 없기 때문에 가상화/Hypervisor보다 높은 성능을 제공합니다. 또한 컨테이너 용량은 컴퓨팅 부하에 따라 동적으로 자동 확장되므로 오버 프로비저닝 문제를 제거하고 사용량 기반 청구가 가능합니다.
CaaS 란 무엇입니까?
CaaS를 사용하면 사용자가 단일 컨테이너 배포 를 실행하는 간단한 방법, 특히 간단한 마이크로 서비스를 실행하기위한 간단한 방법을 제공하거나 보다 복잡한 다중 컨테이너 배포 를 실행하기 위해 Kubernetes와 같은 관리 형 컨테이너 오케스트레이션 플랫폼 을 제공하는 특정 제품을 제공하여 컨테이너화 된 애플리케이션을 배포하고 관리 할 수 있습니다. 컨테이너 오케스트레이션 플랫폼은 서비스 검색, 컨테이너 스케줄링, 컨테이너 네트워킹, 모니터링 등과 같은 서비스를 제공합니다. 두 경우 모두 컨테이너 런타임 및 기타 컨테이너 관련 서비스는 CaaS 공급자가 제공합니다.
주요 사용 사례 — 컨테이너화 된 애플리케이션
예 — Elastic Kubernetes Service, Google Kubernetes Engine, Azure Kubernetes Service, Azure Container Instance, Cloud Run, AWS Fargate, ECS 등
결제 구조 — 컨테이너 오케스트레이션 기능 (Elastic Kubernetes Service, Google Kubernetes Engine 등)을 제공하는 제품은 일반적으로 컨테이너 클러스터 구축에 사용되는 리소스 (예: VM, Load Balancer, 블록 스토리지 등)에 대해 요금을 부과합니다. 일부는 클러스터 관리 비용도 청구하지만 예를 들어 Google Kubernetes Engine 은 클러스터 당 시간당 $ 0.10/ 시간을 청구 합니다. 반면 오케스트레이션 기능을 제공하지 않는 제품은 일반적으로 사용되는 메모리 및 vCPU에 대해 요금을 부과합니다.
PaaS — Platform-as-a-Service
PaaS를 사용하면 PaaS 공급자가 지원하는 특정 프로그래밍 언어, 라이브러리, 프레임 워크 등을 사용하여 애플리케이션이나 서비스를 작성할 수 있습니다. PaaS 공급 업체는 네트워크, 서버, 운영 체제, 스토리지, 언어 런타임, 라이브러리, 프레임 워크 등을 관리하므로 애플리케이션 의 비즈니스 로직 에 집중할 수 있습니다.
이러한 플랫폼의 대부분에는 다음과 같은 기능이 있습니다.
- 자동 확장 — 사용자가 구성한 최대 인스턴스 수로 애플리케이션 인스턴스를 확장하거나 서비스 요청이 없는 경우 애플리케이션을 0으로 확장할 수도 있습니다.
- 다양한 기타 PaaS, SaaS (Software-as-a-Service) 및 DBaaS (Database-as-a-Service)에 대한 연결.
- DevOps 서비스와의 내장 통합.
예 — Azure App Service, Google App Engine, Elastic Beanstalk
지불 구조 — 대부분의 PaaS 공급 업체에는 특정 인스턴스 유형이 있으며 이러한 각 인스턴스 유형은 시간당 청구됩니다. 또한 무료 할당량의 가능성도 있습니다.
FaaS — (Function-as-a-Service)
PaaS와 매우 유사한 FaaS를 사용하면 주로 비즈니스 로직에 집중할 수 있지만 사용 사례는 다소 다릅니다. FaaS를 사용하면 지원되는 프로그래밍 언어/프레임 워크 중 하나 에서 함수 를 작성할 수 있으며 이러한 함수는 특정 이벤트가 시작되거나 HTTP 호출이 발생할 때 호출 됩니다. FaaS 애플리케이션의 중요한 기능은 다음과 같습니다.
- 고객 은 기능에서 비즈니스 로직 만 구현합니다.
- FaaS로 구현된 애플리케이션은 상태 비 저장 방식입니다.
- 용량 계획, 병렬화 및 확장성에 대해 걱정할 필요가 없습니다. FaaS 공급 업체가 처리합니다.
- 이벤트 기반 및 사후 대응: FaaS를 사용하면 실행중인 서버 프로세스가 없습니다. 대신 HTTP 호출과 같이 트리거 이벤트가 트리거되는 즉시 함수 호출이 있습니다.
- 지속성을 위해 외부 데이터베이스 서버 또는 네트워크 파일 시스템을 사용해야합니다 (응용 프로그램의 상태 비 저장 특성 때문에!).
- FaaS는 상태 비 저장 기능을 수평 적으로 확장할 수 있기 때문에 간단한 확장 성을 가능 하게 합니다.
- 함수 호출 (함수에 할당 된 메모리 및 vCPU) 당 비용을 지불하므로 함수가 호출되지 않으면 비용이 청구되지 않습니다.
- FaaS 제품은 서로 다른
예 — Azure Functions, Cloud Functions, AWS Lambda
결제 구조 — FaaS 제품은 대부분 사용된 메모리 양 (대부분 GB로 계산) 및 vCPU에 따라 요금이 부과됩니다. 입도 구름 요금이 다른 것을 생각 – AWS의 요금 1 MS 당, Google 클라우드 요금이 100 밀리 당 반면 하늘빛의 요금 초당 . 또한 AWS는 성능 을 더 잘 제어 할 수 있도록 프로비저닝 된 동시성을 제공합니다.
일부 클라우드는 또한 무료 호출 제한을 초과한 후 함수 호출에 대해 요금을 부과합니다. 예를 들어 GCP는 무료 호출 한도 2 백만 개 이후에 호출 백만 건당 0.40 USD를 청구하는 반면, Azure는 무료 호출 한도 100 만 회 이후에 실행 백만 건당 0.20 USD를 청구합니다.
SaaS — SaaS (Software-as-a-Service)
SaaS는 더 이상 사용자 에게 소프트웨어를 판매하지 않고 단순히 서비스로 제공 하는 비즈니스 모델 입니다. 소프트웨어 라이선스 및 제공 모델로서 구독 기반으로 소프트웨어 라이선스가 부여되고 SaaS 공급 업체가 중앙에서 호스팅합니다. 대부분의 SaaS 솔루션은 다중 테넌트 아키텍처를 기반으로 합니다. 이 모델에서는 단일 구성 (하드웨어, 네트워크, 운영 체제)의 단일 버전의 애플리케이션이 모든 고객 (“테넌트”)에 사용됩니다.
SaaS는 하드웨어 및 소프트웨어 유지 관리 및 지원 을 SaaS 공급자에게 아웃소싱 하여 IT 운영 비용 을 줄일 수 있는 잠재력을 기업에 제공합니다. SaaS 애플리케이션은 종종 기존 소프트웨어보다 더 자주 업데이트되며, 대부분의 경우 매주 또는 매월 업데이트됩니다. 이는 여러 요인에 의해 가능해집니다.
- 애플리케이션은 중앙에서 호스팅 되므로 업데이트는 고객이 아닌 공급자가 결정하고 실행합니다.
- 애플리케이션에는 단일 구성 만 있으므로 개발 테스트가 더 빨라집니다.
- 응용 프로그램 공급 업체는 단일 버전 만 있기 때문에 소프트웨어의 이전 버전을 업데이트하고 유지 관리하는 데 리소스를 소비할 필요가 없습니다.
- 애플리케이션 공급 업체는 모든 고객 데이터에 액세스하여 설계 및 회귀 테스트를 신속하게 진행합니다.
- 솔루션 제공 업체는 애플리케이션 내에서 사용자 행동에 액세스 할 수 있으므로 (일반적으로 웹 분석을 통해) 개선할 가치가 있는 영역을 쉽게 식별할 수 있습니다.
지불 구조 — SaaS 애플리케이션의 가격 모델은 일반적으로 월별 또는 연간 고정 요금/사용자 단위 과금으로 사용자가 언제든지 추가 또는 제거되면 가격을 확장하고 조정할 수 있습니다