Cloud

클라우드 유형

한희수 2024. 10. 6. 01:02

클라우드는 크게 두 가지 관점으로 구분할 수 있다. 첫 번째는 자원(서버, 스토리지, 네트워크 등)이 어디에 위치하고, 클라우드 자원을 누가 사용할 수 있는지에 따른 배치 모델 유형이다. 두 번째는 클라우드를 통해 사용자에게 제공되는 서비스 수준이 단순히 하드웨어와 같은 인프라 자원을 사용하는 수준인지, 인프라 위에 설치되는 상위의 미들웨어 또는 소프트웨어 영역까지 포괄하는지에 따른 서비스 모델 유형이다.

유형별로 모델의 특징과 보안 수준이 다르기 때문에, 적합한 모델을 선택하고 시스템을 구축하기 위해서 클라우드 유형별 개념과 특성에 대해 알아보겠다.

1. 배치 모델에 따른 클라우드 유형

클라우드 환경은 크게 누구나 접근할 수 있으며 제약 없이 자원을 사용할 수 있는 환경과 허용된 사용자만 한정적으로 자원을 사용할 수 있는 환경으로 구분할 수 있다. 즉, 클라우드 제공자가 소유한 자원에 누구나, 언제, 어디서든 접속 가능한 개방된 형태의 퍼블릭 클라우드(Public Cloud) 모델과, 개별적이고 독립적인 기업 또는 단체가 소유하는 자원을 허용된 사용자만 언제든지 사용할 수 있는 프라이빗 클라우드(Private Cloud) 모델이 존재한다. 추가로 퍼블릭 클라우드와 프라이빗 클라우드를 결합하여, 상호 간의 클라우드에서 표준화된 인터페이스를 통해서 서비스를 제공하는 형태인 하이브리드 클라우드(Hybrid Cloud) 모델까지 더해, 총 3가지 배치 모델이 존재한다.

 

1) 퍼블릭 클라우드

퍼블릭 클라우드 유형은 전 세계에 있는 누구나 인터넷을 통해 접근해서 클라우드 서비스를 활용할 수 있다.

 

퍼블릭 클라우드 특징

  • 클라우드 제공자가 하드웨어나 소프트웨어 및 기타 IT 자원을 소유한 형태
  • 모든 사용자는 필요한 서비스를 언제나 이용할 수 있음
  • 전 세계적으로 개방된 자원을 사용하기 때문에, 보안 수준이 상대적으로 저하
  • 글로벌 비즈니스가 가능하도록, 전 세계 주요 지역에 자원 구축 및 활용 가능한 상태
  • 대표적 사례: AWS, MS Azure, GCP 등

 

2) 프라이빗 클라우드

프라이빗 클라우드 유형은 제한되고 허가된 그룹 내에서만 활용하는 클라우드 형태이다.

 

프라이빗 클라우드 특징

  • 기업 또는 공공기관 등이 자체 데이터센터 내에서 클라우드 컴퓨팅 환경을 구축
  • 온프레미스(On-premise)와 더불어 퍼블릭 클라우드의 중간 형태
  • 사용자를 한정할 수 있기 때문에 보안에 유리하며 회사의 보안정책 적용이 용이
  • 대표적 사례: G-Cloud(정부 클라우드)

 

3) 하이브리드 클라우드

하이브리드 클라우드 유형은 퍼블릭 클라우드와 프라이빗 클라우드를 결합한 형태이다.

높은 보안성이 요구되는 핵심 시스템은 프라이빗 클라우드에 배치하고, 상대적으로 낮은 보안성이 허용되는 비핵심 시스템은 퍼블릭 클라우드에 위치시키는 방식을 사례로 들 수 있다.

 

하이브리드 클라우드 특징

  • 퍼블릭 클라우드와 프라이빗 클라우드를 결합한 형태
  • 기업 또는 공공기관 등의 핵심 시스템은 프라이빗 클라우드에 두고, 비핵심적인 시스템은 퍼블릭 클라우드에 구축하여 이기종 클라우드를 동시에 활용하는 방식

 

앞서 살펴본 클라우드의 3가지 배치 모델 간의 관계는 다음과 같이 정리할 수 있다.

 

누구에게나 접근 가능한 개방성과 높은 활용 자유도가 특징인 퍼블릭 클라우드, 사설 기업이나 공공기관 등에서 클라우드를 구축하여 허용된 사용자만이 활용 가능하게 한 형태의 프라이빗 클라우드, 두 가지 형태의 클라우드를 통합하여 사용하는 하이브리드 클라우드까지

 

