5. Cloud computing 분류
제공 자원에 따른 분류
IaaS (Infrastructure as a Service)
Host 서비스 :AWS, Azure
PaaS (Platform as a Service)
Build 서비스: 세일즈 포스닷컴
SaaS (Software as a Service)
consume 서비스: 웹메일
구축 방식에 따른 분류
public cloud
private cloud
hybrid cloud
6. Cloud computing 기술
가상화
서버 , 데스크톱 , 스토리지
대규모 분산 병렬처리
하둡 맵리듀스
분산 데이터 저장관리
정형 데이터, 비정형 데이터
오픈 인터페이스
RESTfull API, SOAP
프로비저닝/자동화 도구
open api
네트워크 가상화/미터링
openflow, sflow, NetFlow
보안
방화벽, VPN, IPS
7. 서버 가상화
전가상화 (full virtualization)
하드웨어를 완전히 가상화 한다.
호스트 OS
게스트 OS 게스트 OS
Hypervisor
하드웨어
H/W제어
전달
H/W제어
H/W제어 요구
9. 가상화 방식
Hypervisor
호스트 컴퓨터에서 다수의 OS를 동시에 실행하는 플랫폼
종류
네이티브 (베어메탈) 방식
하드웨어 위에서 게스트 OS를 제어
citrix의 xen, vmware ESX, MS Hyper-V
호스티드(Hosted) 방식
일반 프로그램과 같이 OS안에서 실행되고 게스트 OS는
우선순위가 3번으로실행
vmware server/workstation/fusion
10. 가상화 오픈소스
Hypervisor
Xen : 반가상화 방식
게스트 OS : 리눅스/NetBSD/FreeBSD, 솔라리스/윈도우
KVM : 전가상화 방식
게스트 OS : 미수정된 리눅스/윈도우/맥 OS X
오라클 VirtualBox: 반가상화 방식
Hypervisor 관리도구
Libvirt
Virt-Manager
oVirt
11. Hypervisor로 게스트 OS 설치방식
Hypervisor
• Cpu core 수
• Memory 사이즈
• Disk 사이즈
• Network 설정
OS
이미지
게스트 OS
12. KVM 서버 가상화 아키텍처
Hypervisor
관리도구
리눅스 호스트(도메인 0)
노드(서버)
Hypervisor
도메인
(게스트
os)
도메인
(게스트
os)
Hypervisor 관리도구
(Libvirt)
13. 서버 가상화 도구
주요 기능
가상화 대상 host장치관리
가상머신에 사용할 이미지 관리
사용자관리
가상머신 라이프사이클 관리
출처 openstack.org
17. 네트워크 가상화
다수의 물리적 자원을 하나의 논리적 장치로 사용
router, 방화벽, 스위치
관련 기술
OVS (open vSwitch)
SDN (Software Defined Network) : openflow
VPN (virtual Private Network)
VLAN (Virtual LAN)
18. 네트워크 가상화
OVS(Open vSwitch)
물리서버
vm
가상 네트워크
카드
vm
가상 네트워크
vm
Distributed virtual switch(OVS)
Hypervisor
카드
물리서버
가상 네트워크
카드
vm
가상 네트워크
Hypervisor
카드
22. Cloud 기술의 Orchestration 개발
서버 가상화
workflow 자동화, 모니터링 지원
네트워크 가상화
ACL rule 관리, 패킷 사용분석
Storage 가상화
확장 가능한 storage 제공
23. Ncloud Logical architecture
VM VM VM
…
VM network switch
Pool
workflow
Agent
Hypervisor
iSCSI initiator
Workflow 엔진
…
프로비저닝 워크플로우 수행
Block Storage Pool
…
모니터링 서버
iSCSI
Public IP
Load Balancer
관리
Physical
network switch
VM마다 모니터링
Agent를 탑재
Workflow
처리
24. Open source - 서버가상화
KVM : 전가상화 Xen : 반가상화
Hypervisor
Hardware
게스트
os
Hypervisor wit Dom 0
Hardware
Application
게스트
os
Native OS
게스트
os
게스트
os
게스트
os
게스트
os
제약 CPU에서 HVM 지원 제약 OS 패치 필요
25. Open source - 네트워크
SDN (openflow)
SDN
컨트롤러
a
p
i
OpenFlow
스위치
NOX : C++
POX : Python
Floodlight : java
OpenDaylight : java
패킷 In 패킷 Out
26. Open source - 네트워크
NOX
C++ API, openflow 1.0지원, async IO
POX
Python API, 주로 연구용으로 사용
Switch
Controller
패킷처리
Features 요구
Features 응답
Configure 셋팅
Port Status 응답
패킷 IN
패킷 OUT
Flow 변경시 Rule 전송
Flow-Expired : flow entry 삭제
연결
Controller와 switch 의 flow 처리
27. Open source - 네트워크
Floodlight
java 기반, Apache 라이선스, Big Switch제공
OpenStack Quantum 지원
3가지 방식 API 제공 (REST, Module, OpenStack)
참조 projectfloodlight.org
28. Open source - 네트워크
OpenDayLight
Cisco SDN 관련 ONE Controller 기부로 시작(2014.4)
EPL 라이선스, openflow 1.0&1.3 지원
참조 opendaylight.org
30. Cloud 도입이 필요한 경우
탄력적 확장
자원이 필요한 만큼 동적으로 확장/축소
메저드 서비스(Measured Service)
사용자가 사용만큼 모니터링 후 과금
온디맨드 셀프 서비스
관리자의 개입 없이 사용자 필요에 의해 자원을 사용
유비쿼터스 네트워크
네트워크를 통해 다양한 디바이스로 접근
리소스 풀링
중앙에 집중된 자원을 멀티테넌시 방식으로 독립적 사용
31. Cloud 도입 사례
영화 아바타
3D 촬영 파일, 특수효과 파일를 위한 대용량 저장소
최소 2PB, 여러회사간 실시간 협업, 작업이 후 서버 불필요
뉴욕 타임즈
130년 분량의 신문기사 스캔 -> 분산저장-> PDF 전환작업
본사 서버 작업 14년 예측 > 클라우드로 몇일만에 처리
도미노 피자
이벤트 발생(슈퍼볼, etc)시 웹 사이트 주기적 다운
수요 예측이 불가능한 이벤트는 클라우드로 자동확장
다임러
SaaS 서비스로 임직원 이메일, 협업 서비스 사용
아마존
자사 아마존 서비스를 AWS를 이용해 활용
32. Cloud 도입 고려사항
비용
cloud 서비스에서 네트워크 비용이 생각보다 높음
AWS는 다른 Region에 존재하는 서버간 통신도 비용 지불
확장
IDC 장애를 대비한 타IDC 또는 타 cloud로 확장 가능한지 여부
다양한 API를 제공해서 타 cloud와 연계가 가능한지 여부
응답속도
해외 cloud들의 응답속도는 균일하지 못한 경우도 발생
국내 cloud들은 해외에서 접속 응답속도가 문제됨
33. Cloud 권장적용
일부 서비스 우선 적용
중요도가 낮은 서비스 선 적용 후 cloud 경험 축척
실시간 분석
대용량 data에 대해서 대규모 H/W로 분석
대량의 미디어 서비스
대용량 스토리지 + 대규모 트래픽 예상
다중 Device 지원
pc, 스마트폰, tv 등 다양한 기기에 대한 확장 필요
글로벌 서비스
해외 시장 개척을 위한 기반이 필요한 경우
34. Cloud 활용
템플릿 이미지
public cloud는 대부분 개인 이미지 생성을 지원
모니터링&오토 스케일링
일정 수준의 사용량 도달시 알림으로 인지+자동 증설
캐시
CDN, 캐시 서버등 빠른 응답 지원 기능활용
Hybrid cloud
중요한 자원에 대해서는 private으로 외부지원은 public
확장준비
가상 : cpu 사용률이 60% +2분 이상시 자동확장 준비
DB 종속성 분리 고려 (CDN, NoSql)
로그 및 증가되는 data는 분산 스토리지에 저장
이미 생성한 OS 이미지(linux, windows, ubuntu)와 게스트 OS에 할당할
Cpu core수, Memory/Disk 사이즈 결정하고 네트워크 설정을 셋팅해서
게시트 OS를 설치한다.
대표적인 서버가상화 도구로 오픈스택의 노바와 오픈네뷸라 커뮤니티의 오픈네뷸라가 있음
오픈스택은 크게 compute, Networking, Storage로 구성되어 있음
오케스트레이션 : Heat
Dashboard : Horizon
Compute : Nova
Network : Neutron
Block Storage : Cinder
Image : Glance
Object Storage : Swift
Authenticate & Identity : Keystone
Cellometer : 미터링
IceHouse 버전에는 Trove 라는 데이터베이스 서비스가 추가됨
최상위 : Horizon
Swift
Glance
Nove
Cinder
Neutron
Keystone
Nova-api 데몬은 : openstack의 Nova에서 가장 중요한 controller, 모든 작업을 처리
Nova-schedule : 오픈스택의 가장 심플한 컴포넌트, 이름만 봐선 작업 순서를 스케쥴링을 처리하는것 같지만 공간 스케쥴링을 처리하고 있음
vm이 구축될 PM를 선택하는 일을 처리
Nova-compute : vm을 관리하는 데몬, start, stop, restart, volume attach/detach, 콘솔화면 출력 처리
Nova-volume : vm에 볼륨을 붙이거나 떼어내는 작업처리 ( iSCSI 등 사용),
Nova-network는 네트워크와 관련된 요청을 처리한다. Iptables 룰변경 브릿지 인터페이스 설정등…
Nova 설치를 위해서는 다음과 같은 패키지와 라이브러리가 필요
RabbitMQ : 메시지 큐처리
OpenLDAP : 사용자 정보 데이터베이스로 사용
Redis : 구성요소와 리소스 상태 정보를 저장
Nginx : 웹서버
M2Crypto : opens니 파일썬 인터페이스 라이브러리
Curl : URL 기반은 원격지 파일 접근시 사용
Tornado : API서비스를 위한 Non Blocking 웹서버
Boto : AWS 파이썬 API
Ipy : ip 주소 관리를 위한 라이브러리
Euca2ools : AWS ec2-tools와 ami tools 도구
OVS는 분리된 물리서버간에도 서로 가상의 인터페이스를 이용해서 같은 switch를 공유하는 것처럼 인지할 수 있다
오픈스택은 네트워크 모드를 3가지로 사용
플랫모드
-> vm이 사용 가능한 IP를 서브넷 범위 안에서 직접 vm에 설정하는 방식
플랫 DHCP모드
-> DHCP서버를 통해서 서브넷 범위안의 ip를 할당 받는 방식
VLAN 네트워크 모드
-> L2 Switch에서 VLAN태깅을 지원해서 가상의 네트워크를 구성하는 방식
Layer1 : 포트 단위
-> 스위치 포트별로 VLAN 번호를 할당하는 방법
-> 구성하기 용이하고 이해하기가 쉽다 사용자의 포트를 다른 스위치로 이동할 경우 VLAN 을 다시 구성해야됨
Layer2 : MAC 주소기반
-> VLAN을 사용하는 서버의 Mac address를 기반으로 구성
-> VLAN번호를 맥주소로 지정해서 할당하는 방법
Layer3 : 프로토콜
-> 프로토콜별로 서로다른 VLAN을 구성하는 방법
-> 모든 패킷을 분석해야되서 비효율적
Layer3 : 네트워크주소
-> MAC 방식와 동일하고 mac 주소대산 ip주소를 이용
IP서브넷 기반
-> 네트워크 IP 서브넷이 VLAND을 구성하는 데 사용
다중 VLAN : 위 방식을 혼합
-> VLAN 구성방식을 혼합애서 사용, MAC기반과 port기반을 혼합해서 특정 vm은 mac , 다른 vm은 port로 설정하고 동일한 vlan으로 구성