[sw 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

21
클클클클 클클클클 클클 (Cloud Architecture 101) 클클클 클클 2013.12.13 - 클클클클클 클클 - 클클클클 클클 클 클클클 클클 클 클클 - 클클클클 클클클 클클 클클 - 클클클 클클 클클 - 클클클클 클클클클 클클 클클 - 클클클클 클 클클 클클 - OSS/BSS 클클클클 - 클클클 / 클클클 클클 클클

Upload: alex-hahn

Post on 17-Nov-2014

1.801 views

Category:

Technology


0 download

DESCRIPTION

2013.12.13 SW 아키텍처 컨퍼런스 발표자료

TRANSCRIPT

Page 1: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

클라우드 아키텍처 개론(Cloud Architecture 101)

한상욱 부장2013.12.13

- 클라우드의 정의- 클라우드 분류 및 서비스 모델 별 특징- 클라우드 인프라 기반 기술- 인프라 구성 요소- 하드웨어 컴포넌트 선정 방법- 네트워크 및 보안 설계- OSS/BSS 요구사항- 플랫폼 / 서비스 기반 기술

Page 2: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

클라우드의 정의

클라우드 ?메론 IPTV/SmartTV Tomcat/Memcached/MySQL Hadoop nDrive iOS

Page 3: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

클라우드의 정의

“ 클라우드” “ 클라우드 컴퓨팅”

“ 컴퓨팅”• 서버 , 스토리지 , 네트워크• 각종 개발 환경 , 미들웨어• 애플리케이션 , 소프트웨어컴퓨터 기술 자원을 개발 및 사용하는 모든 활동

– wiki -

Page 4: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

클라우드의 정의

기관 정의

NIST(

미국국립표준기술연구소 )

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 rapidlyprovisioned and released with minimal management effort or service provider interaction.

한국정보통신기술협회

개개인이 보유하고 운영해 오던 컴퓨팅 자원 ( 시스템 , 네트워크 , SW, 콘텐츠 ) 을 제3 의 영역 즉 , 컴퓨팅 기능이 내포된 인터넷 환경인 클라우드 영역으로 옮겨두고 , 언제 , 어디서나 , 인터넷에 접근해 필요한 만큼 사용하고 과금하는 서비스 형태의 분산 컴퓨팅 환경

GartnerCloud is a style of computing where scalable and elastic IT-related capabilities are provided as a service to external customers using Internet technologies.

WikipediaCloud 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) 기술을 의미한다 . 인터넷 상의 유틸리티 데이터 서버에 프로그램을 두고 그때 그때 컴퓨터나 휴대폰 등에 불러와서 사용하는 웹에 기반한 소프트웨어 서비스이다 .

Page 5: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

1. 서비스

2. 인터넷

3. 주문형

인터넷을 통해 , 필요한 만큼 , 서비스 형태로 제공 받을 수 있는 모든 컴퓨터

자원

클라우드의 정의

Page 6: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

요구 기반 셀프 서비스

탄력적 확장성

공유 자원 풀링

클라우드의 특징

사용량 기반 미터링

광대역 네트워크 액세스

1

2

3

4

5

사람의 도움 없이 필요한 기능만 스스로 선택하여 사용

표준 네트워크 ( 인터넷 ) 을 통한 다양한 이기종 클라이언트 접속

거대한 자원을 나누어 사용 ( 멀티터넌시 ), 물리적 정보 자원 은닉 , 표준화

부하량에 따른 자원의 신속한 횡 ( 橫 ) 확장 / 수축 (Scale In/Out)

자원 사용량을 측정하여 사용한 만큼 비용 지불 ( 종량제 )

Page 7: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

클라우드의 분류

개인용 클라우드(Personal Cloud)

기업용 클라우드(Enterprise Cloud)

Page 8: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

클라우드의 분류

퍼블릭 클라우드(Public Cloud)

프라이빗 클라우드(Private Cloud)

하이브리드 클라우드(Hybrid Cloud)

커뮤니티 클라우드(Community Cloud)

다양한 기능 , 미터링 , SLA

버스팅 (Bursting), DR

전문 클라우드 사업자에 의해 제공되고 누구나 가입해 사용할 수 있는 클라우드

