SW/클라우드 서비스 아키텍처

클라우드 컴퓨팅 : 개념, 특징, 개요, 설명, 종류

얇은생각 2020. 6. 4. 07:30
반응형

클라우드 컴퓨팅

클라우드란 분산 컴퓨팅을 위한 플랫폼입니다. 이 클라우드에 연결된 컴퓨터와 각종 기기들이 컴퓨팅 자원과 데이터를 On Demand로 필요에 따라 공유하고 활용할 수 있도록 하는 환경입니다. 클라우드를 통해 공유 가능한 컴퓨팅 자원으로는 네트워크, 서버, 저장소, 애플리케이션, 서비스 등이 있습니다.

 

 

클라우드 컴퓨팅 특징

이러한 클라우드 컴퓨팅 환경은 몇 가지 중요한 특징들이 있습니다. 먼저 매우 Scalable하고 Dynamic한 인프라스트럭처입니다. 즉, 많은 사용자들이 필요에 따라 가상의 서버와 저장 공간을 클라우드에서 동적으로 할당받아 사용할 수가 있습니다.

두 번째 특징은 언제 어디서나 이러한 자원들을 Access할 수 있습니다. 즉, 네트워크 연결만 있으면 클라우드 자원들을 언제나 사용할 수 있습니다.

세 번째 특징은 세밀한 사용제어와 사용료 지불이 가능하다는 것입니다. 즉, 사용자는 자신이 필요로 하는 클라우드 자원을 쉽게 Configure할 수 있습니다. 사용하는 자원만큼의 사용료만 지불하면 됩니다.

네 번째는 컴퓨팅 자원을 표준화해서 제공한다는 것입니다. 즉, 사용자들이 일반적으로 많이 사용하는 운영체제, 프로그래밍 언어, 데이터베이스들을 제공하는 것입니다. 최근에 클라우드들은 LAMP를 많이 지원합니다. 이것은 Linux 운영체제, Apache 웹서버, MySQL 데이터베이스 그리고 Perl이나 Python 언어를 일컫는 것입니다.

다섯 번째 특징은 다양한 관리 서비스를 제공합니다. 즉, 가상화된 컴퓨팅 자원과 할당된 저장공간의 현황을 파악합니다. 가상화된 클라우드 환경에서 실행하는 애플리케이션과 서버의 상태도 쉽게 모니터링할 수 있습니다.

 

 

왜 클라우드 컴퓨팅인가?

클라우드 컴퓨팅이 최근에 많이 활용이 되고 있습니다. 먼저 컴퓨팅 자원과 소프트웨어를 서비스 형태로 더 편하게 효율적으로 사용하고 제공할 수 있어서입니다. 즉, 클라우드에서 SOA가 구현되어 제공됨으로써 사용자는 필요한 컴퓨팅 자원과 소프트웨어를 클라우드를 통해 서비스 형태로 접근합니다.

사용한 서비스에 대한 비용만 지불하면 되는 것입니다. 또한 사용자는 서비스의 응답시간, 성능 등과 같은 적절한 서비스 품질, 즉 우리가 보통 QoS라고 이야기하는데요. 이런 QoS 레벨을 선택할 수 있습니다. 또한 클라우드를 사용하면 다양한 사용자들을 위해 서비스를 제공하는 과정에서 컴퓨팅 자원을 최적으로 활용할 수 있습니다.

 

클라우드 컴퓨팅 : 개념, 특징, 개요, 설명

 

기존의 특정한 서버만을 사용하여 서비스를 제공하는 것에 비해 클라우드를 사용하면 컴퓨팅 자원을 여러 사용자를 위한 여러 서비스가 공유할 수 있도록 함으로써 자원의 Utilization을 극대화 시키는 모습을 보여주고 있습니다. 클라우드를 많이 사용하는 그 다음 이유는 서비스의 제공과 활용에서의 효율성을 크게 증대시킬 수 있다는 것입니다.

즉, 사용자가 컴퓨팅 자원과 저장소, 애플리케이션 등을 어떻게 사용하고 있는지 모니터링하고 추적할 수 있습니다. 사용자는 스스로 사용할 서비스에 대한 관리를 할 수 있습니다. 이러한 개념을 “Self-service Management”라고 합니다. 사용자는 자신의 클라우드 자원의 상태를 모니터링하고 직접 제어할 수 있습니다.

