클라우드 컴퓨팅
- 인터넷을 통해 컴퓨팅과 가상화된 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장
반응형
'면접 준비' 카테고리의 다른 글
[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 |