Presentation is loading. Please wait.

Presentation is loading. Please wait.

클라우드 컴퓨팅 구현 기술 1장 클라우드의 출현 안 현 2011-02-21.

Similar presentations


Presentation on theme: "클라우드 컴퓨팅 구현 기술 1장 클라우드의 출현 안 현 2011-02-21."— Presentation transcript:

1 클라우드 컴퓨팅 구현 기술 1장 클라우드의 출현 안 현

2 인터넷 서비스 업체의 성공 구글 – 검색, 아마존 – 도서 판매, 세일즈포스닷컴 – CRM
전 세계 인터넷 사용자를 대상으로 하는 서비스 제공 자체 서비스를 위한 대규모 인프라가 구축돼 있으며, 이를 효율적으로 관리 하기 위한 많은 기술과 노하우를 보유

3 인터넷 서비스 업체의 성공 구글 아마존 세일즈포스닷컴
수십만 대 이상의 서버 관리 기술, 수십 페타바이트의 데이터 저장, 분석 기술 보유 메일, 일정, Docs 등과 같은 일반 사용자가 사용하는 클라우드 기반의 서비스 제공 엡엔진 클라우드 기반의 플랫폼 서비스 제공 아마존 가상 머신, 스토리지 등 클라우드 인프라 자원 서비스 세일즈포스닷컴 기업 대상 CRM 웹 애플리케이션 서비스

4 아마존의 인프라 서비스 온라인 서점 판매 서비스 특성상 주말, 특정 시간에 사용자 접속이 집중
전통적인 방법에 따라 집중 시간대에 대비한 서버, 네트워크 자원의 준비 평소 시간대의 자원 활용도가 낮음 여유 자원을 외부에 제공하는 서비스의 시작 일반적인 시스템을 구성하는 인프라 자원 물리적인 서버, 네트워크, 데이터베이스, 스토리지 등 부가적인 로드밸런서, 도메인 서버, 메시징 큐 등 하드웨어를 이용한 시스템 통합은 유연성이 떨어짐 인프라 자원들이 결합해 애플리케이션이 수행됨 하드웨어를 이용한 통합은 유연성이 떨어져 특정 상황에 기민하게 대처하기 어렵다. 특정 서비스에 사용자가 집중되어 서버에 과부하가 걸린 상황에서, 하드웨어를 이용한 통합에서는 문제를 해결하기 위해 추가 하드웨어의 구매나 임대가 필요하거나 서버에 로드밸런서(하드웨어) 추가하는 작업을 통해 문제를 해결한다.

5 아마존의 인프라 서비스 AWS (Amazon Web Service) 아마존에서 제공하는 통합된 형태의 인프라 클라우드 서비스
기존의 하드웨어 기반의 시스템 인프라를 소프트웨어 기반의 서비스 형태로 제공하는 특징 클라우드 컴퓨팅의 인프라 서비스(IaaS)의 시작 물리적인 서버 자원을 가상 머신이라는 소프트웨어로 표현 로드밸런서 등록 등과 같은 작업은 가상 머신이 실행됨과 동시에 자동으로 수행 (오토 스케일링 서비스) [1.4]아마존 AWS 서비스에서는 서버 자원도 EC2 서비스에서 제공하는 가상 머신이라는 소프트웨어이다. 따라서 보유 서버 중 여유가 있는 서버에 부하가 발생한 서비스를 제공하는 가상 머신을 실행하기만 하면 된다.

6 아마존의 인프라 서비스 아마존 AWS 서비스 구성 컴퓨팅 서비스(EC2, Elastic Cloud Computing)
가상의 서버를 제공하는 서비스 (수 분 내에 시작 가능) 비용은 서버 사용 시간에 따라 지불 심플DB SQS Queue 가상 프라이빗 클라우드 EC2 오토 스케일링 Elastic 로드밸런싱 워치 블록 스토리지 심플 서비스 맵리듀스

