메뉴 닫기

[KMOOC] 클라우드 서비스 아키텍처 – 8주차

클라우드 서비스 아키텍처

1. 클라우드 서비스 개요

클라우드란?
분상 컴퓨팅을 위한 플랫폼
클라우드에 연결된 컴퓨터와 각종 기기들이 컴퓨티 자원과 데이터를 온디맨드로 공유하고 활용할 수 있도록 하는 환경

클라우드를 통해 공유 가능한 컴퓨팅 자원
네트워크, 서버, 저장소, 애플리케이션, 서비스

클라우드 컴퓨팅 환경의 주요한 특징
1. 확장성있고, 동적인 인프라스트럭처
많은 사용자들이 필요에 따라 가상의 서버와 저장 공간을 클라우드에서 동적으로 할당 받아 사용 가능
2. 언제 어디서나 자원들을 사용할 수 있음
네트워크 연결만 있으면 클라우드 자원들을 언제나 사용 가능
3. 세밀한 사용제어와 사용료 지불이 가능함
사용자는 자신이 필요로 하는 클라우드 자원을 쉽게 설정 가능, 사용하는 자원만큼의 사용료만 지불 가능
4. 컴퓨팅 자원을 표준화해서 제공함
사용자들이 일반적으로 많이 사용하는 운영체제, 프로그래밍 언어, 데이터베이스들을 제공함
5. 다양한 관리 서비스를 제공함
가상화된 커뮾팅 자원과 할당된 저장공간의 현황을 파악 가능
가상화된 클라우드 환경에서 실행하는 애플리케이션과 서버의 상태를 쉽게 모니터링 가능

클라우드 컴퓨팅이 최근에 많이 활용되는 이유
1. 컴퓨팅 자원과 소프트웨어를 서비스 형태로 더 편하고 효율적으로 사용하고 제공할 수 있기 때문
클라우드에서 SOA가 구현되어 제공 -> 필요한 컴퓨팅 자원과 소프트웨어를 클라우드를 통해 서비스 형태로 접근 -> 클라우드에서 SOA가 구현되어 제공
사용자는 QoS 레벨을 선택 가능
클라우드 사용시, 다양한 사용자들을 위해 서비스를 제공하는 과정에서 컴퓨팅 자원을 최적으로 활용 가능 -> 자원의 활용을 극대화

2. 서비스의 제공과 활용에서의 효율성을 크게 증대시킬 수 있음
사용자가 컴퓨팅 자원과 저장소, 애플리케이션 등을 어떻게 사용하고 있는지 모니터링하고 추적하는 것이 가능함
사용자가 스스로 사용할 서비스에 대해 관리할 수있음(Self-service Management)

클라우드 컴퓨팅 모델의 속성요약

  1. On-demand Self-Service
  2. 유비쿼터스한 네트워크적 접근
  3. 위치와 무관하게 사용 가능한 컴퓨팅 자원
  4. 뛰어난 확장성
  5. 유연한 사용료 과금 정책

클라우드 컴퓨팅 서비스의 제공 형태
1. Software as a Service SaaS 2. Platform as a Service Paas 3. Infrastructure as a Service IaaS + Governance 서비스

IaaS
Computing on Demand, Storage on Demand를 가능하게 함
클라우드를 통해 가상머신을 제공
컴퓨터와 저장소 하드웨어를 소유할 필요없이 자신이 원하는 컴퓨팅 Task 수행 가능

자원의 가상화
컴퓨팅과 저장소 하드웨어 자원을 서비스 형태로 추상화 시킴
사용자는 1. 상세한 기술적 이해 없이도 자원들을 쉽고 효율적으로 접근해서 사용 가능
2. 자신이 필요로 하는 컴퓨팅 자원을 세밀한 단위로 관리 가능, 사용한 만큼 비용을 지불하여 효율성과 경제성 도모 가능
3. CPU와 메모리 자원을 표준적인 형태로 사용 가능
4. 필요한 성능의 QoS에 맞게 가상 머신을 맞춤형으로 구성 가능

