Summary Cloud

Cloud/Common 2013. 3. 27. 11:21


Summary Cloud

제 스스로가 클라우드에 대해서 전반적인 개념을 오해하는 부분이 많고, 좀더 깊이 들어가기 위해서 기본적인 개념을 정리하고 그 개념 위에 관련된 오픈 소스를 찾고 매핑한 다음, 오픈 소스들을 깊이 파고 들어볼려고 그 첫번째인 개념 정리를 해 봅니다.
기본적인 용어를 모른다면 클라우드를 안다고 할 수 없죠. ^^ 추후에 추가할 내용이 있으면 추가토록 하겠구요. 혹시 잘못된 내용이나 추가할 것이 있으면 댓글을 통해 주세요. 그럼 제가 반영토록 하겠습니다. 

1.  클라우드 컴퓨팅(Cloud Computing)
 - 데이터와 프로그램들이 개인의 PC에 저장되기 보다는 인터넷 기반의 컴퓨터들의 구름(클라우드)에 저장되고, 사용자는 컴퓨팅(Computing)을 위해 언제 어디서나 PC, 휴대폰 등의 단말기를 통해 클라우드에 원격 접속하여, 원하는 Service를 받을 수 있는 새로운 컴퓨팅 환경
 - 여러 개의 데이터센터를 가상화 기술로 통합해, 사용자에게 다양한 소프트웨어, 보안, 컴퓨팅 인프라까지 On-demand로 제공하는 방식이며, 서비스와 애플리케이션을 개발, 운영하기 위한 IT 인프라를 서비스 형태로 제공하고, IT도 전기나 수도처럼 필요한 만큼 사용하고 쓴 만큼 돈을 지불하는 것.

2. 그리드 컴퓨팅(Grid Computing)
 - 각 기관마다 사용하는 수퍼컴퓨터나 클러스터 컴퓨터를 묶어 공유해서 사용하려는 목적으로 보통 과학계산용으로 한정하여 사용.


3. 유틸리티 컴퓨팅(Utility Computing)
 - 컴퓨팅 자원도 전기처럼 하나의 Utility로 보고 코드만 꽂으면 사용 가능하고, 쓴 만큼 돈을 지불하는 개념, 기업들의 정보 처리 및 각종 컴퓨팅 서비스를 직접 전산실에서 처리하지 않고, 이를 맡기고 사용한 만큼 값을 지불. 

4. 서비스 전달 방식(Service Delivery Model)에 따른 클라우드 분류
 4.1 SaaS(Software-as-a-Service)
  - 개요 : 애플리케이션 또는 소프트웨어를 서비스 형태로 제공하는 클라우드 컴퓨팅 서비스.
  - 예: Sales-force.com, Google Apps.

 4.2 PaaS(Platform-as-a-Service)
  - 개요 : 사용자가 쉽게 서비스를 만들 수 있도록 필요한 기본 기능을 제공하는 플랫폼을 서비스 형태로 제공하는 클라우드 컴퓨팅 서비스.
  - 예: Google AppEngine, MS Azure. 

 4.3 IaaS(Infrastructure-as-a-Service)
  - 개요 : 서버, 스토리지 등의 자원을 사용자에게 서비스 형태로 제공하는 클라우드 컴퓨팅 서비스.
  - 예: 아마존 EC2, S3, GoGrid, Joyent.

5. 서비스 배치 방식(Service Deployment Model)에 따른 클라우드 분류
 5.1 프라이빗 클라우드(Private cloud)
  - 기관이나 기업 내부의 제한된 사용자만을 위하여 배치되는 클라우드 서비스를 구분지어 일컫는다. 기업이나 공공 기간의 내부 사용을 목적으로 구축되는 데이터센터들이 이에 해당한다.
  - 고객의 IT 환경에 따른 Customized된 Architecture 설계/구축 및 관리.

 5.2 퍼블릭 클라우드(Public cloud)
 - 어떤 목적에서든 모두가 쓸 수 있게 바깥으로 드러내 배치되는 클라우드 서비스를 구분지어 일컫는다. 마이크로소프트, 구글, 아마존과 같이 특정 사업자가 수익을 목적으로 개방하는 대부분의 클라우드 서비스들이 이에 해당한다. 이와 달리 위키피디어(Wikipedia), 코드플렉스(CodePlex), 소스포지(SourceForge)와 같이 공익을 위한 무료 서비스도 포함된다.
  - 서비스 필요한 때, 필요한 만큼 신청하여 사용학고, Virtualization/Dedication 등 다양한 조합으로 제공되고 있다.

 5.3 하이브리드 클라우드(Hybrid cloud)
  - 복수 개 이상의 배포방식을 제공하여 각각의 특성을 유지한 형태로 제공한다.
  - Public 과 Private 환경이 혼재되어 있다.

