클라우드 컴퓨팅
- 인터넷을 통해 컴퓨팅과 가상화된 IT 서비스를 제공하여 유연하고 안전하면서 사용하기 쉬운 환경을 제공하는 것
- 여기서 IT 서비스는 DB, 서버, 소프트웨어, 네트워크, 분석 등을 포함
- 낮은 초기 투자 비용, 유지 보수 용이성, 그리고 확장성과 같은 이점 제공
- 사용자는 클라우드 컴퓨팅 모델에 따라 제공받는 정보 및 서비스 통제 수준을 선택할 수 있음
- ex) IaaS, CaaS, PaaS 등
- 이를 통틀어서 XaaS라고 칭함 (Anything as a Service)
- OPEX 비용은 증가하지만 CAPEX 비용을 줄일 수 있는 것이 특징
- OPEX (Operating Expense): 운영 비용
- CAPEX (Capital Expenditures): 투자 비용
대표적인 클라우드 컴퓨팅 소개
IaaS (Infrastructure as a Service)
- 공급업체는 서버, 스토리지, 네트워크와 같은 컴퓨팅 자원에 접근할 수 있는 인프라를 제공
- 이 모델에서 사용자는 인프라 유지와 애플리케이션 확장성에 대한 모든 것을 책임
- ex) AWS(EC2), Google Compute Engine, Kubernetes 등
PaaS (Platform as a Service)
- 사용자가 애플리케이션의 개발, 실행, 유지 관리에 집중할 수 있는 플랫폼과 환경을 제공
- 애플리케이션은 공급업체가 제공한 도구를 사용해서 생성할 수 있음
- 여기서 도구란 OS, DBMS, 호스팅, 네트워크 등
- 사용자는 물리 인프라에 투자할 필요가 없고 이들 도구를 관리하는 데 별도 시간을 할애할 필요 없이 온전히 애플리케이션 개발에 전념할 수 있음
- ex) AWS Elastic Beanstalk, Heroku, Google App Engine 등
주의: PaaS는 하부 애플리케이션 컨테이너를 알지 못해도 서비스를 배포할 수 있는 기능을 제공하여 편리하지만 각 클라우드 제공업체 플랫폼에는 그들의 PaaS 솔루션과 관련된 고유한 특성이 존재합니다.
CaaS (Container as a Service)
- IaaS와 PaaS의 중간 모델로, 컨테이너 기반 가상화의 한 형태
- 개발자가 서비스가 배포되는 가상 머신을 관리하는 IaaS 모델과 달리 CaaS를 사용하면 도커처럼 경량의 이식성 높은 가상 컨테이너 내 마이크로서비스를 클라우드 공급자 환경에 배포 가능
- 클라우드 공급자는 컨테이너가 실행될 수 있는 가상 서버와 컨테이너를 구축, 배포, 모니터링 및 확장할 수 있는 종합적인 도구를 운영
- ex) Amazon ECS, GKE
FaaS (Function as a Service)
- 서버리스 아키텍처 (서버 없이 특정 코드를 실행하는 것을 의미하지는 않음)
- 공급업체가 필요한 모든 서버를 제공하는 클라우드 환경에서 기능의 실행 방법을 의미
- 서버리스 아키텍처를 사용하면 확장, 프로비저닝 및 서버 관리를 걱정할 필요가 없어 서비스 개발에만 집중 가능
- 관리용 인프라를 다룰 필요 없이 기능의 업로드만 온전히 집중 가능
- ex) AWS Lambda, Google Cloud Function 등
주의: FaaS 기반 플랫폼의 경우 코드가 공급업체별 런타임 엔진에 배포되기 때문에 주의하지 않을 경우 코드가 클라우드 제공업체 플랫폼에 Lock-in 될 수 있음 (범용 프로그래밍 언어를 사용하더라도 함수가 공급업체의 API와 배포될 런타임 엔진에 종속될 확률이 있음)
SaaS (Software as a Service)
- 사용자는 특정 애플리케이션을 배포하거나 유지 관리할 필요 없이 사용 가능
- 애플리케이션, 데이터, OS, 가상화, 서버, 저장소, 네트워크 등 모든 것을 서비스 제공자가 관리
- 대부분 웹 브라우저로 제공되며 사용자는 단지 서비스를 도입하고 사용하기만 하면 됨
- ex) Salesforce의 SAP, Google Business 등
* 이외에도 CCaaS(Contact Center as a Service)와 같이 다양한 XaaS가 있지만 위 5가지가 기본이므로 이만 설명을 마치도록 하겠습니다.
출처
스프링 마이크로서비스 코딩 공작소 개정 2판 1장
IaaS vs. CaaS vs. PaaS vs. FaaS vs. SaaS — What’s the difference?
Understand the most prominent cloud service models IaaS vs. CaaS vs. PaaS vs. FaaS vs. SaaS IaaS, CaaS, PaaS, FaaS and SaaS are all
stample.com
'면접 준비' 카테고리의 다른 글
[Java] 체크 예외 vs 언체크 예외 (0) | 2023.04.03 |
---|---|
[Kafka] Kafka 개념 정리 (2) | 2021.08.31 |
타임리프 간단 정리 (Thymeleaf) (0) | 2021.06.26 |
도커 생명주기 (Docker Life Cycle) (0) | 2021.06.17 |
도커와 마이크로 서비스 아키텍처 개요 (Docker & MSA) (0) | 2021.06.16 |