Hypervisor
운영체제와 애플리케이션을 하드웨어와 분리시켜 종속되지 않게 만들기 위해 가상머신을 생성하는 역할을 수행

  1. Type 1 Native Hypervisor
    하드웨어 위에서 하이퍼바이저 실행
  2. Type 2 Hosted Hypervisor
    하드웨어 위에 이미 탑재된 기존의 호스트 운영체제 위에서 실행

PaaS
데이터베이스 서비스, 앱서버, 보안 서버등이 있다.

SaaS
클라우드에서 실행되는 애플리케이션 간의 메시지 교환을 가능하게 하는 메시징 서비스
분산된 병렬 프로세싱 서비스 Ex) MapReduce(AMR)
엔터프라이즈 애플리케이션 서비스 Ex) CRM, ERP, BI
비즈니스 서비스를 Service Level Agreements(SLA)에 따라 관리할 수 있는 기능 제공

Application Stacks
특정한 플랫폼 서비스와 애플리케이션 서비스를 조합한 것 Ex) .NET, J2EE, LAMP

2. OpenAPI

OpenAPI란?
API가 오픈되어 있다는 의미
웹 사이트의 정보와 서비스 기능을 API를 통해 직접 접근할 수 있도록 함
웹사이트 상호간 또는 웹사이트와 애플리케이션이 서로 연동될 수 있도록 함
다른 웹사이트로부터의 서비스를 Outsourcing해서 사용 가능
Ex) Google API, Amazon.com OpenAPI, Facebook API, Naver OpenAPI

OpenAPI기술적 방법
1. Language API 2. SOAP RPC 3. REST 기술

3. RESTful 아키텍처

Representational State Transfer(REST)
웹의 분산된 Hypermedia 콘텐츠를 접근하기 위해 개발된 Software Architecture Style
REST를 사용하는 소프트웨어 아키텍처 = RESTful 아키텍처
Ex) 구글 검색 https://www.google.co.kr/search?q=검색어

웹의 각 Hypermedia 자원이 고유한 주소를 가짐
자원에 대한 수정은 HTTP 인터페이스를 통해 Domain Specific한 데이터를 전송하여 이루어짐

REST Principles (REST 원칙)
1. RESTful 아키텍처를 구성하는 모든 서비스의 상태와 기능들은 Resource라고 정의함
2. 각 자원은 URI 형식으로 표현되는 고유한 주소를 가짐
3. 자원들에 대한 접근은 HTTP와 같은 단일 인터페이스를 통해 이루어짐
4. 아래와 같은 특징을 갖는 프로토콜
Clinet-Server 모델을 따르는 프로토콜, Stateless 프로토콜을 지원하여 필요에 따라 메시지를 주고받으며 상호작용하는 모델, Cacheable 함

REST의 장점
1. 캐싱이 가능하다. -> 서비스에 대한 응답시간을 줄이고 서버 부하의 균형을 맞추기 쉽다.
2. Stateless 프로토콜을 사용하여 클라이언트와 서버 간의 계속적인 연결유지가 필요없다. -> 서버 확장성 증가
3. RESTful 서비스를 사용할 때 가벼운 클라이언트를 실현 가능
4. HTTP 프로토콜만 사용하여 메시지 교환이 쉬움
5. URI와 같은 하이퍼링크만 사용하므로 별도의 서비스 레지스트리와 검색 방법의 사용이 필요 없음

REST의 단점
1. Stateless 프로토콜을 사용하므로 Context를 유지, 장시간 실행돼야 하는 비즈니스 프로세스 구현에 적합하지 않음
2. HTTP만 사용하므로 복잡한 서비스 간의 상호작용을 모두 구현하기 어려움
3. HTTP를 통해 대용량의 메시지를 교환하는 것이 어려움
4. 표준화된 서비스 명세 모델과 레지스트리 구축 및 검색 방법이 없어 서비스 제공자마다 서로 다른 명세를 제공

