클라우드 컴퓨팅은 자원 재판매에서 시작되었다
최초의 컴퓨터 ( PC ) 는 Personal Computer 로 독립적인 장비였다. 허나, inter communication 이 요구되면서 Network 라는 개념이 등장하였다
- 처음에는 PC 와 PC 를 랜카드를 통해 직접 연결하는 방식을 사용하였다. 허나, 다수의 PC 가 있을시 이 방법은 랜카드가 여러개 필요하므로 물리적인 한계가 발생하였다
- 물리적인 한계를 극복하기 위해 Multi Access 를 위한 장비인 HUB -> Switch -> Router 들이 등장하였다. 이를 통해 다수의 PC 들을 연결할 수 있었다
- 다수의 PC 가 자료를 공유하기 위해서 Server / Client 개념이 장하였다. 이제 공유하기 위한 자료를 하나의 PC 에서 공유하는 것이 아닌, Server 에 자료를 두고, 다른 PC 들이 해당 Server 에 접속해서 필요한 자료를 공유 받는 방식을 사용할 수 있게 되었다
- 인터넷 ( 공중망 ) 이 등장하여, Server 의 자료를 인터넷에 공개할 자료를 공개하여 User 들과 자료를 공유할 수 있게 되었다. 이를 위해서는 안정적인 전원 공급과 공간, 관리 인원 , 공인 Ip 등을 필요로 하며, 이를 Server 를 가지고 있는 회사 내에서 관리를 했다
- 허나, 회사 내에서 Server 를 운영하는 것이 어려워지면서, Server 를 DataCenter 에 보관하여 관리를 위임하였다
DataCenter 입장에서는 점점 많은 Server 가 위임되면서 공간, 관리 인원 등의 문제가 대두되었다. 특히 공간 문제가 크게 다가왔다
- 때마침, 가상화의 개념이 도입되었다. 기존에 Unix 계열에서만 제공되던 가상화 기술이 x86 칩셋 ( 범용 CPU ) 에서 가상화가 가능해지면서, 공간 활용율이 증가하여 공간 문제를 해소할 수 있게 되었으며, 이를 통해 전원에 대한 비용도 감소하게 되었다
DataCenter 에서는 더 많은 사용자들을 위해 물리 자원의 부족이나 준비 시간에 대비하여, 미리 자원을 준비해둔다
- 허나, 이 준비된 자원을 모두 사용하는 것이 아니므로, 남는 자원이 존재하였으며, 사용하지 않는 자원에 대한 전원 낭비가 발생했다
- 이를 해결하기 위해, 남는 자원을 외부에 재판매하면서 클라우드 컴퓨팅이 시작되었다
- IaaS
- PaaS
- SaaS
- Application 을 24 시간 Online 유지가 가능
- 동작 중인 Server 의 Region 간 이동이 가능
- On-Demand 서비스 가 가능 ( 사용자가 Request 하는 즉시 최단 시간 내에 Service 를 제공 가능 )
- HyperVisor Type 1 : HyperVisor 가 물리 자원 바로 위에 배치되며, 이를 Bare Metal HyperVisor 라고 한다. Type 1 에는 KVM , VMware ESXI , XenServer , Hyper-V 등이 있다
- HyperVisor Type 2 : HyperVisor 가 Host OS 위에 배치되며, 이를 Host Based HyperVisor 라고 한다. Type 2 에는 VMware WorkStation , Virtual Box , VirtualPC 등이 있다
- 만약, local Disk 를 Disk 영역으로 사용하게 되면, 다른 Server 에 가상 머신 Migration 이 불가능하다. Migration 시 XML 파일을 옮기는데, 이 XML 파일에 정의된 Disk 영역이 옮겨진 Server 에는 존재하지 않기 때문이다. 이를 위해서는 local Disk 도 Storage Migration 을 해야 하는데, 이 과정은 효율적이지 않다
- Control
- Compute
- Network
- Storage
Control Node : 사용자 인증 / 인가 , 모니터링 을 하며, 사용자가 Request 한 작업 지시를 받아 이를 Compute Node 에 전달해준다. DataBase 도 Control Node 에 위치한다
Compute Node : Control 로부터 전달 받은 작업을 수행한다. HyperVisor 가 위치한다
Network Node : 가상 머신들이 배치되며, 외부 사용자들에게 연결된다. DHCP / NAT / 방화벽 등의 Service 를 제공해준다
Storage Node : Compute Node 의 HyperVisor 가 Request / 작업 지시 간 Disk Volume 공간을 제공해준다
클라우드 환경은 외부 사용자를 위한 Internet / 내부 사용자를 위한 Storage Subnet / 관리를 위한 Internal Api & Admin Subnet / 사용자 구분을 위한 Tenant Network 로 구성된다
- 클라우드는 Multi Tenancy / Multi Tenant 환경 이라고 한다. 이 Tenant 와 유사한 의미로 프로젝트가 있다
- Tenant Network 는 사용자 별로 작업 공간을 구분하기 위한 Network 이다
Storage Subnet 은 외부에 공개되면 안되기에 Internet 과 연결되있지 않으며, External Network Access 를 위한 Network Node 와 연결되있지 않다
Internal Api & Admin Subnet 를 통해 관리 및 서비스 제공을 한다. 내부 사용자들은 주로 Api 를 통해 요청한다