자동화 , 자원 활용성

클라우드 솔루션을 이용하여 특정 조직 내부적으로 구축하는 클라우드

다양한 클라우드 서비스를 상호 연동하여 하나의 클라우드 서비스로 제공

보안 등 공통 관심 영역에 있는 다수의 조직이 합동으로 클라우드 인프라 구축

공통성

Page 9: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

클라우드 서비스 모델

EaaS = NaaS, S(Security)aaS, DPaaS, DBaaS, BaaS, TaaS, ITaaS…

• 일반 사용자 대상• 과거 ASP 와 같이 즉시 사용할 수 있는 완전한

서비스• Gmail, SalesForce, Office365, Dropbox, App-

Store, Wiki, Blog, 쇼핑몰 호스팅 , 음악스트리밍SaaS(Software as a Service)

PaaS(Platform as a Service)

IaaS(Infrastructure as a Service)

• 개발자 대상• 각종 언어나 미들웨어 , 개발 지원 환경 , API

서비스 , 최종 사용자에게 서비스를 제공하기 위한 배포환경 등

• AWS, Windows Azure, Google App Engine

• 시스템 관리자 대상• 하드웨어 인프라 자원을 서비스 형태로 제공• AWS, Rackspace, HP, Eucalypus, Joyant,

GoGrid

Page 10: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

클라우드 서비스 모델

Page 11: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

클라우드 도입 효과

물론 , 현실은 좀 다를 수 있다 !

CAPEX 감소 , OPEX 증가 , TCO 감소비용

개발 기간 단축 , 제품의 짧은 생명주기기간

운영 인력 감소 , 개인 능력 증가 , 자원 효율화운영

제품 집중도 향상 , 제품 다양성 증가 , 표준화 제품

Page 12: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

클라우드 기반 기술

가상화 (Virtualization) 기술

웹 서비스 (Web Service)API, SDK, 플랫폼 , 과금 , 모니터링…

HW 가상화 , SW 가상화 , 하이퍼바이저…

네트워크 설계 기술VLAN, Subnet, VPN, 광 / 코퍼 , 인터페이스 , CDN…

센터 및 랙 설계 기술냉방 , 전력 효율화 , 자원 밀도 , 존 , 클러스터…

로깅 및 모니터링 기술로그 수집 및 분석 , 시각화 , 설정 관리 , 배포…

Page 13: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

가상화 (Virtualization) 기술

호스트

게스트

클라우드컨트롤러

( 클라우드 컴퓨팅 플랫폼 )하드웨어

운영체제

하이퍼바이저

가상머신

운영체제

애플리케이션

가상머신

운영체제

애플리케이션

“ 가상화는 하드웨어 위에 가상의 하드웨어를 하나 이상 생성하는 기술을 말한다”

Page 14: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

가상화 (Virtualization) 기술

반가상화(Para virtualization)

전가상화(Full Virtualization)

HVM(Hardware Assisted Virtualization) 에뮬레이터 (Emulator)부분가상화 (Partial? Virtualization)

운영체제 수준 가상화 (OS-Level Virtualization)

서버 가상화 (Server Virtualization)

스토리지 가상화 (Storage Virtualization)

소프트웨어 가상화 (Software Virtualization)

데스크톱 가상화 (Desktop Virtualization)

네이트브 가상화 (Native Virtualization)

가상 머신의 운영체제를 수정해야하고 별도 과정을 거처 하드웨어 자원을 이용함 .

가상화 공간은 실제 물리적 하드웨어와 동일하여 운영체제 수정 없이 사용이 가능함 .

하드웨어 가상화 (Hardware Virtualization)

네트워크 가상화 (Network Virtualization)

컨테이너 가상화 (Container Virtualization)

Page 15: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

가상화 (Virtualization) 기술

“ 하이퍼바이저”(Hypervisor)

“ 가상 머신의 생성 / 삭제 (Provisioning)를 관장하고 게스트 머신의 운영체제를 활성화 시켜주는 일종의 소프트웨어 .”

하드웨어

운영체제

하이퍼바이저

Type 1 Hypervisor

VM VM VM VM

하드웨어

