기본 콘텐츠로 건너뛰기

클라우드 컴퓨팅 정의

클라우드 컴퓨팅은 근래의 컴퓨팅환경에서의 큰 화두중 하나라고 할 수 있다. 서비스 환경을 위한 인프라 뿐아니라 서비스를 제공하기 위한 플랫폼, 네트워크 인프라의 핵심을 모두 클라우드화하고 있으며 기본 배경은 클라우드 인프라를 통해 비용 절감(TCO, CAPAX, OPEX)를 절감하려고 하는 것이라고 할 수 있다. 
클라우드 컴퓨팅에 대해 누가 먼저 정의를하고 사용했는가에 대해서는 논란이 될 수 있지만 1960년대  John McCarthy 교수가 처음 기본적인 아이디어 토대를 마련했다고 할 수 있다. 그는 컴퓨터가 미래에는 전기, 수도, 전화와 같은 하나의 공익 사업(Public Utility)으로 전망했다. 또한 Douglas Parkhil은 그의 저서인 "The Challenge of the Computer Utility)를 통해 클라우드 컴퓨팅에 대한 특징을 처음으로 언급하였다. 클라우드 컴퓨팅은 전화망에서 사용되는 가상 사설 네트워크(Virtual Private Network)와 같은 확장이라고 언급하였다. 클라우드는 2007년 IBM에서 "Blue Cloud"를 발표한 후 구글과 IBM이 이 분야에서 협력하기로 하기 전까지 전까지 다소 의미가 불분명한(실체없는) 단어였다고 할 수 있다. 참고로 IBM에서 클라우드를 처음 개발했지만 이를 사업적으로 성공시킨 곳은 공용 클라우드의 대표 사업자인 아마존이다. 
그렇기 때문에 클라우드 용어에대해서는 2000년대 후반에 보다 구체적으로 정의되었다. 어떤 용어가 정확하다고 할 수 없겠지만 현재 대표적으로 언급되는 클라우드에 대한 4가지 정의는 다음과 같다.

Buyya - "A Cloud is a type of parallel and distributed system consisting of a collection of inter-connected and virtualized computers that are dynamically provisioned and presented as one or more unitified computing resource(s) based on service-level agreements established through negotiation between the service provider and consumers"

P. Gaw - "The way I understand it, 'cloud computing' refers to the bigger picture…basically the broad concept of using the internet to allow people to access technology-enabled services. According to Gartner, those services must be 'massively scalable' to qualify as true 'cloud computing'.

J. Kaplan - "I view cloud computing as a broad array of web-based service aimed at allowing users to obtain a wide range of functional capabilities on a 'pay-as-you-go' basis that previously required tremendous hardware/software investments and professional skills to acquire. Cloud computing is the realization of the earlier ideals of utility computing without the technical complexities of complicated deployment worries"

NIST - "A model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model is composed of five essential characteristics, three service models, and four deployment models." 

이 중에서 가장 구체적으로 클라우드에 특징 및 서비스 모델을 정의하고 있는 것은 NIST로 클라우드 컴퓨팅에 대한 특징을  크게 다섯가지로 정의하고 있다.
 -  On-demand self-services
 - Broad network access
 - Resource pooling
 - Rapid elasticity
 - Measured service

그외 특징으로는 Agility, Cost, Performance, Multi-Tenancy, Maintenance, Productivity, Security등이 있다.

참고 자료
NIST - http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf

댓글

이 블로그의 인기 게시물

가상 자원에 대한 접근을 위한 libguestfs

