IDC(Internet Data Center)에서 직접 물리적인 컴퓨터를 세팅해야 했다.
Cloud는 인터넷을 통해 컴퓨터의 리소스(메모리, 저장장치, CPU, etc...)를 사용하는 것으로 이를 통해 공간의 제약이 사라졌다.
Multi-tenant Model
- 하나의 인스턴스가 한 대의 서버 위에서 동작하면서 여러 개의 tenant를 서비스
- 여기서 tenant는 소프트웨어 인스턴스에 대해 공통이 되는 특정 접근 권한을 공유하는 사용자들의 그룹을 뜻한다.
- Software as a Service(SaaS)
- 소프트웨어처럼 바로 사용할 수 있음
- ex) 네이버 클라우드, 구글 클라우드, MS 오피스 365
- 설치 등이 필요없이 인터넷을 통해 접속만 하는 것으로 서비스를 제공할 수 있음
- Function as a Service(FaaS)
- 함수 단위 등으로 실행
- ex) Lambda
- Platform as a Service(PaaS)
- 서비스 로서의 플랫폼
- 개발을 위한 플랫폼을 구축할 필요없이 필요한 개발 요소를 웹에서 손쉽게 빌려서 사용 가능
- 즉, 개발자는 서비스 외적인 부분에 신경 쓰지 않고 집중 가능
- 응용 프로그램을 작성하고 실행할 수 있는 환경을 제공
- ex) Google App Engine, Heroku
- Infrastructure as a Service(IaaS)
- 사용할 수 있는 인프라를 제공하는 것
- 사용자가 다룰 수 있는 부분이 제일 많은 서비스
- 사용자가 서버 OS부터 런타임, 데이터와 어플리케이션까지 직접 구성 및 관리할 수 있다.
- Everything as a Service(EaaS)
위 Cloud 특징을 할 수 있게 해주는 특성으로 가상화란 하드웨어에 종속된 컴퓨터 리소스를 추상화하여 물리적 장치가 아닌 소프트웨어로 리소스를 사용가능하게 해주는 것이다.
이를 이용하면 리소스를 탄력적으로 설정할 수 있고, 이중화 등에 유리하다.
보통 한대의 서버는 하나의 개별 태스크를 실행하는 것이 더 쉽고 안정적인경우가 많지만, 가상화를 사용해서 한대의 서버를 마치 2개의 태스크를 하는 2개의 고유한 서버로 분할할 수 있다. 이렇게 되면 남는 서버가 생기고 이를 더 효율적으로 사용할 수 있게 된다. Cloud는 이러한 가상화 기술을 이용해서 한 대의 서버의 효율을 최대한 끌어올려 여러명의 사용자가 이용할 수 있도록 서비스를 제공한다.