6. 가상화(Virtualization) 종류
 6.1 개요
  - 컴퓨터의 CPU, 메모리, 디스크 등의 물리적 구성은 은폐한 다음, 가상적인 하드웨어 환경(가상 머신: Virtual Machine)을 여러 개 만들어 낸 후, 개별 가상 머신이 CPU, 메모리, 디스크 등을 갖추고 있는 것처럼 보이게 할 수 있는 소프트웨어 기술.

 6.2 인프라 가상화(Infra Virtualization)
  - 서버 가상화
    . 파티셔닝 : 시스템 보드 단위의 물리적 Partitioning 그리고 개별 CPU 단위의 논리적 Partitioning으로 구분할 수 있다.
    . 하이퍼바이저 : Hypervisor는 물리적 서버 위에 존재하는 가상화 레이어로서, 운영 체제 구동을 위한 하드웨어 환경을 가상으로 제공 함 (소프트웨어 기반 Partitioning)
    .  I/O가상화 : Virtual Ethernet, 공유 Ethernet Adaptor, Virtual Disk Adaptor 등으로 구분된다.
  - 스토리지 가상화
    . 컨트롤 :  스토리지 서브 시스템 또는 콘트롤러를 파티션으로 나누어 여러개의 논리적인 스토리지 컨트롤러를 구현/제공하는 기술(서버 파티셔닝과 유사).
    . 블록 : 다수의 이기종 스토리지에 위치한 유휴 디스크 공간을 모아서 가상 볼륨을 할당. SAN Fabric 상에 위치한 가상화엔진에 의해 각 서버에 가상화 볼륨 할당한다.
    . 테이프 : Tape Media/Drive/Library를 디스크에 에뮬레이션하여 논리적인 테잎 디바이스 제공(VTL:Virtual Tape Library), 백업 성능 향상을 위해 활용된다.
    . 파일 시스템 가상화 : SAN, NAS상에서 공통으로 사용 가능한 Virtual File System을 구성하여 제공. 호스트와 서버의 운영체계와 상관없이 데이터 공유와 정책 기반의 단일화된 관리. NFS와 CIFS 기술 활용.
    . 파일/레코드 가상화 : 스토리지 내 저장 파일/레코드에 대한 시그너처를 생성하여 파일 또는 파일 시스템 블럭 단위의 단일 이미지만을 저장(Data De-Duplication) 다수의 백업본이 존재하거나 다수의 사용자가 동일한 파일 또는 파일 시스템으을 중복 저장하는 환경에 적용시 저장 공간 절약 및 백업/업무 효율성 향상을 가져옴.
  - 네트워크 가상화
    . Channel Bonding : 제공 물리 대역폭의 논리적 합산.
    . Load Balancing : Work Load의 분산.
    . 가상 IP, 802.1Q(VLAN).

 6.3 정보 가상화(Information Virtualization)
  - 파일 가상화 : 클러스터, 그리드 파일 시스템
  - 데이터 가상화
    . 데이터  Federation : 다양하게 분산되어 있는 데이터들의 위치, 형태 또는 접근 언어에 투명하게(무관하게), 표준 인터페이스 기반의 단일 접근 경로 및 단일 논리 데이터 Set을 제공하는 미들웨어 기술.
    . 데이터 Consolidation : 데이터 베이스 클러스터링.
    . 데이터 그리드

 6.4 워크로드 가상화(WorkLoad Virtualization)
  - 개요 : 이기종간 통합 및 연동이 어려운 물리적 하드웨어 관점의 가상화 기술에 대비 애플리케이션 관점에서 가상화 효과를 획득하고자 함.
  - 트랜젝션 가상화 : JVM 로드 밸런싱 등이 해당하고 가상머신 기반 미들웨어를 활용한 워크로드 발란싱, 신규 인스턴스 생성 통제 기술.
  - 데스크탑 가상화 : 그리드로 그리드 미들웨어를 활용하여 이기종 서버 환경 제약을 극복하고 JOB 스케줄러를 이용하여 워크로드를 분산처리 및 로드 밸런싱하는 기술.
  - 프리젠테이션 가상화 : SBC(Server Based  Computing), 워크로드와 데이터/소프트웨어 등 모든 업무 자원은 중앙 집중형으로 구성하는 기술.