소프트웨어를 업그레이드 하고 백업하며 보안 제어를 하는 등의 관리를 쉽게 스스로 할 수 있는 것입니다. 정리하자면 클라우드 컴퓨팅 서비스 모델의 속성은 On-Demand Self-Service, 유비쿼터스한 네트워크적 접근, 위치와 무관하게 사용가능한 컴퓨팅 자원, 뛰어난 확장성과 유연한 사용료 과금 정책 등의 특징을 가지고 있습니다.

 

 

클라우드 컴퓨팅 서비스

이러한 클라우드 컴퓨팅 서비스는 일반적으로 다음과 같이 세 가지의 형태로 제공됩니다.

 

클라우드 컴퓨팅 : 개념, 특징, 개요, 설명

 

첫 번째는 Software as a Service 즉, SaaS입니다. 이것은 Virtual Desktop, Email, Game 등과 같은 애플리케이션을 클라우드 서비스로서 제공합니다.

두 번째는 Platform as a Service, 즉 PaaS입니다. 이것은 데이터베이스, 웹서버, 소프트웨어 개발도구 등의 컴퓨팅 플랫폼 요소들을 서비스 형태로 제공합니다.

세 번째는 Infrastructure as a Service, 즉 IaaS입니다. 이것은 컴퓨팅 하드웨어, 저장소, 네트워크 등과 같은 컴퓨팅 기반 요소들을 클라우드에서 서비스 형태로 가상화 해서 제공합니다.

이러한 세 가지 형태의 서비스뿐만 아니라 클라우드에서는 앞서 설명 드린 것과 같이 클라우드 자원들을 모니터링하고 관리할 수 있는 서비스와 보안 및 사용료 과금 정책 등을 관리하는 Governance 서비스도 함께 제공합니다.

 

 

IaaS - Infrastructure Services

먼저 인프라스트럭처 서비스, 즉 IaaS는 “Computing on Demand”와 “Storage on Demand”를 가능하게 합니다. 사용자의 컴퓨팅 태스크를 수행할 수 있는 Virtual Machine, 즉 가상화된 컴퓨터를 제공합니다. 신뢰적인 데이터 저장소를 제공합니다.

즉, 사용자는 컴퓨터와 저장소 하드웨어를 자신이 소유할 필요 없이 이러한 인프라스트럭처 서비스만을 사용하여 자신이 원하는 컴퓨팅 태스크를 수행할 수 있게 됩니다. 자원의 가상화란 컴퓨팅과 저장소 하드웨어 자원을 서비스 형태로 추상화시킴으로써 사용자가 상세한 기술적 이해 없이도 이러한 자원들을 쉽고 효율적으로 접근해서 사용할 수 있습니다.

또한 이러한 가상화 서비스를 사용하면 사용자는 자신이 필요로 하는 컴퓨팅 자원을 세밀한 단위로 관리하면서 사용한 만큼 비용을 지불할 수 있어 그 효율성과 경제성을 도모할 수 있습니다. 그리고 자원 가상화를 통해 사용자는 CPU와 메모리 자원을 표준적인 형태로 사용할 수 있습니다. 자신이 필요로 하는 성능 등의 QoS에 맞게 Virtual Machine을 맞춤형으로 구성할 수 있습니다.

자원의 가상화를 위해 사용하는 것이 Hypervisor입니다. 이것은 운영체제와 애플리케이션들을 하드웨어와 분리시켜 종속되지 않게 만들기 위해 Virtual Machine을 생성하는 역할을 수행합니다. Hypervisor에는 두 가지 종류가 있습니다. 먼저 Type 1이라고 부르는 Native Hypervisor이 있습니다.

하드웨어 위에서 직접 실행되는 것으로 여러 개의 운영체제가 설치되어 사용될 수 있도록 합니다. 다음은 타입은 Type 2 Hypervisor입니다. 그 이름을 보통 Hosted Hypervisor라고 부릅니다. 이것은 하드웨어 위에 이미 탑재된 기존의 호스트 운영체제가 돌아가고 있습니다. 그 위에서 실행되는 Hypervisor가 실행돼서 이것을 매개로 해서 다른 여러 운영체제들이 설치돼서 사용할 수 있게 되는 형태가 됩니다.

 

 

PaaS - Platform

다음은 플랫폼 서비스, 즉 PaaS에 대해서 좀 더 상세하게 살펴보도록 하겠습니다.

 

클라우드 컴퓨팅 : 개념, 특징, 개요, 설명

 