여기에 더해 다수의 퍼블릭 클라우드 기반으로, 클라우드 서비스 제공사의 특징에 중점을 두고 다각적으로 활용하는 멀티 클라우드(Multi Cloud) 형태 역시 증가하고 있다.


2. 서비스 모델에 따른 클라우드 유형

클라우드 환경에서는 서비스 모델을 크게 IaaS(Infrastructure as a Service), PaaS(Platform as a Service), SaaS(Software as a Service)의 3가지 서비스 유형으로 구분할 수 있다.

 

물리적인 하드웨어를 대체하는 가상의 하드웨어부터 미들웨어(Middleware, 운영체제와 애플리케이션 사이에서 데이터, 서비스, 인증, API 처리 등을 관리하는 프로그램), 소프트웨어, 애플리케이션 등, 상위 수준의 서비스 범위에서 어느 수준까지 사용자에게 서비스로 제공할 것인가에 따라 서비스 모델이 나누어진다.

 

IaaS는 인프라만 이용하는 서비스이다. 즉, 클라우드로 네트워크, 서버와 같은 자원을 이용해 스스로 미들웨어, 소프트웨어 등을 설치해서 이용한다.

PaaS는 클라우드의 미들웨어를 이용해 소프트웨어 개발 환경을 구성할 수 있게 한다. 개발자는 서버나 스토리지, 데이터 백업 등을 신경 쓰지 않고 소스코드를 작성할 수 있어 개발하는 데 집중할 수 있다.

SaaS는 클라우드에 구성된 소프트웨어를 이용하는 것이다. 사용자는 업무에 필요한 서비스를 찾아서 해당 소프트웨어를 필요한 만큼 이용하고 비용을 지불한다.

https://www.redhat.com/ko/topics/cloud-computing/iaas-vs-paas-vs-saas

 

위의 서비스 모델별 관리영역 그림을 참고하여 이해해 보자.

 

첫 번째로 IaaS는 인프라(서버, 네트워크, 스토리지 등)에 한해서만 지원받는 서비스 모델이다.

클라우드 사용자가 직접 네트워크를 구성하고 가상서버를 구성하며, 필요한 데이터베이스를 직접 설치하고 데이터를 관리한다. 또한, 모니터링 화면을 구성하여 가상서버의 사양을 늘려야 한다면, 직접 서버 사양을 늘려주는(Scale-up) 작업을 수행해야 한다.

IaaS는 단순히 하드웨어 영역인 가상서버, 네트워크, 스토리지 등만 준비해 주고, 그에 대한 설정과 구성은 클라우드의 사용자의 입맛에 맞게 구축하는 서비스이므로 인프라를 자유롭게 사용할 수 있다는 점에서는 유연성이 높다. 그리고 단순히 인프라만 제공받는 서비스이기 때문에 지불해야 할 비용이 저렴하다.

대표적인 사례로는 AWS의 EC2, EBS가 있다.

 

두 번째 서비스 모델인 PaaS는 IaaS 영역을 포함하고 그 위에 플랫폼(애플리케이션 또는 소프트웨어를 실행하기 위한 환경) 영역까지 제공되는 서비스이다.

인프라뿐 아니라 상위에서 수행되는 플랫폼 영역의 웹, 웹 애플리케이션 서버, 데이터베이스 등의 소프트웨어까지 제공한다. 플랫폼의 라이선스, 자원관리, 보안 이슈와 버전 업그레이드 등의 서비스를 제공하기 때문에 사용자는 서비스 외에 환경적인 부분이나, 관리적인 부분에 대해 고민하지 않아도 된다.

즉, 개발환경에 대한 구축을 고민할 필요 없이 빠르게 사용하고 쉽게 개발하여, 최종 목표인 애플리케이션과 시스템을 구축하는 데 PaaS 서비스를 활용하면 되는 것이다.

대표적인 사례로는 AWS의 RDS(Relational Database Service)가 있다.

 

마지막 서비스 모델인 SaaS는 최종 소프트웨어로 일반 사용자 수준의 서비스를 바로 활용하는 것이다.

사용자는 인프라와 플랫폼상에서의 개발을 수행할 필요 없이 최종 서비스를 이용하기만 하면 된다.

대표적인 사례로는 마이크로소프트 365가 있다.

 