7. 하이퍼바이저(Hypervisor)
 7.1 개요
  - 소프트웨어 기반 파티셔닝
  - 호스트 컴퓨터에서 다수의 운영 체제(operating system)를 동시에 실행하기 위한 가상 플랫폼(platform)을 말한다. 가상 머신 모니터(virtual machine monitor, 줄여서 VMM)라고도 부른다.

 7.2 Bare-Metal Hypervisor
  - Hypervisor 소프트웨어는 서버 OS구동전 하드웨어 레이어 바로 상위에서 동작.

 7.3 Hosted Hypervisor
  - Hypervisor 소프트웨어는 자원 할당 및 사용을 위하여 Host OS의 서비스를 활용함.

8. 클러스터 관리
 8.1 노드 관리
  - 클러스터 Fail-Over 및 재구성, 클러스터 노드의 동적인 참여 및 배제, 물리적 하드웨어 및 논리 서버에 대한 관리를 동시에 지원, 부하 분산, 논리 노드 및 프로세스 이동을 판단 기초 자료 제공.

 8.2 자동 업데이트 및 자동 설치
  - 전 클러스터 범위에 걸쳐 특정 기능 및 보안 관련 프로그램의 업데이트/설치/삭제 자동화로 해당 관리.

 8.3 프로비저닝 및 작업 관리
  - 사용자 권한 (Login Identity Identification, Authentication Authorization, 서비스 요청 항목)을 클러스터 내 자원 할당과 연계, 클러스터 내 유휴 자원을 실시간으로 할당하여 서비스 생성/실행, 서비스 생성/실행/종료/사용자통보/자원해제 지원.

 8.4 로드밸런싱 및 자동 확장성
  - 각 사용자의 요청이나 자원 활용 상황에 따라 필요 자원을 적절히 할당, Work Load의 급증에 대비한 동적 자원 재 할당 지원.

9. 분산 데이터 관리
 - 분산 데이터 관리 시스템 (DDMS : Distributed Data Management System)은 대규모의 구조화된 데이터를 여러부분으로 나눈 후, 분산 저장/관리하는 클라우드 컴퓨팅 구현의 필수 구성요소임.
 - 고정된 테이블 스키마 없고, 테이블 간의 JOIN 연산을 하지 않고, 수평적인 확장성이 있고, 대용량(heavy) 읽기/쓰기 성능이 좋은 특징이 있다.

10. 분산 병렬 처리
 - 네트워크를 경유하여 연결된 다수의 시스템들 간에 연산 작업을 병렬로(동시에) 수행하는 기술.

11. 분산 파일 시스템
 - 막대한 양의 데이터를 저장하고 관리하기 위해 수 많은 서버들에 데이터를 나누어 저장하고 관리하는 파일 시스템임.

12. 멀티 테넌시(multi-tenancy)
 - 하나의 소프트웨어를 여러 사용자가 함께 사용하는 것을 말한다. 클라우드 컴퓨팅을 통해 개별 애플리케이션, 그룹 또는 고객 간에 모든 리소스(컴퓨팅, 네트워크 및 스토리지 등)를 공유하는 것이다.
 - 한 테넌트별로 가용성, 보안, 서비스 보장, 관리 등의 기능이 제공되어야 한다.