7 아마존의 인프라 서비스 아마존 AWS 서비스 구성 EC2 부가 서비스
오토 스케일링(Auto Scaling) – 등록된 룰에 따라 자동으로 서버가 생성,제거되는 서비스 Elastic 로드밸런싱(Elastic Load Balancing) – 소프트웨어 로드밸런서를 제공 심플DB SQS Queue 가상 프라이빗 클라우드 EC2 오토 스케일링 Elastic 로드밸런싱 워치 블록 스토리지 심플 서비스 맵리듀스 [2.1] 오토스케일링을 통해 사용량에 따라 자동으로 가상 서버의 대수가 조절되며 로드밸런싱이 이뤄진다.

8 아마존의 인프라 서비스 아마존 AWS 서비스 구성 EC2 부가 서비스
클라우드 워치(Cloud Watch) – 모니터링 정보를 조회할 수 있는 화면고 API제공 Elastic 블록 스토리지(Elastic Block Storage) – 가상 머신에 마운트해 사용 Elastic 맵리듀스(Elastic Map&Reduce) – 대규모 분산처리 심플DB SQS Queue 가상 프라이빗 클라우드 EC2 오토 스케일링 Elastic 로드밸런싱 워치 블록 스토리지 심플 서비스 맵리듀스 Elastic 맵리듀스는 대규모 분산처리를 위한 처리 알고리즘으로, 하나의 큰 작업을 여러 단위의 작업으로 쪼갠후 (Map) 분산된 노드에서 각자 처리한 후 처리 결과를 하나로 모으는 (Reduce) 작업을 통해서 처리시간을 향상 시키는 기법이다. 주로 검색 결과 분석을 위해서 많이 사용되는데, 대표적인 오픈소스 구현으로는 Hadoop이 있다. Map & Reduce를 실제 구축하기 위해서는 많은 수의 CPU와 고성능 IO를 지원하는 분산 파일 시스템이 필요하기 때문에 클라우드 시나리오에 매우 적절한 모델이며 주로 수학적인 계산등이 필요한 과학/계산 애플리케이션에 많이 활용될 수 있다.

9 아마존의 인프라 서비스 아마존 AWS 서비스 구성 스토리지 서비스 (S3, Simple Storage Service)
대규모 스토리지를 제공하는 서비스 첨부파일, 웹의 이미지 파일, 데이터 파일 등을 저장하는 용도 심플DB SQS Queue 가상 프라이빗 클라우드 EC2 오토 스케일링 Elastic 로드밸런싱 워치 블록 스토리지 심플 서비스 맵리듀스

10 아마존의 인프라 서비스 아마존 AWS 서비스 구성 데이터베이스 서비스 (Simple DB)
대용량 데이터베이스를 제공하는 서비스 관계형 데이터베이스가 아닌 자체적으로 개발한 데이터베이스 심플DB SQS Queue 가상 프라이빗 클라우드 EC2 오토 스케일링 Elastic 로드밸런싱 워치 블록 스토리지 심플 서비스 맵리듀스 [2.2] 기존의 오라클, MySQL과 같은 관계형 데이터베이스가 아닌 AWS 서비스에서 자체적으로 개발한 데이터베이스이다.

11 아마존의 인프라 서비스 물리적 구성과 AWS 서비스 매칭 일반적인 시스템 구성 트래픽 방화벽 로드밸런서 (L4) 서버
데이터베이스 (오라클 등) 스토리지 (SAN, NAS) 백업 도구 (테이프, 디스크 어레이) 모니터링 도구 AWS 서비스를 이용한 시스템 구성 트래픽 시큐리티 그룹 Elastic 로드밸런싱 EC2 인스턴스 심플 DB S3 클라우드 워치 오토 스케일링 아마존 서비스를 사용하지 않는 일반적인 물리적인 시스템 구성과 아마존 AWS에서 제공하는 서비스를 매칭시켜보면 그림과 같다.

