1. 클라우드 컴퓨팅의 정의 및 특징
- 클라우드 컴퓨팅이란 대량의 컴퓨팅 리소스를 가상으로 쪼개서 네트워크를 통해 사용자의 요구만큼 제공하는 기술이다.
- 클라우드 컴퓨팅의 특징
- 주문형 셀프 서비스(On-demand Self-service)
- 사용자가 서비스 제공자와 직접 소통하거나 승인을 기다릴 필요 없이 원하는 시점에 필요한 만큼의 컴퓨팅 자원(서버, 스토리지 등)을 즉시 사용할 수 있는 기능
- 자동화된 시스템을 통해서 주문만 하면 바로 자원을 할당 받는다.
- 광범위한 네트워크 접속(Broad Network Access)
- 인터넷이 연결된 곳이라면 어디서든 다양한 기기(스마트폰, 태블릿, 노트북, PC 등)를 통해 클라우드 서비스에 접속할 수 있다.
- 시간, 장소의 제약 없이 접근이 가능하다.
- 리소스 공유(Resource Pooling)
- 서비스 제공자가 가진 거대한 자원(CPU, 메모리, 스토리지 등)을 여러 사용자가 나누어 사용하는 방식
- 물리적인 자원은 하나지만 소프트웨어적으로 논리적으로 분리되어 있어 각 사용자는 자신만의 독립된 공간을 사용하는 것처럼 느낀다.
- 규모의 경제를 통해서 자원의 효율성을 극대화하고 비용을 낮출 수 있다.
- 신속한 확장성(Rapid Elasticity)
- 필요에 따라 자원을 순식간에 늘리거나 줄일 수 있는 유연함을 의미한다.
- 사용자의 애플리케이션에 갑자기 접속자가 몰리면 서버를 늘리고 사용량이 줄어들면 다시 줄여서 낭비를 막는다.
- 비즈니스 변화에 즉각적이고 탄력적인 대응이 가능하다.
- 측정 가능한 서비스(Measured Service)
- 클라우드 자원 사용량을 마치 전기나 수도 요금처럼 정밀하게 측정하여 사용한 만큼만 비용을 지불(Pay-as-you-go)하는 방식이다.
- 투명한 비용 관리가 가능하며 사용자와 제공자 모두 사용량을 모니터링하고 제어할 수 있다.
2. 서비스 모델 분류 (IaaS, PaaS, SaaS)
클라우드는 관리 범위와 사용자 역할에 따라 세 가지 모델로 구분된다.


-
IaaS (Infrastructure as a Service)
- 서버, 스토리지, 네트워크 같은 하드웨어 자원을 가상화된 서비스로 제공하여 빌려주는 모델이다.
- 사용자는 아무것도 없는 컴퓨터를 빌린 것과 같아서 그 위에 OS를 직접 깔고 필요한 소프트웨어를 모두 설치해야 한다.
- 즉, Hypervisor 기반 가상화를 통해서 하드웨어를 VM 형태로 빌려주는 클라우드 모델이다.

- 요즘은 기존의 OS 환경 전체를 가상화 해야만 했던 것과 달리 하나의 호스트 OS에서 여러 개의 OS가 돌아가는 것처럼 보이게 하는 컨테이너 수준의 가상화를 많이 사용한다.
- Hypervisor 기반 가상화 방법
- OS 환경 전체를 가상화하여 VM마다 독립적인 guest OS를 가진다.
- VM 간의 격리 수준이 높지만 그만큼 리소스 소비량이 많아서 무겁고 느리다.
- Container 기반 가상화 방법
- 컨테이너는 하나의 host OS를 공유하여 guest OS를 가상화 할 필요가 없다. → VM과 다르게 추상화 할 리소스가 적어 가볍고 빠르다.
- OS에서 애플리케이션 실행 환경만 분리하는 것으로 한 단계 추상화된 가상화 방법이다.
-
PaaS (Platform as a Service)
- 개발자가 앱을 배포, 관리할 수 있도록 프로그래밍 언어와 미들웨어가 포함된 개발 환경(플랫폼)을 제공하는 모델이다. → 개발자는 프로그램이 돌아가는 인프라에 대해서 고려하지 않아도 된다.
- 개발자는 서버가 어떻게 돌아가는지 신경 쓸 필요 없이 작성한 프로그램만 올리면 알아서 돌아간다.
- 운영체제 업데이트나 하드웨어 관리는 클라우드 업체가 알아서 하기 때문에 IaaS보다 더 높은 관리수준 모델이라고 생각하면 된다.


-
SaaS (Software as a Service)
- 인터넷을 통해 완성된 소프트웨어를 바로 사용할 수 있도록 제공하는 모델이다.
- PaaS가 개발 환경을 제공해주는 서비스였다면 SaaS는 하나의 애플리케이션을 제공하는 서비스
- 사용자는 설치나 업데이트, 관리에 전혀 관여하지 않고 그냥 서비스를 이용만 한다.


3. 배치 모델
클라우드를 어디에 구축하고 누구에게 제공할 것인가에 따라서 달라진다.
- Public Cloud: 서비스 업체가 구축한 인프라를 불특정 다수가 사용료를 내고 공유하는 방법이다. 비용 절감과 무제한에 가까운 확장성의 이유로 많이 선택한다.
- Private Cloud: 기업이 자체 데이터센터 내에 구축하여 단일 조직만 사용하는 방법이다. 높은 보안성이 필요할 때 이용한다.
- Hybrid Cloud: 온프레미스(or private cloud)와 public cloud를 결합하여 사용하는 방법이다. 중요 데이터는 직접 관리하고 필요할 때 공용 자원을 활용한다.
- Multi-Cloud: 여러 CSP(Cloud service provider)의 한가지 유형의 서비스를 이용하는 방식이다. 특정 업체에 종속되는 것을 방지하고 가격 경쟁력을 확보할 수 있다.
4. 클라우드 발전 과정
클라우드는 단순히 서버를 빌려주는 모델에서 시작하여 이제는 지능형 서비스를 동작하는 최첨단 디지털 환경으로 발전했다.