예전에는 홈페이지 만들려면 LAMP라고 서버에 리눅스 깔고 아파치 깔고, MySQL 깔고. PHP 깐 다음!
드디어 웹 프로그래밍이 가능하게 되었음.
그런데 아마존에 EC2라는 서비스를 가보면.. 계정 이름에 비자 카드만 등록한 다음 인스턴스를 만들어서
LAMP xml 스크립트 검색해서 시작해달라고 하면? 1분 내에 DNS 까지 만들어져서 서버가 돌아감.
이 다음 바로 php, 파이썬을 개발해서 올리면 바로 서비스를 시작하는 단계로 가게 됨.
이것이 바로 클라우도 컴퓨팅의 힘.. 다 썼다고 생각하면 terminate 하면 꺼졌음... 서버 꺼진 것 처럼.ㅎ
사실 지금까지 뒷단에서 처리해줘야하는 많은 것들을 지금은 몇번의 클릭으로 해결이 됨.
서버도 아까 런치 저보 입력할 때 1이 아닌 100 쓰면 서버가 100개 가동이 됨.. 이것이 클라우드 컴퓨팅의 힘!!
이제 보셨으니 기본적인 클라우딩 컴퓨팅의 이야기 드리겠음.
<배경: 컴퓨팅패러다임의 변화>
1800년대마다 해도 전기를 각 기업마다 수차를 가지고 해서 직접 발전해서 사용을 했음.
그런데 이것을 불과 20~30년 만에 파워 플랜트를 갖추고 파워 그리드를 곳곳에 설치해서 쓰게 되었고 이제 집마다 코드만 꼿으면 전기를 쓸 수 있게 되었음.
전기가 이런 것처럼 데이터 센터도 같이 되게 될 것이라는 것이 핵심.
지금 각 기업마다 기업만의 데이터 센터를 가지고 있고, 기업 마다 자료를 모두 몰아놓고 쓰고 잇는데.. 이것이 전기처럼 몇 개의 컴퓨팅 글라우드 센터에 모이고 인터넷을 통해 연결되게 될 것이라는 것..
또한 기업 뿐만 아니라 개인들도 더미 단말과 세톱박스만 가지고 있으면 집에셔 연결해서 쓸수있다는 것.
컴퓨팅 자원 수요 방식의 변한 것.
인터넷 기반 서비스가 많이 변화가 되었음.
예전에 웹 서비스가 많이 등장했어도 잘 안되었던 것이 인터넷의 속도가 느려서 로컬 서비스보다 느려서 잘 안되었음.
너무 이르게 나왔던것.. 하지만 이제 충분히 되서 활용할 수 있게 됨.
기업의 모든 인프롸 환경을 On Demand로 제공을 해주는 것.
그리고 쓴 만큼 돈을 내는 방식으로 가게되는 것.
As a service로.. 방금 전 아마존에 서버를 쓰기 위해 전화, 이메일 보낼 필요없이 로그인해서 웹 베이스로 하거나 프로그래밍으로도다 가능흘 하도록 해주는 것.
그래서 언제 어디서나 어떤 디바이스로도 서비스를 할 수 있게 되는 것.
Cloud Computing의 개념은 2002년 구글에서 회의하다가 나왔다고 하는데.. 우리나라는 올해 초부터 각광을 받기 시작했음.
가트너가 뽑은 2009년 핵심 키워드 1위는 가상화, 2위가 클라우드 컴퓨팅.
<클라우드 컴퓨팅의 특장점>
예전에 직접 데이터 센터를 만들려면.. 과거는 100억불 들었는데 이제 10억불이면 가능.
규모의 경제가 갖추어졌기 때문.. 전기와 마찬가지.. 각자 하는 것보다 몰아서 하면 싸다.
선투자 비용이 없어짐.. 인프라 구축을 위해 미리 투자할 필요없이 필요하면 아마존에서 100대 받아 쓰고 다 썼으면 반납 하면 됨.
확장성 측면에도 On Demand로 무한 확장이 가능함.
유명한 서비스는 인기를 끌면 트레픽이 갑자기 늘어나느데 이 때도 Scalability를 확보할 수 있다고...
또한 인프라를 확장성 있게 만드는데 고민을 많이 해야 하는데 아마존과 구글이 바로 해결해줘서 time to market을 제공해줄 수 있음.
<클라우드 컴퓨팅이 경제학>
1000 대 기준으로 구입을 할 때 관리 비용, 서버 구입 비용 다 포함하면 5~7배 정도 더 싸게 할 수 있다. (2006년 기준)
1달러를 가지고 구입할 수 있는 자원의 양을 2006, 2008년 그리고 아마존에서 구입할 때의 비용을 나타낸 표.
게다가 기업에서는 유틸라이제션을 잘 쳐줘서50% 주면.. 비용이 2배로 뜀. 쿨링과 구매 관리 비용까지 합치면4배 넘게 뜀.
(왜냐면 최대 피크 상태를 대비해서 데이터 센터를 만들기 때문에..)
<업게 동향>
국내는 이제 인기를 끌고.. 외국은 인터넷 서비스 업체가 다 뛰어들었고.. 통신회사들이 관심이 많음.
SK와 KT도 내부적으로 시작을 했고.. 삼성도 엔드 유저 관점에서 노키아에서 하는 서비스 개발 중.
<클라우드 컴퓨팅 분류>
크게 보면 Public Cloud와 Private Cloud로 나눌수 있어.
Public은 누구나 돈을 내면 쓸 수 있는 것이고.. Private는 기업이 내부적으로 꾸미는 것.. 정보를 외부에 내주기 싫어서.
Private는 Enterprise Cloud Computing이라고불리기도 함.
그리고 여기서 다시 3 레이어로 나눌 수 있음.
Cloud Infrastructure: 말 그래도 인프라만 제공해 주는 것.. root 권한 주고 시스템을 직접 제어하는 것.
Cloud Platform: 개발 환경까지 제공해주는 것.. 자바, 파이썬 환경과 SDK까지.. 대신 직접 자원을 컨트롤 하는 권리를 배앗아감.
Cloud Services/Application(Sass): 구글 엡스, 에플 모바일 등.. 서비스를 가져다 쓰는 것. 개발자가 들어가 뭘 할 수 있는 여지는 없어..
지금 가장 이슈를 받는 부분은 Cloud Infrastructure. 아마존이 이미 성공을 해서 따라서 하고 있음. 그러나 점점 위로 올라올 것.
서비스를 개발할 때 내가 신경 써야할 부분들이 적어지고.. 개발자는 고민 없이 설정만 해주면 바로 서비스가 튀어나오게 되는 것.
이런 것들을 지원하기 위한 소프트웨어들이 이미 많이 나오고 있어.
<Public Cloud Players>
아마존, Right Scale AT&T, Flexiscale 등.. 죄다 외국 회사 국내는 아직 없어.. 조만간 나올 것이라 봄.
<활용 사례>
아마존의 웹 서비스를 빼놓을 수 없음. 아마존의 서비스가 클라우드 컴퓨팅을 만들어내는 장본인.
2002년부터 서비스를 시작했지만 Cloud Infrastructrue는 2004년 부터 오픈...
당시 비즈니스 위크도 비관적이었으나 2007년 손익 분기를 넘었고 2008년은 아마존 자체 트레픽을 넘어섰음.
아마존의 향후 먹거리로 발 돋움하게 된 것.
이제는 데이터 베이스도 만들어서 제공, CDN 서비스, 멥리듀스(분산처리 서비스)도 지원하면서 인프라를 확장 중.
S3라는것이 스토리지 서비스인데 1달 1기가 쓰는데 15센트 임.
EC2 1시간 쓰는데 10센트.. DB는 조금 도 코스트가 들기는 함..
그래도 여러가지 테스트 하고 써도 1달에 1만원 넘기기 힘들어.
외국에서 많은 서비스들은 실제로 아마존에서 돌아가고 있엄.
animoto라는 벤처가 아마존 위에서 서비스를 하고 있었는데 어느날,
2만 5천명에서 3일동안 25만명으로 뛰었는데.. 5일만에 50게 인스턴스에서 4000개까지 늘렸음.
만약 직접 서버를 4천대 사서 싱글로 돌아가게 만든다면 정말 힘든 것...
서비스 하는 쪽에서 이렇게 인프라에 신경을 하나도 안 써도 된다는 것이 최고 장점.
batch 서비스 대표적 사례로 뉴욕 타임즈
1천 1백만 건 기사 Tiff 이미지 스켄한 것을 PDF 변환하는데.. 하루 걸렸음.
소요 비용은 얼마일까요?
Ec2 100개이 인스턴스를 할당 했을 것.. 100대를 회사보고 사주라면 안 사줌.
프로그래밍은 하둡이 MapReduce를 했음..
아마존에 계산기가 있어서 해보면 사용비용이... 1,465불.. 200만원 정도..
보통 이정도면 우리 나라에서 수천에서 수억까지 깨질 수 있음.
그나마도 아마존이 홍보를 위해 지원을 해주ㅕ서 400불에 끝났다고.ㅎㅎㅎ
이런 것이 미국은 매우 실용적이어서 이미 잘 벌여주고 있음.
벤처 시작할 때 하드웨어 다 사지 않음.. 2~3년 후에 나갈 것인데 살 필요가 없는 것. 그래서 아마존 서비스로 많이 들어와 있음.
<Amazon EC2 & S3 기술 구조>
기본적으로 가상화가 핵심.. 컴퓨터 측면에서는 서버 가상화가 기본으로 깔려야 함.
네트웍 층면에서 네트웍 가상화도 들어가 있어야 하고.. XEN을 활용하고 있어.
이제는 테라를 넘어 페타까지 가야 함... 기업에서는 SATA로 컴퓨터 하나 안에서 넣는 것은 불가능.
이것을 네트워크 하드로 묶어서 싱글 이미지로 보이게 해줌. 구글도 이렇게 함.
윗 단에서는 파일 넣으면 적당히 알아서 저장하고 읽으면 잘 찾아서 전송해주게..
오픈 인터페이스 서비스도 중요함.. 여러가지 스타일로 접근이 가능해야 함. SOA, Open API 등이 지원되어야 함.
<Amazon AWs 활용 방법>
처음에는 커멘드 라인 밖에 제공 안했음.그래서 SSH로 접속해서 직접 명령을 해야 했음.
작년 말인가 올해 초에 웹으로 접근 가능한 서비스를 오픈 했음.
HTTP로 바로 접근할 수 있는 프로토콜을 다 만들어 놨음. 파일 하나 마다 URL이 할당되서 접근 가능.
서버 인트턴스도 HTTP로 컨트롤 가능..
서비스 짜다고 트레픽 모니터링 해서 얼마 이상하거나 리스폰스 타임 증가 한 것을 보면 서버 한개 늘려라고 프로그래밍 할 수 있어.
비즈니스 로직과 자원 컨트롤 로직이 프로그래밍 안에서 합쳐질 수 있어.
이런 식으로 무한히 확장이 가능함...
이런 것 때문에 인터페이스 표준화(런 인스터스 등)를 할때 아마존 AWS가 표준으로 자리잡고 있음. First Mover의 장점.ㅎ 이미 많은 것이 개발되어 있어서 호환성을 갖춰줘야 함.
<Google App Engine>
방금전까지는 Infrastructure. 구글에서 자신의 플렛폼에서 개발할 수 있게 내놓은 서비스.
2008년에 나왔고.. 500MB Storage, 10GB Bandiwidth 까지는 공짜.. 가격은 아마존과 동일함.ㅎㅎ
파이썬만 제공했는데 최근 자바 제공했고.. PHP와 루비도 곧 지원..
구글이 얼마전에서는 서버 하드웨어도 오픈을 했음.. 저가의 서버를 묶어서 서비스 하고 있음.
GFS: 분산 파일 시스템
Bigtable: 분산 데이터 베이스
Memcache: 글로벌 메모리 캐시
Python Runtime: 서비스 실행 환경
Service APIs: Account, Image, Mail, URL Retch, Datastore, Memcahce 만들었음.
구글과 아마존 모두 자사 서비스를 하다가 확장성 고민 끝에 나온 것.. 그래서 클라우드 컴퓨팅 기술은 경험이 필요해서 쉽게 따라잡기 힘듦.
프로그래밍 할 때 Hello World출력 예.. 이건 별것 아닌데..
로그인 과정 띄우고 싶으면 user = users.get_current 어쩌고 저쩌고 쓰면 구글 로그인 화면이 자동으로 나타남.ㅎ
Database도 구글이 제공하는 Bigtable 기반의 서비스가 있어.. (구글은 자유를 박탈해서 자원 접근은 못함)
복잡한 쿼리는 하나도 없음.^^;;
서용자들에게 모든 편리한 기능을 제공해주지는 않음.. 제한을 검.
Bitable의 경우는 RDB가 아니라 컬럼기반 DB.. 이것을 효율적으로 쓰게 강제하고 있음.
구글에서 서비스를 만들었는데 구글에서 평생 살 만한 법 없음.
구글에서 잘 되면 자사만의 서버를 만들고 싶게 됨... 그런데 그럴 수 없음. 서비스와 데이터가 락인이 됨.
아마존은 버추얼 머신과 이미지라서 파일로 떠서 옮길 수 있음. 그러가 구글은 개발환경까지 다 제공하다보니 구속될 수 밖에 없어.
그래서 비즈니스 도메인에서 들어가기 두려움.. 구글에서는 망할 일 없지만 벤처에서 시작하는 것은 사용 안함.
올해부터 그래서 이런 것을 어떻게 표준화 할 것이냐가 많이 나오고 있어.
<Cluod Software 사례: Hadoop>
구글이 논문으로 발표한 플렛폼을 그대로 똑같이 구현해 놓은 것.
검색 엔진도 넛치라는 것 개발해서 사용하고 있고.
가장 열정적으로 쓰고 있는 곳이 야후(클러스터 2만대 클러스터 묶어서 검색 서비스 제공 중)
페이숙은 dataware Housing으로 쓰고, IBM은 자신들의 제품에 넣고 있고..
구글 플렛폼과 1대1로 다 매칭이 됨.
오픈 소스 플렛폼이 구글과 아마존과 경쟁 중..
일단 힘을 받게 되면 엄청난 속도로 발전할 수 있다는 것이 오픈 소스의 힘.
하둡도 2년 전부터 이슈를 받아 지금은 굉장히 많이 쓰고 있어.
그래서 주면에 부족한 부분을 다 매꿔주고 있어.. 언젠가는 하둡이 탄탄한 부분을 차지할 것.
<Eucalyptus>
Eucalyptus: UCSB에서 만든 클라우드 컴퓨팅 플렛폼.
클라우딩 컴퓨팅 연구하는데 연구할 소프트웨어가 없어서 연구자들이 가져다 써서 연구할 수 있게 만든 것.
아마존과 구글과 호환되게 다 기능을 갖추고 있음.
굉장히 단 기간에 만든 것. 처음부터 일일이 개발한 것이 아니라 오픈소스 콤퍼넌트 묶어 조합해서 한 것.
이제는 오픈 소스로 많이 있어서 처음부터 다 만드는 것은 어리석은 짓.
대학에선 구글이나 아마존 처럼 몇천대 살 수 없으니 CS에 있는 것 100대, 전자과 50대 묶어서 클러스터 만들게 되기 때문에 중간에서 노드를 관리할 수 있는 컨트롤이 있어..
<기타 사례>
+ Globus (그리드 컴퓨팅이 표준)/ Nimbus 를 클라우드 컴퓨팅으로 뒷 단을 구현할 수 있게 하는 것.
+ Enomalism: 서로 간에 인터퍼로빌리티가 없어서 서로간에 할 수 있는 것을 개발하자.
이것들 말고도 상업용들은 계속 나오고 있고 경쟁을 많이 할 것 같아.
<클라우드 컴퓨팅에서 프로그래밍 한다는 의미>
잘 해봐야 그리드 프로그래밍과 MPI를 써봤을 텐데...
GrepTheWeb을 아마존 플렛폼에서 만들 수 있게 변환한 것의 예.
S3, SQ5(메시지 큐 관리), EC2(멥리듀스 분산 처리), SimpleDB(상태 관리)로 기술 다 써서 구현
이 프로그래밍의 특징은..
+ 굉장히 Loosely Coupled System 따로 제공이 되서 따로 스케일리빌리티가 있고 따로 설정가능.
+ 자원 자체가 줄었다 늘었다 할 수 있고.. 실행 전에는 거의 제로의 인프라 스트럭쳐.. 유저가 늘면 비례해서 늘어남.
+ 여러 콤퍼넌트가 돌아가다가 다운될 수 있음... 아마존도 99.5%만 보장.. 재부팅시 그대로 돌아갈 수 있게 짜야 함.
+ Thinking Parallel: 기존에는 하드웨어를 살 수 없어어 페럴렐 생각을 할 수 없음. 앞으로 논문에서 아마존에서 200대 사서 며칠 실험했다고 써야 할 것. 몇 만원 안드니깐.. 돈 없어서 실험 못했다는 것은 말이 안됨.
+ 이제 Cost-Effectively 하게 코딩을 해야 함.. 쓴 만큼 돈을 내니 프로그래밍 할 때 최소한으로 쓰고 프로그래밍 돌아가게 해야함.
자원에 대한 비용이 고정 비용이 아니라 이제 운영 비용이 되기 때문에. 서버를 어느 순간에 많이 띄울지 고민..
지금 1시간 쓰는데 비용이 다 똑같은데.. 전기 처럼 야간 비용은 싸고 누진세가 있듯이 다음 서비스 제공자들은 가격 정책을 다르게 할 것 같아..
Cost에 베이스해서 프록래밍하는 모듈이안으로 들어올 수도 있어..
<MapReduce 프로그래밍>
개발 단계에서 가장 중요한 이슈가 MapReduce.
분산으로 정보처리를 해서 결과물이 나오게 하는 시스템.
Map으로 분산해서 Sorter가 정렬해서 Reduce가 정리해서 보내 줌.
메시지 페싱 방법으로 짜는 프로그래밍은 안 맞는 부분들이 있어.
구글은 인덱싱 하는 모듈도 쪼개서하고 있고... MapReduce 모듈이 작년에 7천개 였음. 앞으로 이 모듈만 묶어도 프로그래밍 될 것.
<연구 이슈>
성능 개선, 응용 프로그램 개발과 알고리즘 문제.
바틀렉 해결 문제..
바이오 인포메틱스에서 어떻게 구현할까 등 다른 분야에 접목 시킬 이슈.
멥리듀스 자체도 복잡하다..그 위에 또하나의 Abstaction을만들자..
(예: 원본 DNS 시퀀스 전체에서 찾고자 하는 키 시퀀스가 어디에있는지 검색하는 MapReduce로 구현.. -> MR.FLOW 구동 시연)
<클라우드 컴퓨팅의 문제들>
+ 일단은 안정성... 클라우드 컴퓨팅 죽음.. 위키 피디아에 클라우드 컴퓨팅 사건 삭라고 정리 되어 있음. 구글, Gmail 아마존 다 몇 시간씩 죽음 적이 있어.. 아직 안정성을 100% 보장 못함.. 99.999%가 못 되고 있어.
+ 내 데이터를 클라우드에 넣는 것을 꺼려 할 수 있어.. 특히 우리나라 심해서 안됨.. 데이터를 넣더라도 안에 주인이라도 못 보는 기밀성과 고칠 수도 없는 무결성을 제공해줘야 함. 데이터와 서비스에 대한 보안
+ 네트워크 보안이 중요한 이슈.. 지금까지 기업들이 서비스 한 것이 아마존에 다 모여서 이제는 아마존만 공격하게 됨. 더 집중되서 DoS 공격에 취약할 수 있어. 신종 Economy DoS가 나옴.. 각 기업마다 사용 비용 예산 책정하는 것이 있으니 서비스는 중지 안하더라도 트레픽을 쓸데없이 쓰게 해서 비용을 쓰게 만드는 것.
+ 인하우스 시스템과 Integration 되는 것. 모든 정보가
+ 라이센싱 문제도 중요..아마존은 아직 대부분 오픈 소스, 라이센스를 해결할 수 없으니.. MS의 경우 아마존의 경우 MS 서버를 쓰면 가격을 0.02 센트정도를 더 받음.
+ Privacy 문제.
+ Confidence
+ Interoverability
+ 중단되고 망한 사례도 많고.. 망하면서 데이터까지 잃어버리면 큰일 나게 됨. 이런 사례도 있음. 그래서 정부가 정책이 보장하거나 인증해주는 절차가 필요할 수 도. 가장 간단한 방법은 클라우드 컴퓨팅을 이중화 하는 것.. 구글에 일부, 아마존에 일부 등.. 문제는 서로 연동이 안되면 서비스를 따로 개발하는 단점이 있어.
+ 자원이 자연스럽게 넘어갈 수 있게 되어야 함.
+ Cloud Federationr과 SLA 문제 등..
재밌는 이슈: FedExing Disks 문제.. 네트워크로 데이터를 몇 기가 올리려면 며칠 걸리기도 함.. 그래서 페댁스로 보내버리는 것. 이것을 보완한 네트워크 해결책도 나올 수는 있어.
분산 시스템에서 디버깅하는 것.. 정말 어려운 문제.ㅜㅜ
<패타급 클라우드 컴퓨팅 플랫폼 개발>
지경부가 지원해서 올해 시작을 했음.
한국 클라우드 컴퓨팅 연구 조합(KAIST를 비롯 여러 기관 포함) 주도로 페타급 클라우드 컴퓨팅 플랫폼과 클라우드 용용서비스의 개발 및 적용, 테스트벧를 통해 검증하는 과제.
수백 코어 수준에서 만들고 아카데믹 단계에서 클라우드 컴퓨팅 서비스를 제공해 주려고 함.
댓글 없음:
댓글 쓰기