12 아마존의 인프라 서비스 AWS와 아마존 쇼핑 사이트 트래픽 비교

13 구글의 컴퓨팅 인프라와 플랫폼 서비스 창업 초창기의 열악한 하드웨어 환경
안정적인 서비스를 운영하기 위한 소프트웨어 집중 개발 1조개 이상의 웹 페이지를 관리하기 위한 수십만 대 이상의 리눅스 서버(x86)를 운영 유닉스나 메인프레임에 비해 안정성이 떨어지는 하드웨어의 문제점을 소프트웨어로 해결 축적된 기술과 노하우가 클라우드 컴퓨팅에 성공적으로 적용됨 구글 내부 시스템을 구성하는 시스템 소프트웨어의 대한 일부 논문 공개 내부 시스템을 복제해 구현하기 위한 오프소스 프로젝트 (하둡) [1] 초창기 구글은 장비 구축에 필요한 비용이 없어 자신의 PC와 대학의 연구소 장비를 사용 [1.1]PC급에 사용되는 디스크와 언제 셧다운될지 모르는 원격에 있는 다른 서버들을 이용해 안정적인 서비스를 제공하려면 서버와 네트워크 등의 장애 상황을 일반적인 상황을 간주하고 소프트웨어를 개발해야만 했다.

14 구글 내부 시스템 소프트웨어 구글 파일 시스템 구글 맵리듀스 빅테이블
수천 대 이상의 분산된 서버를 이용해 수십 페타바이트 이상 대규모의 파일을 저장할 수 있는 파일 시스템 파일의 복제본을 자동 관리 구글 맵리듀스 대용량 처리를 수행하는 배치 작업을 수행시키고 관리하는 프레임워크 주로 구글 파일 시스템에 저장된 데이터를 분석 빅테이블 구글 파일 시스템상에서 운영되는 분산 데이터베이스 시스템 관계형 데이터 모델이 아닌 빅테이블 자체에서 정의한 데이터 모델 기반 [1.2] 장애 상황에 취약한 x86장비의 로컬 디스크를 이용하므로, 파일 유실을 방지하기 위해 파일의 복제본을 자동으로 관리해준다.

15 구글 내부 시스템 소프트웨어 쏘즐(Sawzall) 처비(Chubby) 프로토콜 버퍼
스크립트 기반으로 간단하게 맵리듀스 프로그램 작성을 지원 처비(Chubby) 분산 락 시스템 분산된 서버 사이에서 발생하는 자원에 대한 공유 문제를 해결 프로토콜 버퍼 서로 다른 프로그래밍 언어나 플랫폼 간에 데이터 전송, 교환을 위한 프로토콜 표준 플랫폼

16 구글 내부 시스템 소프트웨어 구글의 시스템 소프트웨어 구성 대용량 분석 프로그램 인터넷 서비스 쏘즐 맵리듀스 빅테이블 처비
구글 파일 시스템 처비 구글 리눅스 구글 하드웨어

17 구글 내부 시스템 소프트웨어 구글 인프라 시스템의 기본 요건 구글 앱엔진(AppEngine)
컴퓨팅 리소스(서버)나 스토리지(디스크)같은 자원을 추가, 삭제할 때 기존 프로그램을 변경하지 않거나 최소화돼야 함 장애 발생 상황을 바로 인지해 관리자의 개입 없이 자동으로 복구 처리해야한다 서비스는 중단없이 제공 가능해야 함 클라우드 컴퓨팅의 시스템 요건과 동일 구글 앱엔진(AppEngine) 구글이 보유한 인프라 기술과 서버를 이용한 외부 개발자가 개발한 애플리케이션을 실행할 수 있는 플랫폼을 제공하는 클라우드 서비스 [1.1] 시스템의 확장성 부분 [1.2] 시스템의 안정성 부분

