1. 클라우드 아키텍처 개론
(Cloud Architecture 101)
-
클라우드의 정의
클라우드 분류 및 서비스 모델 별 특징
클라우드 인프라 기반 기술
인프라 구성 요소
하드웨어 컴포넌트 선정 방법
네트워크 및 보안 설계
OSS/BSS 요구사항
플랫폼/서비스 기반 기술
한상욱 부장
2013.12.13
3. 클라우드의 정의
“클라우드”
“컴퓨팅”
컴퓨터 기술 자원을 개발 및 사용하는 모든 활동
– wiki -
“클라우드 컴퓨팅”
• 서버, 스토리지, 네트워크
• 각종 개발 환경, 미들웨어
• 애플리케이션, 소프트웨어
4. 클라우드의 정의
기관
NIST
(미국국립표준기
술연구소)
한국정보통신
기술협회
Gartner
Wikipedia
위키피디아
정의
Cloud computing is 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.
개개인이 보유하고 운영해 오던 컴퓨팅 자원(시스템, 네트워크, SW, 콘텐츠)을 제3의
영역 즉, 컴퓨팅 기능이 내포된 인터넷 환경인 클라우드 영역으로 옮겨두고, 언제,
어디서나, 인터넷에 접근해 필요한 만큼 사용하고 과금하는 서비스 형태의 분산 컴퓨팅
환경
Cloud is a style of computing where scalable and elastic IT-related capabilities are
provided as a service to external customers using Internet technologies.
Cloud computing is a concept used to describe a variety of computing concepts that
involve a large number of computers connected through a real-time communication
network such as the Internet.
클라우드 컴퓨팅(cloud computing)은 인터넷 기반(cloud)의 컴퓨팅(computing) 기술을
의미한다. 인터넷 상의 유틸리티 데이터 서버에 프로그램을 두고 그때 그때 컴퓨터나
휴대폰 등에 불러와서 사용하는 웹에 기반한 소프트웨어 서비스이다.
5. 클라우드의 정의
1. 서비스
2. 인터넷
3. 주문형
인터넷을 통해, 필요한 만큼, 서비스 형태
로 제공 받을 수 있는 모든 컴퓨터 자원
6. 클라우드의 특징
1
요구 기반 셀프 서비스
사람의 도움 없이 필요한 기능만 스스로 선택하여 사용
2 광대역 네트워크 액세스
표준 네트워크(인터넷)을 통한 다양한 이기종 클라이언트 접속
3 공유 자원 풀링
거대한 자원을 나누어 사용(멀티터넌시), 물리적 정보 자원 은닉, 표준화
4 탄력적 확장성
부하량에 따른 자원의 신속한 횡(橫) 확장/수축 (Scale In/Out)
5 사용량 기반 미터링
자원 사용량을 측정하여 사용한 만큼 비용 지불(종량제)
8. 클라우드의 분류
퍼블릭 클라우드
프라이빗 클라우드
(Public Cloud)
(Private Cloud)
전문 클라우드 사업자에 의해 제공되고
누구나 가입해 사용할 수 있는 클라우드
클라우드 솔루션을 이용하여 특정 조직
내부적으로 구축하는 클라우드
다양한 기능, 미터링, SLA
자동화, 자원 활용성
하이브리드 클라우드
커뮤니티 클라우드
(Hybrid Cloud)
(Community Cloud)
다양한 클라우드 서비스를 상호 연동하
여 하나의 클라우드 서비스로 제공
보안 등 공통 관심 영역에 있는 다수의 조
직이 합동으로 클라우드 인프라 구축
버스팅(Bursting), DR
공통성
9. 클라우드 서비스 모델
• 일반 사용자 대상
• 과거 ASP와 같이 즉시 사용할 수 있는 완전한 서비
스
SaaS
(Software as a Service)
PaaS
(Platform as a Service)
IaaS
• Gmail, SalesForce, Office365, Dropbox, AppStore,
Wiki, Blog, 쇼핑몰 호스팅, 음악스트리밍
• 개발자 대상
• 각종 언어나 미들웨어, 개발 지원 환경, API 서비스,
최종 사용자에게 서비스를 제공하기 위한 배포환경
등
• AWS, Windows Azure, Google App Engine
(Infrastructure as a Service)
• 시스템 관리자 대상
• 하드웨어 인프라 자원을 서비스 형태로 제공
• AWS, Rackspace, HP, Eucalypus, Joyant, GoGrid
EaaS = NaaS, S(Security)aaS, DPaaS, DBaaS, BaaS, TaaS, ITaaS…
11. 클라우드 도입 효과
비용
CAPEX 감소, OPEX 증가, TCO 감소
기간
개발 기간 단축, 제품의 짧은 생명주기
운영
운영 인력 감소, 개인 능력 증가, 자원 효율
화
제품
제품 집중도 향상, 제품 다양성 증가, 표준화
물론, 현실은 좀 다를 수 있다!
12. 클라우드 기반 기술
웹 서비스(Web Service)
API, SDK, 플랫폼, 과금, 모니터링…
가상화(Virtualization) 기술
HW가상화, SW가상화, 하이퍼바이저…
네트워크 설계 기술
VLAN, Subnet, VPN, 광/코퍼, 인터페이스, CDN…
센터 및 랙 설계 기술
냉방, 전력 효율화, 자원 밀도, 존, 클러스터…
로깅 및 모니터링 기술
로그 수집 및 분석, 시각화, 설정 관리, 배포…
13. 가상화 (Virtualization) 기술
“가상화는 하드웨어 위에 가상의 하드웨어를 하나 이상 생성하는 기술을 말
한다”
애플리케이션
애플리케이션
운영체제
운영체제
가상머신
가상머신
게스트
하이퍼바이저
운영체제
클라우드
컨트롤러
(클라우드 컴퓨팅 플랫폼)
하드웨어
호스트
14. 가상화 (Virtualization) 기술
반가상화
(Para virtualization)
전가상화
(Full Virtualization)
HVM(Hardware Assisted Virtualization)
가상 머신의 운영체제를 수정해야하고 별도
과정을 거처 하드웨어 자원을 이용함.
가상화 공간은 실제 물리적 하드웨어와 동일하
여 운영체제 수정 없이 사용이 가능함.
에뮬레이터(Emulator) 부분가상화(Partial? Virtualization)
데스크톱 가상화(Desktop Virtualization)
네이트브 가상화(Native Virtualization)
운영체제 수준 가상화(OS-Level Virtualization)
스토리지 가상화(Storage Virtualization)
서버 가상화(Server Virtualization)
소프트웨어 가상화(Software Virtualization) 하드웨어 가상화(Hardware Virtualization)
네트워크 가상화(Network Virtualization)
컨테이너 가상화(Container Virtualization)
15. 가상화 (Virtualization) 기술
“가상 머신의 생성/삭제(Provisioning)를 관장
하고 게스트 머신의 운영체제를 활성화 시켜
주는 일종의 소프트웨어.”
“하이퍼바이저”
(Hypervisor)
VM
VM
VM
VM
하이퍼바이저
운영체제
VM
VM
VM
VM
하이퍼바이저
하드웨어
하드웨어
Type 1 Hypervisor
Type 2 Hypervisor
16. 가상화 (Virtualization) 기술
“가상화는 하드웨어 자원의 사용 권한 측면에서 일반 애플리케이션과 차이
있다.”
애플리케이션
가상 운영체제
가상 운영체제
가상 하드웨어
애플리케이션
애플리케이션
가상 운영체제
애플리케이션
애플리케이션
가상 하드웨어
가상 하드웨어
애플리케이션
운영체제
하이퍼바이저
하드웨어
하드웨어
(Hardware)
(Hardware)
비가상화 시스템
가상화 시스템
User Space
17. 가상화 (Virtualization) 기술
가상 머신
dom0
domU
domU
(Host)
백앤드
Domain 0
특별한 “권한”을 가지고 하드웨어를직접 핸들링,
가상 머신에 가상 드라이버 제공
프론트앤드
Domain U
가상화를 위해 개량된 운영체제가 설치된 가상 머
신
드라이버
Xen Hypervisor
(Type 1)
하드웨어
(Hardware)
반가상화(Para Virtualization)
백앤드/프론트앤드
dom0와 domU는 virtio 를 통해 네트워크와 디스
크 자원 할당
Xen Hypervisor
CPU와 메모리 가상화를 비롯 전원관리, 메모리
관리, 스케줄링 등 운영체젝 고유의 기능까지
담당
18. 가상화 (Virtualization) 기술
가상 머신
프로세스
프로세스
프로세스
애플리케이션
애플리케이션
운영체제
운영체제
QEMU
QEMU
애플리케이션
리눅스 커널
KVM
(Host)
하드웨어
(Hardware)
전가상화(Full Virtualization)
QEMU
디바이스 애뮬레이터 역할 수행.
운영체제
일반적인 리눅스, 윈도우 운영체제
프로세스
KVM에서 가상 머신은 일반적인 리눅스 프로세스
KVM
가상 머신의 생성/삭제 등 담당. 가상의 하드웨어
자원을 QEMU에 할당. 호스트/게스트의 CPU, 메
모리, 전원 관리 등 운영체계의 고유 기능을 하드
웨어와 호스트 운영체계 기능을 활용하여 제공
19. 가상화 (Virtualization) 기술
“하이퍼바이저 성능 비교”
http://blog.xen.org/index.php/2011/11/29/baremetal-vs-xen-vs-kvm-redux/
http://openbenchmarking.org/result/1203268-SU-INTELVIRT13
20. 클라우드 인프라
“클라우드 인프라의 배포 구성 단위는 Region > Zone > Pod > Cluster > Host”
(Cloud Stack 기준)
리전(Region) – 국가/대륙 단위, DR(Disaster Recovery) 관점
존(Zone) – 데이터 센터 단위, HA(High Availability) 관범
존(Zone)
파드(Pod) – 랙 단위
클러스터(Cluster) – 서버 묶음 단위
호스트
(Host)
프라머리
스토리지
동일한 물리적 단위
(하이퍼바이저, 서버 스펙…)
세컨더리
스토리지
가용존
(Availability Zone)
21. 클라우드 오해와 진실
QUIZ.
다수의 호스트 머신을 묶어 „초대형‟ 가상 머신을 만들 수 있다?
가상 머신의 개수는 호스트 CPU의 코어수 만큼 만들 수 있다?
호스트 머신의 OS와 전혀 다른 OS를 게스트 머신에 설치할 수 있다?
클라우드를 전환하면 비용을 절감할 수 있다?
오픈 소스 소프트웨어로 나만의 클라우드 서비스를 “쉽게” 구축 할 수 있다?
클라우드 인프라용 하드웨어는 모두 동일한 스펙으로 구성해야 한다?
가상 머신이 동작 중에도 다른 호스트 머신으로 이동 시킬 수 있다?
클라우드 인프라 구축시 하이퍼바이저의 선택은 절대적이지 않다?
클라우드 기술은 x86 아키텍처에 최적화된 기술이다.?