본문 바로가기
  • 오늘처럼
소프트웨어 아키텍처

클라우드 컴퓨팅 : Introduction to cloud computing

by bluefriday 2021. 8. 27.
반응형

클라우드 컴퓨팅에 대하여

클라우드 엔지니어로 활동하면서, 먼저 클라우드 컴퓨팅 혹은 클라우드 서비스에 대한 정의를 명확히 하고 싶었다.
‘클라우드 컴퓨팅’에 대한 정의를 다루는 여러 자료에서 NIST(미 국립표준기술 연구소: National Institute of Standards and Technology)에서 발표한 ‘클라우드 컴퓨팅의 정의’에 대한 내용을 번역하며, 알아보기로 한다.

기본적으로는 번역이지만, 내용에 대하여 의역하며 관련 자료를 추가하였으며, 의미를 강조하고 싶은 부분은 영문을 병행 표기하였다. (원문의 경우 하단의 링크를 통하여 확인할 수 있다)

클라우드 컴퓨팅

클라우드 컴퓨팅은 서비스 제공자가 공유 풀(pool)로 구성한 컴퓨터 리소스를 사용자에게 논리적으로 할당해주는 IT 서비스 방식(모델)이다.
서비스 제공자는 네트워크/서버/스토리지, 애플리케이션/서비스와 같이 구성 가능한 컴퓨터 리소스를 물리적으로 통합하여 별도의 풀로 구성한 뒤, 논리적으로 분리하여 특정 사용자에게 필요한 리소스를 할당해준다.

사용자는 언제 어디서든(ubiquitous) 편하게 이 리소스에 접근할 수 있으며, 이를 통하여 자신에게 맞추어 구성된(on-demand) 환경이나 서비스를 이용할 수 있다.
이러한 클라우드 컴퓨팅 서비스의 모델은 크게 5가지 필수적인 특성과 3가지 서비스 모델, 4가지 배포 모델로 구성된다.

1. 필수적 특성

  • 맞춤형(on-demand) 셀프서비스 : 클라우드 서비스의 사용자는 해당 서비스를 공급해주는 제공자와 별도의 상호작용을 하지 않고도, 사용자의 일방적인(unilaterally) 요구에 따라 언제든지 원하는 리소스를 할당받고 이용할 수 있어야 한다.
  • 광범위한 네트워크 접근 : 사용자는 네트워크 연결을 통해 이러한 서비스를 사용할 수 있으며, 휴대폰, 태블릿, 랩탑, 워크스테이션 등의 여러(thin and thick client) 클라이언트의 플랫폼에서 사용 가능하여야 한다.
  • 리소스 풀링 : 클라우드 서비스를 제공하는 공급자는, 멀티 테넌트 모델을 사용하여 여러 소비자에게 풀의 리소스를 할당(pooled)해야 하며, 사용자의 요구에 따라서 리소스가 동적으로 할당 및 재할당 되어야 한다. 사용자는 리소스의 정확한 위치나 제어에 대해서 알 수는 없지만, 국가나 지역 또는 데이터 센터와 같이 더 높은 레벨에서의 위치를 독립적으로 지정할 수 있어야 한다. 이러한 리소스의 예로는 저장소, 처리(processing), 메모리, 네트워크 대역폭 등이 있다.
  • 빠른 탄력성 : 제공되는 리소스는 탄력적으로 제공되고, 사용되지 않는 리소스는 자동으로 해제되어 신속하게 내/외부적으로 확장될 수 있어야 한다. 이를 통해 마치 사용자에게는 제공 받을 수 있는 자원의 기능에 제한이 없는 것처럼 보여야 하며 언제든지 수량에 상관없이 이용될 수 있어야 한다.
  • 측정 가능한 서비스 : 사용자에게 제공되는 클라우드 서비스는 스토리지, 처리, 네트워크 대역폭, 활성화된 사용자 계정과 같은 서비스 유형에 대하여, 사용한 정도에 따라(종량제. pay-per-use or charge-per-use) 리소스 사용을 자동으로 제어하고 최적화해야 한다. 리소스 사용량이 모니터링되고 제어될 수 있어야 하며, 이는 공급자와 사용자 모두에게 투명하게 제공되어야 한다.