하이퍼바이저

Type 2 Hypervisor

VM VM VM VM

Page 16: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

가상화 (Virtualization) 기술

비가상화 시스템

하드웨어(Hardware)

운영체제

애플리케이션 애플리케이션 애플리케이션

가상화 시스템

하드웨어(Hardware)

하이퍼바이저

가상 하드웨어

가상 운영체제

애플리케이션

가상 하드웨어

가상 운영체제

애플리케이션

가상 하드웨어

가상 운영체제

애플리케이션

“ 가상화는 하드웨어 자원의 사용 권한 측면에서 일반 애플리케이션과 차이 있다 .”

User Space

Page 17: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

가상화 (Virtualization) 기술

반가상화 (Para Virtualization)

하드웨어(Hardware)

Xen Hypervisor(Type 1)

dom0(Host)

domU

백앤드

드라이버

Domain 0특별한 “권한”을 가지고 하드웨어를직접 핸들링 , 가상 머신에 가상 드라이버 제공

Xen HypervisorCPU 와 메모리 가상화를 비롯 전원관리 , 메모리관리 , 스케줄링 등 운영체젝 고유의 기능까지 담당

가상 머신

domU

Domain U가상화를 위해 개량된 운영체제가 설치된 가상 머신

백앤드 / 프론트앤드dom0 와 domU 는 virtio 를 통해 네트워크와 디스크 자원 할당

프론트앤드

Page 18: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

가상화 (Virtualization) 기술

전가상화 (Full Virtualization)

하드웨어(Hardware)

리눅스 커널(Host)

프로세스

KVM가상 머신의 생성 / 삭제 등 담당 . 가상의 하드웨어 자원을 QEMU 에 할당 . 호스트 / 게스트의 CPU, 메모리 , 전원 관리 등 운영체계의 고유 기능을 하드웨어와 호스트 운영체계 기능을 활용하여 제공

프로세스 QEMU디바이스 애뮬레이터 역할 수행 .

프로세스KVM 에서 가상 머신은 일반적인 리눅스 프로세스

KVM

프로세스

QEMU

운영체제

애플리케이션

QEMU

운영체제

애플리케이션

가상 머신

애플리케이션

운영체제일반적인 리눅스 , 윈도우 운영체제

Page 19: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

가상화 (Virtualization) 기술

“ 하이퍼바이저 성능 비교”

http://blog.xen.org/index.php/2011/11/29/baremetal-vs-xen-vs-kvm-redux/ http://openbenchmarking.org/result/1203268-SU-INTELVIRT13

Page 20: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

클라우드 인프라

“ 클라우드 인프라의 배포 구성 단위는 Region > Zone > Pod > Cluster > Host” (Cloud Stack 기준 )

리전 (Region) – 국가 / 대륙 단위 , DR(Disaster Recovery) 관점

존 (Zone) – 데이터 센터 단위 , HA(High Availability) 관범

파드 (Pod) – 랙 단위

클러스터 (Cluster) – 서버 묶음 단위

호스트(Host)

존 (Zone)

가용존(Availability Zone)

프라머리스토리지

세컨더리스토리지

동일한 물리적 단위( 하이퍼바이저 , 서버 스펙… )

Page 21: [SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론

클라우드 오해와 진실

다수의 호스트 머신을 묶어 ‘초대형’ 가상 머신을 만들 수 있다 ?

가상 머신의 개수는 호스트 CPU 의 코어수 만큼 만들 수 있다 ?

클라우드를 전환하면 비용을 절감할 수 있다 ?

오픈 소스 소프트웨어로 나만의 클라우드 서비스를 “쉽게” 구축 할 수 있다 ?

클라우드 인프라용 하드웨어는 모두 동일한 스펙으로 구성해야 한다 ?

가상 머신이 동작 중에도 다른 호스트 머신으로 이동 시킬 수 있다 ?

호스트 머신의 OS 와 전혀 다른 OS 를 게스트 머신에 설치할 수 있다 ?

클라우드 인프라 구축시 하이퍼바이저의 선택은 절대적이지 않다 ?

QUIZ.

클라우드 기술은 x86 아키텍처에 최적화된 기술이다 .?