13. 프로비저닝(Provisioning)
 13.1 개요
  - IT인프라 자원을 사용자 또는 비즈니스의 요구사항에 맞게 할당, 배치, 배포해서 시스템을 사용할 수 있도록 만들어 놓는 것.

 13.2 서버 자원 프로비저닝
  - 서버의 CPU, Memory 등의 자원을 할당 또는 적절하게 배치해서 운영할 수 있도록 준비해 놓는 것.

 13.3 OS 프로비저닝
  - OS 를 서버에 설치하고, 구성 작업을 해서 OS가 기동되도록 준비해 놓는 것.

 13.4 소프트웨어 프로비저닝
  - 소프트웨어(WAS, DBMS, 어플리케이션 포함)를 시스템에 설치/배포 하고 필요한 구성 셋팅 작업해서 실행 할 수 있도록 해 놓는 것.
 13.5 스토리지 프로비저닝
  - 낭비되거나 사용되지 않는 스토리지를 식별하고 공통 풀에 가져다 놓고 스토리지에 대한 요구가 접수되면 관리자는 이 공통 풀에서 스토리지를 꺼내 사용할 수 있도록 관리하는 것.

 13.6 계정 프로비저닝
  - 사용자가 필요한 계정을 생성하거나 접근 권한(자원)을 변경해 주는 것.

14. 미터링(Metering)
 14.1 개요
  - 사용자가 제공받은 자원이나 서비스에 대해 가치를 측정하는 것. 그래서 비용 산정의 근거가 된다.

 14.2 Tenant-aware 미터링
  - 멀티 테넌트 구조에서는 하드웨어, 데이터베이스, 애플리케이션 등이 공유될 수 있으며, 이렇게 공유된 자원에 대하여 각 테넌트 별로 사용량을 분리해내는 기술.

 14.3 서비스 지향(Service-oriented) 미터링
  - 단순 하드웨어 미터링 만으로는 SaaS, PaaS에 대한 효율적인 비용 책정이 어려울 수 있으며 데이터베이스, 애플리케이션 플랫폼, 메시지 버스, 데이터 분석 엔진 등 다양한 서비스 구성 요소에 대한 미터링하는 것.

15. SBC(Server Based  Computing)
 - 서버에 어플리케이션과 데이터를 두고 필요할 때마다 접속해서 사용하는 방식. 클라이언트는 입/출력만 처리, 모든 작업은 서버가 처리, Thin Client.

16. 네트워크 컴퓨팅(Network Computing)
 - SBC와 유사하나 어플리케이션을 서버에서 로드하여 로컬에서 수행하는 형태.(클라이언트의 PC에서 작업 수행)

17. 인프라 감시(Infra observation)
 - 국제 산업 표준인 DMTF-CIM/WBEM에 기반을 두어 인프라 내의 자원 동작 상태 및 성능을 감시 분석.

18. 인프라 조율 관리(Infra coordination)
 - 가상화된 자원을 서비스 요구에 따라 동적으로 할당 혹은 회수.

19. 자동 관리 규칙(Automation logic)
 - 서비스별 자원의 할당 혹은 회수를 자동으로 하기 위한 자동 관리 규칙 정의.

20. 자동 센싱(Automated sensing)
 - 시스템에서 발생되는 모든 이벤트들을 감시하고 필터링하고 분석하여 자동화를 위한 기본 자료를 제공하는 기능.

21. 기타
 - Chunk : 하나의 파일의 구성 단위.
 - Scale-Up : 한 컴퓨터에서 서비스가 요구하는 쿼리를 처리하지 못하는 경우가 발생한다. 이러한 상황은 쿼리를 처리하기 위해 사용하는 CPU, 메모리, 디스크, 네트워크의 용량/처리량의 한계를 극복하기 위해 컴퓨터의 처리량을 높이는 방식
 - Scale-Out : 두 대 이상의 컴퓨터에 서비스가 요구되는 쿼리 처리를 위한 자원을 분산하는 방식을 통해 처리하는 방식.
 - Shard : 분할 된 데이터 단위.
 - Sharding : DBMS 기반으로 Scale-Out 하기 위해서는 데이터 모델 자체를 단순하게 구성해 데이터를 N개의 서로 독립적인 데이터로 분할하는 것.

[참조 정보]


출처 - http://www.mimul.com/pebble/default/2011/02/24/1298548158904.html




Posted by linuxism
,