네트워크

20. Cloud

YJH3968 2021. 7. 7. 15:37
728x90

1. Cloud

  • loud computing : 많은 사용자가 원하는 것을 아무 때나 얻을 수 있게 하는 computing으로 resource를 공유 가능한 방법으로 공급하는 기술적 접근을 의미한다.
  • cloud computing의 핵심은 hardware virtualization이라는 기술이다.
  • hardware virtualization : 호스트라 불리는 하나의 장치가 guest라 불리는 많은 가상 인스턴스를 실행한다.
    • 운영 체제는 하드웨어와 통신할 수 있어야 한다.
    • hardware virtualization 플랫폼은 hypervisor를 이용하는데, hypervisor는 가상 장치를 관리하고 실행하면서 guest에게 실제 하드웨어와 구별할 수 없는 가상 운영 플랫폼을 제공한다.
    • 즉, 이를 통해 하나의 컴퓨터는 많은 가상 인스턴스의 호스트로 작동한다.
    • 각 운영 체제는 개별 운영 체제를 실행하고, 하드웨어에서 실행 중인 운영 체제와 구별이 되지 않는다.
  • cloud는 이 개념에 한 발짝 더 나아가 많은 가상 guest의 호스트로 작동할 수 있는, 상호작용하는 장치들의 거대한 cluster를 만들어 인스턴스들 간의 자원을 공유할 수 있는 체계를 만들었다.
  • 이를 통해 서버를 직접 이용하는 대신 많은 서버를 가진 기업이 서버의 가상 인스턴스를 호스트해서 비용을 감면하고 여러 서비스를 동시에 제공해 줄 수 있다.
  • ex) 백업을 설정해주고, load balancer도 기업에서 해결해준다. 하드웨어가 고장난 경우에는 가상 인스턴스를 또 다른 장치로 옮기면 된다.
  • 위에서 이야기한 cloud는 public cloud로 기업에 의해 작동하는 많은 장치들을 의미한다.
  • 반면에 private cloud는 단일 대기업이 이용하고 자체적으로 호스팅한다.
  • hybrid cloud는 기업이 덜 민감한 서버를 public cloud에 위임하고 가장 민감한 독점 기술과 같은 것은 private cloud에 위임하는 경우를 의미한다.
  • 즉, cloud를 이용해 새로운 서버를 즉시 제공할 수 있고, 자체 서버를 구축하는 대신 기존에 있던 서비스를 활용할 수 있다.

2. X as a Service

  • cloud computing과 함께 자주 사용하는 용어이다.
  • IaaS(Infrastructure as a Service) : cloud를 묘사하는 가장 적절한 방법으로 자신만의 network나 server를 만들 필요없이 다른 누군가에게 비용을 지불해 그 service를 제공받기만 하면 된다.
  • PaaS(Platform as a Service) : service를 실행하기 위한 platform을 제공할 수 있는 cloud computing의 일부를 의미한다. 실행하고자 하는 어떤 software를 위해서라도 실행 엔진을 제공받을 수 있음을 의미한다. 
  • ex) 새로운 앱을 개발하는 웹 개발자는 복잡한 file system, 정교한 자원 등을 갖춘 server가 필요하지 않고 웹 앱을 실행할 수 있는 환경만을 원하는데, 이를 PaaS가 해결해준다.
  • 즉, IaaS는 물리적 인프라를 추상화하고 PaaS는 서버 인스턴스를 추상화한다.
  • SaaS(software as a service) : software를 core에서 호스트하고 관리하면서 다른 사람들에게 해당 software의 사용을 허가한다. 
  • ex) Google의 Gmail, Microsoft의 Office 365 Outlook
728x90