클라우드 서비스란 타사 제공업체가 호스팅하여 인터넷을 통해 사용자에게 제공하는 인프라, 플랫폼 또는 소프트웨어를 말합니다.
클라우드 서비스는 프론트엔드 클라이언트(예: 사용자의 서버, 태블릿, 데스크톱, 노트북 등 사용자의 모든 하드웨어)의 사용자 데이터 흐름을 원활하게 해줍니다. 사용자가 클라우드 서비스에 액세스하려면 컴퓨터, 운영 체제 및 인터넷 연결 또는 가상 프라이빗 네트워크(VPN)만 있으면 됩니다.
추가로 소프트웨어를 다운로드하지 않고도 인터넷을 통해 사용자가 액세스하는 모든 인프라, 플랫폼, 소프트웨어 또는 기술은 클라우드 컴퓨팅 서비스라고 볼 수 있으며 다음의 서비스형(as-a-Service) 솔루션이 포함됩니다.
서비스로서의 인프라(Infrastructure-as-a-Service, IaaS)는 사용자에게 컴퓨팅, 네트워킹 및 스토리지 리소스를 제공합니다.
서비스로서의 플랫폼(Platforms-as-a-Service, PaaS)은 애플리케이션을 실행할 수 있는 플랫폼과 플랫폼 실행에 필요한 IT 인프라를 제공합니다.
서비스로서의 소프트웨어(Software-as-a-Service, SaaS)는 클라우드 애플리케이션과 해당 애플리케이션을 실행하는 플랫폼, 플랫폼의 기반 인프라를 제공합니다.
서비스로서의 기능(Function-as-a-Service, FaaS)은 이벤트 기반 실행 모델로서, 개발자가 인프라를 유지관리하지 않고도 애플리케이션 패키지를 기능으로 구축, 실행 및 관리할 수 있도록 지원합니다.
사용자에 따라 클라우드는 클라우드 서비스로 생각될 수도 있습니다. 클라우드는 네트워크 전체에서 확장 가능한 리소스를 추상화, 풀링 및 공유하는 IT 환경입니다. 클라우드는 클라우드 환경 내에서 워크로드를 실행하는 동작인 클라우드 컴퓨팅을 지원합니다. 클라우드는 일종의 PaaS인 셈인데, 사용자가 아닌 사람이 웹 기반 플랫폼이 제공되는 기반 인프라를 공급하기 때문입니다.
프라이빗 클라우드는 대략적으로 정의하자면 최종 사용자 전용 클라우드 환경으로, 대개는 사용자의 방화벽 내에 있으며 가끔 온프레미스에 있기도 합니다.
퍼블릭 클라우드는 최종 사용자가 소유하지 않은 리소스에서 생성되어 다른 테넌트에 재배포될 수 있는 클라우드 환경입니다.
하이브리드 클라우드는 어느 정도의 워크로드 이식성, 오케스트레이션 및 관리 기능을 갖춘 멀티플 클라우드 환경입니다.
멀티클라우드는 네트워크 연결에 상관없이 2개 이상의 클라우드(퍼블릭 또는 프라이빗)를 포함한 IT 시스템입니다.
다른 모든 IT 솔루션과 마찬가지로 클라우드 서비스는 하드웨어 및 소프트웨어를 기반으로 합니다. 그러나 전통적인 하드웨어 및 소프트웨어 솔루션과는 달리, 컴퓨터, 네트워크 연결, 클라우드 서비스에 액세스하기 위한 운영 체제 등만 있으면 클라우드 서비스를 사용할 수 있습니다.
사용자에게 클라우드 인프라를 제공하는 경우, 클라우드 서비스 제공업체는 하드웨어 구성 요소에서 다음과 같이 컴퓨팅 기능을 분리합니다.
중앙 처리 장치(Central Processing Unit, CPU)에서 처리 기능 분리
RAM(Random Access Memory) 칩에서 활성 메모리 분리
그래픽 처리 장치(Graphics Processing Unit, GPU)에서 그래픽 처리 분리
데이터센터 또는 하드 드라이브에서 데이터 스토리지 가용성 분리
이 같은 추상화는 보통 가상화 및 가상 머신을 통해 실현됩니다. 일단 분리되면 스토리지, 컴퓨팅 및 네트워킹 구성 요소가 인터넷을 통해 사용자에게 인프라 또는 IaaS로 제공됩니다. 이런 종류의 클라우드 서비스는 사물 인터넷(IoT)의 일부로서 빅데이터를 저장하는 클라우드 스토리지의 등장으로 이어졌습니다. RackSpace는 IaaS 제공업체의 예입니다.
클라우드 서비스 제공업체는 또한 하드웨어 리소스를 사용해 클라우드 플랫폼을 구축할 수 있는데, 이런 플랫폼은 사용자가 코드를 개발하거나 애플리케이션을 실행할 수 있는 온라인 환경입니다. 클라우드 플랫폼을 구축하려면 클라우드 인프라를 제공할 때와 같이, 단순히 하드웨어 구성 요소에서 컴퓨터의 기능을 추상화하는 것 이상의 작업이 필요합니다. 클라우드 플랫폼을 제공하려면 컨테이너화, 오케스트레이션, 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API), 라우팅, 보안, 관리 및 자동화와 같은 기술을 통합하는 추가적인 개발 방식이 필요합니다. 사용자 환경(User Experience, UX) 설계 또한 탐색 가능한 온라인 환경을 구축하기 위해 고려해야 할 중요한 사항입니다.
클라우드 플랫폼은 일종의 PaaS이므로 PaaS를 지원하는 인프라 구성 요소가 고도의 확장성을 갖추고 공유 가능한 경우라면, 클라우드라고 생각될 수 있습니다. PaaS 클라우드의 가장 좋은 예로는 퍼블릭 클라우드와 관리형 프라이빗 클라우드가 있습니다.
퍼블릭 클라우드 제공업체들은 자체 보유 하드웨어에서 인프라, 플랫폼 또는 애플리케이션을 추상화하고 이를 데이터 레이크로 풀링하여 다양한 테넌트와 이를 공유합니다. 이들 제공업체는 API 관리, 클라우드 기반 운영 체제, 또는 프레임워크로 알려진 개발 템플릿 라이브러리 등 퍼블릭 클라우드 서비스도 제공합니다. 대중적인 퍼블릭 클라우드로는 Alibaba Cloud, Microsoft Azure, Google Cloud, Amazon Web Services(AWS) 및 IBM Cloud를 들 수 있습니다.
관리형 클라우드 제공업체라고도 하는 프라이빗 클라우드 공급업체는 고객 이외의 기업이 배포, 설정, 관리하는 프라이빗 클라우드를 고객에게 제공합니다. IT 팀의 인력이나 기술이 부족한 경우 더 나은 프라이빗 클라우드 서비스와 인프라를 사용자에게 제공할 수 있도록 대기업 또는 소규모 기업을 지원하는 클라우드 제공 옵션입니다.
마지막으로 널리 사용되는 서비스 제공업체 제공 클라우드 서비스로는 클라우드 소프트웨어, 즉 SaaS로 알려진 정식 버전의 웹 애플리케이션이 있습니다. 이를 위해서는 상당한 개발 투자가 이루어져야 하는데, 클라우드 제공업체는 말 그대로 온라인 애플리케이션을 고객에게 제공하기 때문입니다.
클라우드 소프트웨어는 클라우드 네이티브 접근 방식을 사용하여 제공할 수 있는데, 이 방식은 탄력적으로 결합된 소규모의 독립형 마이크로서비스를 결합하는 애플리케이션 아키텍처에 해당합니다. 여러 마이크로서비스를 쿠버네티스 또는 Red Hat® OpenShift® 같은 컨테이너 오케스트레이션 엔진으로 관리되는 개별 Linux® 컨테이너에 패키징할 수 있습니다. 최종 제품은 마이크로서비스로 최적화할 수 있는 클라우드 애플리케이션으로서, 이러한 마이크로서비스는 서로 영향을 주지 않으면서 함께 전체 애플리케이션을 구성할 수 있습니다.
온라인 애플리케이션, 모바일 애플리케이션 및 SaaS 제품 개발에 널리 사용되는 또 다른 프로그래밍 언어 중 하나는 바로 HTML5(Hyper Text Markup Language 5)입니다. 이 프로그래밍 언어는 웹 브라우저에서 액세스할 수 있는 애플리케이션을 개발하기 위한 3가지 프로그래밍 언어를 통합합니다.
출처 : https://www.redhat.com/ko/topics/cloud-computing/what-are-cloud-services