즉, IaaS에서 PaaS, SaaS로 갈수록 클라우드 사용자가 관리해야 할 영역이 감소하고, 보안과 성능 측면에서 보다 완성된 형태의 서비스를 이용할 수 있다. 단지, 사용하는 시간 기준으로 지불해야 할 비용은 증가한다.

반대로, SaaS에서 PaaS, IaaS로 갈수록 클라우드 사용자가 관리해야 할 영역은 많아지나, 그만큼 사용자의 의도대로 설정하거나 구축할 수 있는 자유도는 높아지게 된다. 또한, 클라우드 제공업체의 관리 영역이 감소하는 만큼, 지불해야 할 비용은 감소한다.

 

추가적으로 FaaS(Function as a Service)라는 클라우드 서비스 모델도 있다.

FaaS는 서버리스 컴퓨팅(Serverless Computing)이라고도 불리며, 사용자가 서버 인프라를 직접 관리할 필요 없이 특정 기능(함수)을 작성하여 실행할 수 있는 서비스이다.

기존 클라우드 서비스 모델과 비교했을 때, 더 세밀하게 분할된 기능 단위로 동작하며, 특히 서버 관리 부담을 완전히 없애고 개발자가 비즈니스 로직에만 집중할 수 있게 해 준다.

대표적인 사례로는 AWS Lambda, Google Cloud Functions, Azure Functions 등이 있다.


3. 클라우드 장단점

클라우드 환경으로 시스템을 구축하여 운영하기 전에, 클라우드 서비스 활용에 존재하는 여러 영향을 고려해봐야 한다. 예를 들어, 기존 시스템 운영비용보다 클라우드 서비스의 비용이 합리적인지, 보안 수준은 신뢰할 수 있는지, 외부의 악의적인 공격을 방어할 수 있는지 등을 고민하는 과정이 필요하다. 다음으로는 클라우드의 장단점에 대해 알아보자.

 

장점

클라우드는 비용과 시간 투자 측면, 자원의 효율성 활용과 생산성 측면에서 강점이 있다.

 

클라우드 서비스의 정량적 특징은 크게 2가지가 존재한다.

  • 비용 절감 : IT 자원(하드웨어, 소프트웨어, 애플리케이션)을 다른 사용자들과 공유하고, 소유가 아니라 대여하여 사용하기 때문에 하드웨어/소프트웨어의 구매/유지 및 인건비, 유지보수 등의 비용이 절감
  • 완성형 서비스 활용으로 시간 절감 : 플랫폼과 애플리케이션 자체를 즉시 사용 가능하므로, 자유롭고 빠른 개발환경과 비즈니스 트렌드의 변화 속도에 맞춰 신속하게 대응 가능

 

클라우드 서비스의 정성적 특징은 크게 2가지가 존재한다.

  • 생산성 향상 : 인터넷만 되면 언제, 어디서나 스마트폰 등의 다양한 단말기를 통해 업무가 가능하므로 생산성 향상과 스마트 워크(Smart Work) 실현
  • 자원의 유연성 : IT 자원의 수요 변화에 신속하고 탄력적으로 대응할 수 있어 필요한 만큼 IT 자원을 활용하는 것이 가능

 

단점

클라우드에는 가상화를 활용하여 보안 측면에서 주의해야 할 부분과 클라우드 서비스 제공자가 책임지는 영역에 대한 블랙박스 문제가 존재한다.

  • 가상화 인프라 취약성 : 가상화 기술을 통해 클라우드 사용자들의 개별 가상서버들이 상호 연결되어 다양한 공격 경로가 발생할 수 있으며, 가상서버와 하이퍼바이저로의 해킹 시도, DDoS 공격, 악성코드 전파 등이 상대적으로 쉬움
  • 자원 공유로 인한 취약성 : 동일 호스트상에 타인의 정보가 혼재되어 비인가자의 정보 접근 가능성이 큼
  • 자원 집중화로 인한 취약성 : 예기치 않게 클라우드의 특정 지역에서 장애가 발생하면, 이용자 서비스 연쇄 중단과 대규모 피해 발생 가능
  • 장애 발생에 대한 블랙박스 문제 : 클라우드 환경 자체에 장애나 이슈가 발생한 경우에는 클라우드 사용자가 직접적으로 문제를 해결하거나 조치할 수 없고 클라우드 제공업체의 피드백을 기다리는 수동적인 입장이 됨