2. 서비스 모델

하단에 언급되는 ‘클라우드 인프라’는, 위 클라우드 서비스의 ‘필수적 특성’ 5가지를 지원하는 하드웨어 및 소프트웨어의 모음이다. 물리적 계층의 경우 하드웨어 리소스로 구성되며 일반적으로 서버, 스토리지, 네트워크 구성요로소 포함된다. 추상화 계층의 경우 이러한 물리적 계층에 배포된 소프트웨어로 구성된다. 개념적으로는 추상화 계층이 물리적 계층보다 위에 있으며, ‘클라우드 인프라’ 는 물리적 계층과 추상화 계층을 모두 포함한다.

  • SaaS(Software as a Service) : 사용자는 ‘클라우드 인프라’에서 실행되는 서비스 제공자의 애플리케이션을 이용할 수 있다. 애플리케이션은 웹 브라우저나 다른 프로그램 인터페이스를 통해 다양한 클라이언트 장치에서 접근할 수 있다. 소비자는 제한된 사용자별 애플리케이션 설정을 제외한 네트워크, 서버, 운영체제, 스토리지와 같은 기본 클라우드 인프라를 관리하거나 제어할 수 없다.
  • PaaS(Platform as a Service) : 사용자는 공급자가 지원하는 프로그래밍 언어, 라이브러리, 서비스, 도구 등을 사용하여 생성한 애플리케이션이나 사용자가 별도로 생성(consumer-created)한 애플리케이션을 ‘클라우드 인프라’에 배포할 수 있다.
  • IaaS(Infrastructure as a Service) : 사용자는 운영체제 및 애플리케이션을 포함할 수 있는 임의의 소프트웨어를 배포하고 실행할 수 있는 스토리지, 네트워크 및 기타 기본 컴퓨팅 리소스를 생성할 수 있다. 사용자가 기본 클라우드 인프라를 관리하거나 제어하진 않지만, 운영체제, 스토리지 및 배포된 애플리케이션을 제어할 수 있다. 단, 호스트 방화벽과 같은 일부 네트워크 구성 요소의 제어는 제한될 수 있다.

3. 배포 모델

  • 프라이빗 클라우드 : 여러 사용자들이 포함된 사업부 등과 같은 조직 내부에서 독점적으로 사용되도록 생성된다. 그룹이나 제3자 또는 그룹의 일부가 소유, 관리, 운영 할 수 있으며 on-premise/off-premise 형식이 있다. on-premise의 경우 원격 환경이 아닌 자체적으로 보유한 환경에서 직접 설치해 운영되는 방식을 뜻하며, off-premise의 경우 SaaS와 유사하게 사용된다.
  • 커뮤니티 클라우드 : 보안 요구사항, 정책 및 규정 등과 같이 공통의 요구사항을 공유하는 조직에서 사용되도록 생성된다. 프라이빗과 퍼블릭 클라우드의 중간 정도의 개념으로 볼 수 있으며, 프라이빗 클라우드와 동일하게 on-premise/off-premise 형식이 존재한다.
  • 퍼블릭 클라우드 : 일반 사용자들이 공개적으로 사용할 수 있도록 클라우드 인프라가 생성된다. 기업, 학계, 정부 등이나 혹은 이들의 일부 조합이 소유, 관리, 운영 할 수 있다.
  • 하이브리드 클라우드 : 하나 이상의 클라우드 컴퓨팅 배포 모델이 혼용되어 생성된다. 보안성 등의 별도 목적에 따라 내부적으로 프라이빗/커뮤니티/퍼블릭 클라우드가 선택적으로 사용된다.

Reference

'소프트웨어 아키텍처' 카테고리의 다른 글

KubeEdge concept  (0) 2021.09.24
Container Network Interface : Weave -> Calico  (0) 2021.09.16
Container Network Interface : CNI  (0) 2021.09.03
Container 기반기술 : Namespace  (0) 2021.09.02
Edge Computing 과 Kube Edge  (2) 2020.04.10

댓글