18 구글 앱엔진 인터넷 서비스의 개발,배포,운영 과정
로컬 환경에서 아파치 웹서버, 톰캣 웹 애플리케이션 서버, PHP등을 이용해 개발한다. 개발에 필요한 데이터베이스도 로컬에 설치하거나 원격 개발 서버에 설치해 개발 시 사용한다. 로컬 환경에서 테스트가 완료됐으면 서비스 오픈을 위해 도메인을 확보하고 호스팅 업체를 통해 서버 호스팅을 구매하거나 웹 호스팅 서비스를 신청한다. 테스트한 프로그램을 구매한 서버나 웹 호스팅 계정으로 업로드하고, 웹서버, 애플리케이션 서버 등과 같은 소프트웨어를 설치한다. 데이터베이스가 필요하면 데이터베이스 서버도 구매해 설치한다. DNS 서버에 도메인과 호스트의 IP 정보를 연결해 서비스를 오픈한다. 오픈 후 서비스의 사용량 등을 모니터링하며 사용량이 증가하면 서버를 추가 구매하고 구매된 서버의 로드밸런스를 설정한다. 구글 앱엔진은 3,4,5,6 항목을 지원하며, 별도의 서버 구매, 필요한 소프트웨어 설치 과정 없이 개발된 코드를 바로 배포해 서 비스를 시작할 수 있게 한다. 개발자는 구글이 제공한 개발 도구와 API를 통해 애플리케이션을 개발한 후, 로컬 개발 장비에서 테스트를 수행후, 엡엔진에서 제공하는 명령어를 이용해 개발한 프로그램을 앱엔진으로 배포만 하면 바로 서비스가 시작 가능 (물리적인 서버, 아파치 웹서버, 톰캣, 데이터베이스와 같은 인프라, 플랫폼에 해당하는 부분은 앱엔진 내에서 자동으로 처리)

19 구글 앱엔진 엡엔진 관리 화면 개발자는 구글이 제공한 개발 도구와 API를 통해 애플리케이션을 개발한 후, 로컬 개발 장비에서 테스트를 수행후, 엡엔진에서 제공하는 명령어를 이용해 개발한 프로그램을 앱엔진으로 배포만 하면 바로 서비스가 시작 가능 (물리적인 서버, 아파치 웹서버, 톰캣, 데이터베이스와 같은 인프라, 플랫폼에 해당하는 부분은 앱엔진 내에서 자동으로 처리)

20 구글 앱엔진 엡엔진의 단점 자바, 파이썬으로 개발된 코드만 실행 가능 일부 기능의 제한 ex) 파일 생성,삭제, 소켓, 스레드
범용적인 애플리케이션을 운영하기 위한 문제 해결 필요 [1] 클라우드에서의 플랫폼 서비스는 서비스 제공자에 의해 정해진 프로그램 모델에 의해 개발된 코드만 실행할 수 있다는 한계 구글이 클라우드 컴퓨팅 분야에서 주요 업체로 주목받는 이유는 x86기반으로 서버 풀, 분산 스토리지, 분산 데이터 관리 시스템 등과 같은 분산 아키텍처 기반으로 클라우드를 구축해 안정적인 서비스를 운영할 수 있는 기술과 노하우를 갖고 있기 때문이다. 이런 기술을 기반으로 해 이미 지메일, Docs, 캘린더 등과 같은 일반 사용자를 대상으로 한 클라우드 서비스와 웹 애플리케이션을 쉽게 운영할수 있는 플랫폼 서비스를 제공하고 있다.