REST vs RPC
SOAP-based RPC -> SOAP XML로 인코딩 된 요청 메시지를 서버에 전송 -> SOAP 메시지로 응답
REST -> HTTP 메소드 호출을 통해 서비스 요청을 보낼 수있고, 응답으로 XML, JSON응답을 받는다.
REST를 사용하면 통신과 메시지 처리의 Overhead를 줄일 수 있다.

SOA와 REST의 관계
SOA는 아키텍처, REST는 이를 구현하기 위한 구현 기술
SOA의 목표는 비즈니스 골을 달성하기 위한 것
REST의 목표는 기술적인 관점에서 비즈니스 골을 더 효과적으로 달성하는 것을 목표로 한다.
SOAP RPC와 REST를 병행해서 사용 가능

4. Service Mashup & Microservices

Mashup
하나 이상의 자원으로부터 데이터를 수집하고 통합하여 웹 애플리케이션을 만드는 것
Service Mashup = > OpenAPI를 사용하여 다양한 서비스로부터 콘텐츠와 기능들을 받아 통합하여 애플리케이션을 제작하는 것
RSS도 활용된다.

Service Mash-ups Architecture
Content Provider = Mashup할 콘텐츠를 제공
SOAP, REST, RSS같은 API를 통해서 직접 접근 가능
Mashup Site
실제 여러 Resource로부터 모아진 콘텐츠를 사용해서 새로운 콘텐츠를 만들어내는 Mashup Application
Client Web Browser
Mashup을 위한 유저 인터페이스르 제공, 간단한 Mashup을 수행하는 역할

Mashup을 위한 도구
Node-RED

마이크로 서비스 = 규모가 작은 서비스
SOA를 구축하기 위한 또 하나의 방법

마이크로서비스의 특징
일반적인 서비스와 같이 연관된 기능들을 모아서 정의됨
일반적인 서비스보다 작고, 특정한 비즈니스 기능에 초점을 맞춰서 개발 됨
독립적으로 개발되고 교환 가능
API를 통해 직접 접근 가능

마이크로서비스 아키텍처
마이크로서비스로 구성된 SOA
각 마이크로서비스는 자신의 데이터베이스를 가짐

SOA와 마이크로서비스 아키텍처의 차이
마이크로서비스는 독립적으로 개발되고 배포된다.
SOAP 기반 ESB가 아닌 API를 통해 서로 직접 상호작용 한다.
각각 독립적인 데이터베이스를 가지고 있고, 그 크기가 일반적인 서비스보다 작다.

엣지 클라우드 서비스 아키텍처

클라우드 컴퓨팅이 활발해 지면서 발생하는 문제
클라우드에 연결되는 IoT와 모바일 기기의 수가 급증 하면서 데이터의 양 증가, 데이터 수집 및 처리의 병목 현상이 발생
데이터 전송 지연이 발생하고, 정보 보안과 프라이버시 문제의 발생 우려가 커진다.

Edge Computing
분산 컴퓨팅의 형태
주요 컴퓨팅과 데이터 저장 및 처리를 네트워크상 소비자의 가까운 엣지에서 하는 것
네트워크 상 데이터가 수집되는 곳에서 컴퓨팅을 바로 함으로써 효율성을 높이고자 하는 것
주요하지 않은 데이터 처리만 기존의 중앙 클라우드에서 하는 개념
엣지로부터 서비스와 애플리케이션을 직접 제공 받음 -> 서비스의 품질 향상

Edge란?
스마트 기기, 모바일 기기, 자율주행 자동차, 네트워크 서버

클라우드와 엣지 클라우드
기존 클라우드는 각종 기기들이 네트워크를 통해 직접 연결되어 데이터가 수집, 중앙집중적으로 처리되어 서비스와 어플리케이션을 제공
엣지 클라우드는 컴퓨팅 파워가 있는 엣지 기기들 자체적으로 필요한 컴퓨테이션을 수행하여 서비스와 어플리케이션을 제공. 필요한 경우에멘 중앙 클라우드의 서비스 활용

