클라우드 컴퓨팅이란 ? - IaaS, PaaS, SaaS

클라우드 컴퓨팅 개요

Posted by Juri on February 6, 2022

이 포스팅은 부산디지털대학교의 클라우드 인프라 구축 및 활용 강의를 보고 작성했습니다.

컴퓨터 환경의 구성요소

클라우드 컴퓨팅에 대해 얘기하기 전에 컴퓨터 환경의 구성요소를 짚고 넘어가도록 한다.

  1. 소프트웨어(Software)
  • Linux, Windows 와 같은 운영체제, 웹 서버, 콘텐츠 관리 시스템 등의 시스템 소프트웨어
  • ppt(파워포인트)와 같은 사용자가 직접 사용하는 응용 소프트웨어
  1. 하드웨어(HardWare)
  • 서버, 개인용 컴퓨터, 라우터, 카메라, 기타장비 등
  • 데이터센터, 데이터센터를 보관하고 냉각하고 동력을 공급하는 시설 등
  1. 네트워킹(Networking)
  • 상호 연결된 네트워크 구성 요소는 네트워크 운영, 관리, 내부 및 외부 시스템간의 커뮤니케이션을 지원
  • 네트워크는 인터넷 연결, 방화벽 및 보안을 비롯해 라우터, 스위치, 케이블 같은 하드웨어로 구성

컴퓨터로 어떤 서비스를 개발하고자 할 땐 적절한 컴퓨터 환경을 갖추고 있어야 한다. 컴퓨터 환경의 구성요소 중에 데이터 센터에 집중해보자.

데이터센터

데이터센터는 애플리케이션 서버, 데이터베이스 서버, 웹 서버 등의 다양한 서버군을 저장하고 네트워크나 전원장치 등의 인프라를 저장하는 장소다. 컴퓨터를 활용한 서비스 개발에 있어서 필수인 데이터 센터를 보유하기 위해서는 시스템의 많고 작음에 상관없이 일정 비용(건설 비용 등)이 필요하고 유지 관리 비용(인건비 등)이 든다. 또한, 데이터센터의 규모를 시스템 부하가 최고 걸리는 시점에 맞게 서버를 도입해야 하게 때문에 낭비가 발생한다.

예를 들어, 대학교의 수강신청시스템은 평소에 사용자가 거의 없다가 수강신청 기간에 트래픽이 몰린다. 자원이 최고로 필요한 규모에 맞춰 서버를 도입해야 하기 때문에 수강신청 기간의 사용자 수를 기준으로 서버를 도입하면 수강신청 이외의 기간엔 자원이 활용되지 않아 낭비가 발생하는 것이다.

이는 클라우딩 컴퓨터를 개발하게 되는 중요한 요소 중 하나로 작용한다.

Cloud service 유형

  1. 온 프레미스(on-premises)
  • 자체적으로 데이터 센터를 보유해 시스템 구축에서 운용까지 직접 수행하는 형태.
  • 하드웨어, 데이터 및 소프트웨어에 대한 소유권과 제어가 가능하지만 초기자본 비용과 유지관리 비용이 많이 드는 단점이 있다. 서비스의 트래픽이 급증했을 때 서버를 확장하기 위해서 하드웨어를 구매하고 소프트웨어를 설치해야 하므로 배포 시간이 오래 걸린다.
  • 기존의 온 프레미스 환경에서 서비스를 개발하던 기업들이 클라우드 환경으로 옮겨가는 추세를 보이고 있다.
  1. 퍼블릭 클라우드(public cloud)
  • 인터넷을 통해 다수의 사용자에게 제공되는 클라우드 서비스.
  • AWS, Microsoft Azure, 네이버클라우드 등 클라우드 제공자가 데이터 센터와 인프라를 보유한다.
  • 사용자는 빌려 쓰는 개념으로 원하는 옵션을 선택하고 사용한만큼 비용을 지불한며 건설 등의 기본 비용 및 소프트웨어 또는 하드웨어 유지관리에 투자할 필요가 없다.
  • 배포를 빠르게 할 수 있다.
  1. 프라이빗 클라우드(private cloud)
  • 특정 그룹에만 제공되는 클라우드 서비스
  • 그룹 내에 소속된 기업이 여러 개인 경우 데이터 센터를 공동으로 보유하고 운영한다.
  • 온 프레미스와 퍼블릭 클라우드 시스템의 중간 형태.

Cloud computing

클라우드 컴퓨팅은 자신의 컴퓨터를 사용하는 것이 아니라 인터넷을 통해 가상화 된 컴퓨터시스템 리소스를 요구하는 즉시 제공(on-demand)받아 사용하는 것이다.

클라우드 서비스 체계

  1. IaaS
  • 서버, 스토리지 등의 하드웨어 자원을 제공하는 서비스
  • Amazon EC2, S3, Glacier 등
  1. PaaS
  • 소프트웨어 개발에 필요한 플랫폼을 제공하는 서비스
  • Linux, Apache, MySQL 등
  1. SaaS
  • 다양한 소프트웨어를 제공하는 서비스
  • Dropbox, Google Docs 등

사용자는 서버에 관한 지식이 없어도 클라우드 서비스에서 제공하는 SaaS를 사용해 얼마든지 서비스를 개발할 수 있다. 애플리케이션은 직접 개발하겠다고 하는 사용자라면 Paas 혹은 Iaas를 선택할 수도 있다.

클라우드 서비스의 장점

  1. 자원 활용성 증가
  • 사용한 만큼만 비용을 지불하는 종량제방식으로 사용률을 최적화 할 수 있다.
  1. 운영 효율성
  • 개인 기기에 소프트웨어를 설치하지 않고 어디에서든 서비스를 이용할 수 있어 사용자의 생산성을 향상시킬 수 있다.
  1. 비용 효율성
  • 필요한 만큼 사용하고 사용한 만큼만 지불해 비용을 효율적으로 사용할 수 있다.

클라우드 서비스의 단점

  1. 매우 높은 가용성이 요구되는 경우
  • 수강신청 시스템과 반대로 지속적으로 자원을 사용해야 하는 경우엔 클라우드 서비스보단 자체 시스템을 구축하는 게 효율적일 수도 있다.
  1. 저장 위치가 정해져있는 데이터를 사용하는 경우
  • 규제 등으로 데이터를 외부에 저장할 수 없을 땐 클라우드 사용이 불가능하다.
  1. 범용적이지 않은 시스템을 사용하는 경우
  • 수요가 없거나 특정 그룹만 사용하는 서비스는 클라우드 서비스에서 제공하지 않을 확률이 높다.
  1. 장기간 다수의 사용자가 사용하여 전체 비용이 높아지는 경우
  • 오랜 기간 사용하면 자체 시스템을 구축했을 때의 비용보다 클라우드 서비스의 비용이 더 높아질 수 있다.

자신이 개발하는 서비스에 클라우드 서비스를 도입했을 때 과연 효율적일까? 를 꼼꼼하게 따져보고 도입한다면 어떤 것을 도입해야할까?를 고민해보는 것이 좋겠다.