libguestfs는 가상머신 디스크 이미지에 대한 접근 및 수정하기 위한 다양한 도구를 제공하는 라이브러리이다. 이 라이브러를 통해 여러분들은 게스트 OS 내부의 파일을 수정하거나 VM에 대한 스크립트 작성, 가상 머신의 디스크 / 메모리 사용량 통계 모니터링, 게스트 생성, 백업, VM 복제, 디스크 포멧, 디스크 조정 등 다양한 작업을 할 수 있다. libguestfs는 C 라이브러리로 되어 있어  C/C++ 관리 프로그램들과 연결 가능하다. 현재 최신 버전의 libguestfs는 1.31.16 (2015.10.09 기준)이다. 설치 방법은 다음과 같다. 페도라 또는 레드햇 엔터프라이즈 버전 sudo yum install libguestfs-tools 우분트 sudo apt-get install libguestfs-tools libguestfs-tools이 정상적으로 설치되었다면 다음과 같은 툴들이 설치 될 것이다. guestfish — 대화식 쉘 guestmount — 호스트에서 게스트 파일 시스템 마운트 guestunmount — 게스트 파일 시스템 마운트 해제 virt-alignment-scan — 가상 머신 파티션 alignment 검사 virt-builder — 속성 이미지 빌더 virt-cat — 파일 내용 출력 virt-copy-in — VM으로 파일 또는 디렉토리 복사 virt-copy-out — VM에서 파일 또는 디렉토리 복사 virt-customize — 가상 머신 수정 virt-df — 디스크 사용량 virt-dib —  safe diskimage-builder virt-diff — differences virt-edit — 파일 편집 virt-filesystems — 파일 시스템, 디바이스, LVM에 대한 정보 출력 virt-format — 디스크 삭제 및 빈 디스크 생성 virt-get-kernel — 디스크로 부터 커널 획득 virt-inspector — VM 이...

virsh 설치 및 VM 상태 조회

VM을 모니터링하기 위해서는 다양한 방법을 사용할 수 있지만 간편한 방법중 하나는 virsh를 통해 VM을 모니터링하는 것이다. vrish를 사용하기 위해서 관련 패키지를 설치해야하며 설치 방법은 다음과 같다. Redhat 계열 yum install qemu libvirt-client virt-manager \ virt-viewer guestfish libguestfs-tools virt-top Ubuntu sudo apt-get install ubuntu-virt virt-top virt-what virsh가 정상적으로 설치되었다면 virsh를 통해 가상 머신의 상태를 확인해 볼 수 있다. virsh를 사용하기 위해서는 root 권한을 가지거나 관련 권한을 설정해주어야 한다. 권한 설정에 대해서는 다음 posting에서 다룰 것이다. virsh의 기본적인 사용방법은 다음과 같다. virsh [option] ... <command> <domain> [arg] ... 지정 가능한 옵션은 다음과 같다. h, --help 도움말 출력 -v, --version[=short] 버전 정보 출력 -V, --version=long 컴파일된 드라이버와 옵션들을 포함한 버전 정보 출력 -c, --connect URI 지정된 URI에 연결 -d, --debug LEVEL 디버그 (레벨은 0~4까지 지정 가능) -l, --log FILE FILE로 로그 저장 . -q, --quiet 종료(?) -r, --readonly 읽기 전용으로 실행 -t, --timing 각 명령어에 대한 실행 시간 출력 -e, --escape string 콘솔 명령어에 대한 탈출 문자 지정. 기본으로 텔넷과 동일한 ^]로 지정됨 virsh 명령어들에서 대해서는 다음 posting에서 살펴보기로 하고 간단한 사용 예들은 다음과 같다. 로...

Mac에서 Wireshark 설치

맥 (OS X El Capitan)에서 Wireshark를 사용하고 싶다면 CLI를 통한 간단한 방법은 brew를 통해 설치하는 것이다. 단순히 다음과 같은 명령을 실행해 주면 된다. brew install wireshark  --with-qt --with-qt는  GUI 모드를 포함하여 설치하는 것으로 GUI 모드를 원치않는다면 해당 옵션을 삭제하면 된다. 정상적으로 설치가 완료되면 CLI를 통해 tshark 명령을 실행할 수 있다. --with-qt 옵션을 주지 않았다면 thsark만을 실행할 수 있을 것이다. tshark -i eth0 [thsark 실행화면] GUI로 실행하고 싶다면 프롬프트에서 다음과 같이 실행하면 된다. wireshark-qt [wireshark-qt 실행화면] GUI를 통해 패킷을 수집하고자 한다면 Capture 버튼 옆에 인터페이스를 선택한 후 Capture 버튼을 선택하고 상단의 왼쪽에 있는 Start capturing packets라고 툴팁이 나오는 버튼을 클릭하면 패킷 수집이 시작된다. 수집 옵션을 설정하고자 한다면 Capture Filter에 옵션을 설정하면 된다. [wireshark-qt 패킷 수집화면]