대표적인 플랫폼 서비스로는 데이터베이스 서비스, 애플리케이션 서버, 보안 서버 등이 있습니다. 데이터베이스 서비스를 통해서는 Relational Database를 클라우드에서 분산되고 이중화되게 구축하여 보다 신뢰적으로 데이터를 저장하고 관리할 수 있습니다.

대규모 비즈니스 환경에서는 Middle-tier 서비스 아키텍처가 많이 사용됩니다. 그래서 이런 Middle-tier에서 가장 중요한 요소가 애플리케이션 서버입니다. 클라우드를 사용하면 이 애플리케이션 서버를 클라우드에 두고 편리하고 확장성 있게 관리해서 사용할 수 있습니다.

또한 애플리케이션 서버와 함께 웹서버나 포탈 서버 등의 미들웨어 서버도 설치해서 사용할 수 있습니다. 그리고 또한 보안 서비스를 통해서는 보안키 관리, 사용자 인증 등을 클라우드를 통해 편리하게 수행할 수 있습니다.

 

 

SaaS - Application Services

소프트웨어 애플리케이션을 서비스 형태로 클라우드를 통해 사용할 수 있도록 하기 위한 SaaS 서비스로는 클라우드에서 실행되는 애플리케이션 간의 메시지 교환을 가능하게 하는 메시징 서비스 그리고 분산된 병렬형 프로세싱 서비스가 있습니다.

 

클라우드 컴퓨팅 : 개념, 특징, 개요, 설명

 

분산 병렬 프로세싱을 통해서는 여러 개의 Backend 애플리케이션 서버와 백업 서버 등을 사용해서 고성능의 연산을 수행할 수 있습니다. 만약에 어떠한 서버에 문제가 생겼을 경우에는 다른 서버를 활용하여 안정적으로 애플리케이션의 실행을 계속할 수 있습니다.

많이 아시는 구글의 Map Reduce는 데이터의 분산 병렬 처리를 위한 프레임워크로서 현재 많은 클라우드들이 Map Reduce 서비스를 제공하고 있습니다. 또 다른 애플리케이션 서비스로는 비즈니스 환경에서 공통적으로 사용되는 엔터프라이즈 애플리케이션들이 있습니다.

Customer Relationship Management(CRM)과 Enterprise Resource Planning(ERP) 서비스가 가장 대표적인 엔터프라이즈 애플리케이션 서비스가 있습니다. Business Intelligence도 이런 엔터프라이즈 애플리케이션 서비스로서 많은 클라우드에서 현재 제공합니다.

그리고 비즈니스 서비스를 Service Level Agreement(SLA)에 따라 관리할 수 있는 기능도 애플리케이션 서비스로서 일반적으로 제공됩니다. 클라우드에서 일반적으로 지원되는 플랫폼과 애플리케이션 서비스들을 정리합니다. 맨 아래의 운영체제는 클라우드의 Virtual Machine에서 실행되는 것으로서 그 위에 플랫폼 서비스인 데이터베이스, 저장소, 파일 서비스 등이 제공됩니다.

그리고 이를 기반으로 해서 애플리케이션 서버, 웹서버, 네트워크 서버 등의 플랫폼 서비스들이 제공됩니다. 그리고 또한 이러한 플랫폼 서비스를 바탕으로 포털, 문서관리, 워크플로우 또는 비즈니스 프로세스 엔진 등의 애플리케이션 서비스들이 제공됩니다. 이런 것들이 바로 애플리케이션 서비스로서 클라우드에서 제공이 됩니다. 또한 가장 상위 서비스로 CRM, ERP 등의 애플리케이션 서비스가 제공됩니다.

 

 

Application Stacks

클라우드 컴퓨팅 : 개념, 특징, 개요, 설명, 종류

 

특정한 플랫폼 서비스와 애플리케이션 서비스를 조합한 것을 Application Stack입니다. 이것은 애플리케이션을 운영체제나 하드웨어와의 의존성 없이 실행할 수 있게 하기 위한 것입니다. 가장 대표적인 Application Stack으로는 마이크로소프트의 .NET과 Java 언어기반의 J2EE가 있습니다.그리고 최근에는 LAMP로 일컬어지는 Application Stack이 많이 사용됩니다. 그것은 아래 Linux 운영체제, 그 위에 Apache 웹서버, MySQL 데이터베이스 그리고 프로그래밍 언어로는 Perl이나 Python 언어 등의 오픈소스 요소들이 조합된 형태를 LAMP라고 일컸습니다. 이러한 조합으로 Application Stack을 현재 많이 사용을 합니다.

반응형