21 세일즈포스닷컴의 소프트웨어 서비스 인터넷 기반의 CRM (Custom Relational Management) 서비스
동일한 소프트웨어 인스턴스로 각 회사의 요구 사항에 맞는 기능을 제공하는 멀티테넌시(Multi-Tenancy) 개념 적용 AppExchange 세일즈포스닷컴의 앱스토어 CRM 서비스나 관련 서비스들이 운영되는 환경에서 실행되는 기업용 애플리케이션이 대상 force.com 세일즈포스닷컴에서 제공하는 플랫폼 서비스 기업 애플리케이션 개발 환경 [3] force.com을 이용해 만든 애플리케이션은 AppExchange를 통해 판매가 가능하다. 세일즈포스닷컴이 아이디어 공유 공간, 개발 환경, 마켓플레이스 등 개발과 이용, 거래를 위한 통합적인 공간을 제공함으로써 경쟁력 확보

22 포괄적인 개념으로서의 클라우드 기민한 탄력성 (Rapid Elasticity) 측정 가능한 서비스
필요에 따라 자원의 확장과 감소를 처리할 수 있는 능력 측정 가능한 서비스 자원의 사용량이 실시간으로 수집, 모니터링 가능 온디맨드 셀프 서비스 (On-Demand Self-Service) 클라우드 서비스 관리자의 개입없이 원하는 시점에 서비스를 바로 사용 가능 유비쿼터스 네트워크 접근 네트워크 기반으로 다양한 클라이언트를 통해 서비스에 접속 가능 자원 풀 (Resource Pooling) 물리적, 가상화된 자원은 풀로 관리

23 포괄적인 개념으로서의 클라우드 클라우드는 새로운 개념은 아니지만 이미 존재하던 시스템이 가져야 할 특징들에 대해서 과거보다 훨씬 더 높은 수준을 요 구하는 컴퓨팅 개념이다. 클라우드 컴퓨팅에 대한 정의 클라우드 컴퓨팅은 다양한 클라이언트 디바이스에서 필요한 시점에 인터넷을 이용해 공유 풀에 있는 서버, 스토리지, 애플리케이션, 서비스 등과 같은 IT 리소스에 쉽게 접근할 수 있는 것을 가능하게 하는 모델이다. IT 자원의 배포는 쉽고 빨라야 하며 이를 위한 관리 비용은 최소화 돼야 한다 - 클라우드 컴퓨팅 유즈케이스 그룹 – (Cloud Computing: 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) configurable computing resources

24 클라우드 컴퓨팅의 분류 서비스 전달 방식에 따른 클라우드 컴퓨팅 분류 SaaS (Software as a Service)
별도의 소프트웨어 설치 없이 인터넷을 통한 소프트웨어 이용 소프트웨어를 설치하는 것이 아닌, 서비스 형태로 제공 PaaS (Platform as a Service) 애플리케이션 또는 서비스가 실행되는 실행 환경을 제공하는 플랫폼 서비스 구글 앱엔진 IaaS (Infrastructure as a Service) 서버, 스토리지, 데이터베이스 등과 같은 인프라 자원을 서비스 형태로 제공 아마존 AWS (EC2, S3) 어떤 서비스를 제공하느냐에 따라 분류

25 클라우드 컴퓨팅의 분류 서비스 배치 방식에 따른 클라우드 컴퓨팅 분류 퍼블릭 클라우드 프라이빗 클라우드 하이브리드 클라우드
인터넷에 접속 가능한 모든 사용자를 위한 클라우드 서비스 프라이빗 클라우드 특정 기업이나 특정 사용자만을 대상으로 하는 클라우드 서비스 퍼블릭 클라우드의 일부 기능 제한 하이브리드 클라우드 퍼블릭 클라우드와 프라이빗 클라우드를 병행해 사용하는 방식 클라우드 서비스를 위한 자원을 어디에 배치시키고 누구를 위해 서비스 할 것인가에 따라 분류

26 Q & A

27 Backup Slide

28 부록 ASP (Application Service Provider)

29 뉴욕타임즈의 클라우드 컴퓨팅 활용 사례


Download ppt "클라우드 컴퓨팅 구현 기술 1장 클라우드의 출현 안 현 2011-02-21."

Similar presentations


Ads by Google