Edge의 한계
Edge기기는 컴퓨팅 자원의 파워와 양이 제한되어 있고, 기기들마다 서로 heterogeneous하다.
또한 컴퓨팅 자원과 edge를 연결하는 네트워크 상태가 급격하게 변할 수있기 때문에, 서비스 품질과 신뢰성 관리가 필요하다.

Edge Cloud
엣지기기 한계를 극복하기 위해 클라우드와 엣지기기 사이에 엣지 클라우드를 둘 수있다.
하나 이상의 네트워크 노드로 구성
fog 나 cloudlet 이라고도 부른다.
지역적인 컴퓨테이션 및 서비스의 제공에 필요한 데이터가 엣지 클라우드에서 수집되어 처리된다.
필요할 경우 데이터의 일부나 추상화된 데이터만 중앙 클라우드로 보내 처리하는 구조이다.
효율성을 위해 중앙 클라우드의 서비스 일부를 엣지클라우드로 오프로드 하여 제공할 수 있다. (Service offloading)

모바일 엣지 컴퓨팅
모바일 기기를 지원하는 엣지 컴퓨팅
5G 도입에 따라 자율주행차, 스마트폰등의 기기들이 엣지 클라우드와 연결하여 데이터를 주고받고 서비스를 받는 것이 가능하다.
사용자가 이동하고, 여러 사용자가 자원을 공유하기 때문에 엣지 클라우드의 컴퓨팅 자원이 수시로 바뀔 수있다.
이를 위해 서비스를 계속적이고 일관되게 제공하는 기술이 필요하다.

엣지 컴퓨팅의 장점
1. 서비스 지연시간의 감소
2. 네트워크의 대역폭 절약
3. 중앙 데이터 센터로 데이터를 언제나 보낼 필요가 없다.
4. 로컬 센서와 사용자에게 수집된 즉각적 데이터를 실시간으로 처리하는 것이 가능하다.
5. 데이터의 소유권을 사용자에게 전환하여 정보보안과 프라이버시를 증대할 수 있다.
6. 서비스 Offloading, 서비스 수요에 따라 스케일링이 가능하여 확장성이 높다.

엣지 컴퓨팅의 활용
VR/AR 애플리케이션, 자율 주행차, 스마트시티, 스마트 팩토리, IoT gateway, CDN

엣지 클라우드 서비스 아키텍처
엣지는 5G등 통신 인프라를 통해서 엣지 클라우드로 연결되고 API를 통해 서비스 가 제공됨
CSP(통신서비스 제공자) = 엣지 클라우드를 위해 5G 등의 통신 인프라 제공, Runtime Execution Environment 제공, 서비스 오케스트레이션 및 관리
Service Provider( 제3의 서비스 제공자) = 자신의 서비스를 엣지 클라우드 환경에서 API를 통해 공개
SI 회사 = 기업과 사용자가 필요하는 애플리케이션을 엣지클라우드 서비스 를 오케스트레이션 하여 개발하고 제공
HCP(Hypersclae Cloud Providers) = AWS, MS Azure, GCP 등의 중앙 집중적 클라우드 인프라와 플랫폼 제공자
Operations Technology (OT) Vendors = IOT 플랫폼과 애플리케이션을 소유한 기업들, 이들의 기기들이 엣지 클라우드와 연동하여 서비스를 제공하거나 받게됨.

엣지 클라우드 서비스 아키텍처의 특징
1. 클라우드, 네트워크, 데이터, 기능적 자원들이 모두 서비스로서 노출
2. 개발자들은 CSP가 제공하는 다양한 기능들을 활용하여 엣지 클라우드 애플리케이션 개발
3. 개발자들은 Application Logic에만 초점을 두고 소프트웨어를 개발할 수 있다.
4. 엣지 클라우드를 위한 오픈소스 소프트웨어가 개발되고 유지될 수 있도록 하는 생태계가 제공됨
5. 마이크로서비스 기반의 도구와 컴포넌트를 사용하여 유연하고 효율성 높은 엣지 클라우드 애플리케이션 개발

Related Posts

답글 남기기

이메일 주소는 공개되지 않습니다.

%d 블로거가 이것을 좋아합니다: