본문으로 건너뛰기

UC 버클리 연구원들이 바라본 클라우드 컴퓨팅

무료2019-08-03#Front-End#伯克利Cloud Computing论文#Berkeley Cloud Computing paper#云计算论文#云计算发展史

10년 전, 이 사람들은 어떤 미래를 예견했을까요?

들어가며

10년 전인 2009년 2월 10일, UC 버클리에서 클라우드 컴퓨팅에 관한 논문을 발표했습니다. 10년이 지난 지금 다시 보아도 여전히 많은 영감을 주는 내용입니다.

Cloud Computing is likely to have the same impact on software that foundries have had on the hardware industry.

파운드리(위탁 생산)가 하드웨어 산업에 미친 영향만큼이나, 클라우드 컴퓨팅이 소프트웨어에 미칠 영향도 지대할 것입니다.

1. 클라우드 컴퓨팅이 왜 미래인가?

클라우드 컴퓨팅이란 무엇인가?

클라우드 컴퓨팅은 인터넷을 통해 서비스 형태로 제공되는 애플리케이션인 이른바 서비스형 소프트웨어(SaaS)와, 이러한 서비스를 제공하는 데이터 센터의 하드웨어 및 시스템 소프트웨어인 클라우드(Cloud)를 모두 지칭합니다.

Cloud Computing refers to both the applications delivered as services over the Internet and the hardware and systems software in the datacenters that provide those services.

클라우드가 일반 대중에게 사용한 만큼 지불(Pay-as-you-go)하는 방식으로 제공될 때 이를 퍼블릭 클라우드(Public Cloud)라고 부르며, 유틸리티 컴퓨팅(Utility Computing) 서비스를 제공합니다. 반대로 일반 대중이 사용할 수 없는 기업이나 조직 내부의 데이터 센터는 프라이빗 클라우드(Private Cloud)라고 합니다.

P.S. 유틸리티 컴퓨팅은 서비스 제공자가 고객에게 온디맨드 방식으로 컴퓨팅 리소스 및 인프라 관리를 제공하고, 고정 요금이 아닌 사용량에 따라 요금을 청구하는 서비스 프로비저닝 모델입니다.

사용자 역할에 따른 관계는 다음 그림과 같습니다.

[caption id="attachment_1992" align="alignnone" width="686"]cloud computing roles cloud computing roles[/caption]

P.S. 물론 SaaS 제공자(SaaS providers)가 동시에 SaaS 사용자(SaaS users)가 될 수도 있습니다.

클라우드 컴퓨팅이 불러온 혁신

클라우드 컴퓨팅의 핵심 이점은 리소스의 탄력적인 프로비저닝(elasticity of resources)에 있습니다. 서버 1대를 1,000시간 사용하는 비용이 서버 1,000대를 1시간 사용하는 비용과 같다는 점에서, 이러한 리소스의 탄력성은 이전에는 볼 수 없었던 것입니다.

Moreover, companies with large batch-oriented tasks can get results as quickly as their programs can scale, since using 1000 servers for one hour costs no more than using one server for 1000 hours. This elasticity of resources, without paying a premium for large scale, is unprecedented in the history of IT.

또한 클라우드 컴퓨팅 덕분에 애플리케이션 제공업체는 자체 데이터 센터를 소유하지 않고도 자사 제품을 SaaS로 배포할 수 있게 되었습니다. 이는 반도체 파운드리의 등장으로 칩 회사가 자체 팹(제조 공장) 없이도 칩을 설계하고 판매할 수 있게 된 것과 같습니다.

Just as the emergence of semiconductor foundries gave chip companies the opportunity to design and sell chips without owning a fab, Cloud Computing allows deploying SaaS—and scaling on demand—without building or provisioning a datacenter.

SaaS가 사용자의 문제 일부를 SaaS 서비스 제공자에게 떠넘길 수 있게 해 준 것처럼, 클라우드 컴퓨팅은 SaaS 서비스 제공자가 안고 있던 문제 일부를 클라우드 컴퓨팅 벤더에게 넘길 수 있게 해 주었습니다.

Analogously to how SaaS allows the user to offload some problems to the SaaS provider, the SaaS provider can now offload some of his problems to the Cloud Computing provider.

한편 하드웨어 관점에서 클라우드 컴퓨팅이 가져온 변화는 다음과 같습니다.

  • 무한한 컴퓨팅 리소스를 온디맨드 방식으로 제공 가능

  • 클라우드 사용자가 리소스를 미리 예측할 필요가 없음

  • 단기 컴퓨팅 리소스에 대해 사용한 만큼만 지불하는 방식 지원

이로써 기업은 아주 적은 투자로 시작하여 실제 필요할 때만 하드웨어 리소스를 추가할 수 있으므로 리소스 활용도를 높일 수 있습니다. 또한 필요에 따라 리소스를 가져다 쓰고 반납하는 방식은 리소스 절약에도 도움이 됩니다.

2. 왜 2009년인가?

클라우드 컴퓨팅의 핵심 원동력은 전기, 네트워크 대역폭, 운영 및 소프트웨어 비용이 저렴한 지역에 대규모 상용 컴퓨터 데이터 센터를 구축하고 운영하여 규모의 경제를 이룬 것입니다.

We argue that the construction and operation of extremely large-scale, commodity-computer datacenters at lowcost locations was the key necessary enabler of Cloud Computing, for they uncovered the factors of 5 to 7 decrease in cost of electricity, network bandwidth, operations, software, and hardware available at these very large economies of scale.

실제로 2000년대 초 웹 서비스가 급성장하기 시작하여 2009년에 이르렀을 때, Amazon, eBay, Google, Microsoft 등 일부 거대 인터넷 기업들은 이미 상당한 규모의 데이터 센터를 보유하고 있었습니다.

Building, provisioning, and launching such a facility is a hundred-million-dollar undertaking. However, because of the phenomenal growth of Web services through the early 2000’s, many large Internet companies, including Amazon, eBay, Google, Microsoft and others, were already doing so.

동시에 이들 기업은 확장 가능한 소프트웨어 인프라(예: MapReduce, Google File System, BigTable, Dynamo 등)와 전문적인 운영 및 보안 매커니즘을 구축해야만 했습니다.

대규모 상용 데이터 센터 운영에 필요한 하드웨어 및 소프트웨어 인프라 외에도 새로운 기술 트렌드와 비즈니스 모델이 중요한 추진력이 되었습니다. 또 한편으로 클라우드 컴퓨팅이 궤도에 오르면 새로운 적용 기회와 사용 모델이 발견되어 클라우드 컴퓨팅의 발전을 더욱 촉진할 수 있습니다.

새로운 기술 트렌드와 비즈니스 모델

Web 2.0의 출현은 하이터치(high-touch), 고마진(high-margin), 고약정(high-commitment) 서비스에서 로우터치, 저마진, 무약정 기반의 셀프 서비스로의 전환을 의미합니다. 예를 들어:

  • PayPal의 등장으로 개인도 계약이나 장기 약정 없이, 단지 소액의 건당 수수료만 지불하면 신용카드로 대금을 받을 수 있게 되었습니다.

  • Amazon CloudFront는 개인이 콘텐츠 전송 네트워크(CDN) 계약 없이도 웹 콘텐츠를 게시할 수 있도록 지원합니다.

  • Google AdSense를 통해 개인 웹페이지 운영자도 광고 노출 대행사와 계약할 필요 없이 광고 수익을 올릴 수 있게 되었습니다.

P.S. 하이터치 서비스란 자판기나 무인 키오스크 등을 이용하는 것과 달리 서비�� 과정에 더 많은 인적 상호작용이 필요한 서비스를 의미합니다.

기술 측면에서는 가상 머신의 출현으로 고객이 원하는 소프트웨어 리소스 스택을 선택할 수 있게 되었고, 하드웨어를 공유하여 비용을 절감하면서도 서로 간섭하지 않게 되었습니다.

새로운 적용 기회

클라우드 컴퓨팅은 다음과 같은 애플리케이션 영역에서 아주 좋은 기회를 제공합니다.

  • 모바일 인터랙티브 애플리케이션: 고가용성 요구 사항과 대규모 데이터 세트 처리를 위한 대형 데이터 센터 의존성 해결

  • 병렬 일괄 처리: 대규모 데이터 일괄 처리 및 분석 작업에 필요한 컴퓨팅 리소스 확보

  • 분석의 부상: 비즈니스 분석(고객, 공급망, 구매 패턴 파악, 랭킹 등)을 위한 대량의 컴퓨팅 리소스 지원

  • 연산 집약적인 데스크톱 애플리케이션 확장: Matlab과 같이 대규모 컴퓨팅 리소스에 의존하는 수학 소프트웨어 활용

또한 데이터 마이그레이션 비용이나 지연 시간 등의 문제로 당장 "클라우드에 올리지 못하는" 애플리케이션("Earthbound" 애플리케이션)도 광대역 데이터 전송 비용과 지연 시간이 줄어들면 향후 클라우드의 탄력성과 병렬 처리의 이점을 누릴 수 있을 것입니다.

3. 유틸리티 컴퓨팅 (Utility Computing)

개발자에게 제공되는 추상화 수준과 리소스 관리 수준에 따라 다양한 유틸리티 컴퓨팅 제품을 구분할 수 있습니다.

Our view is that different utility computing offerings will be distinguished based on the level of abstraction presented to the programmer and the level of management of the resources.

예를 들어 당시에 출시된 여러 클라우드 제품들은 컴퓨팅, 스토리지, 네트워크 리소스에 대해 각기 다른 수준의 가상화를 제공했습니다.

  • Amazon EC2: 물리적 하드웨어와 유사하게 사용자가 전체 리소스 스택을 제어할 수 있는 클라우드 가상 머신(VM) 제공

  • Google AppEngine: 애플리케이션 중심의 실행 환경 제공

  • Microsoft Azure: EC2와 AppEngine의 중간 형태로 .NET 실행 환경 제공

클라우드 제공업체나 사용자 관점에서 볼 때 이러한 유틸리티 컴퓨팅 제품들은 개발자의 편의성, 유연성, 이식성 사이의 트레이드오프(절충안)일 뿐이며 각각 적합한 활용 시나리오가 다릅니다.

4. 클라우드 컴퓨팅 경제학

클라우드 컴퓨팅이 가져온 정교한 경제 모델 덕분에 트레이드오프 결정이 더 유연해졌으며, 특히 클라우드의 탄력성은 리스크를 전가하는 데 큰 역할을 합니다.

We argue that the finegrained economic models enabled by Cloud Computing make tradeoff decisions more fluid, and in particular the elasticity offered by clouds serves to transfer risk.

전형적으로 프라이빗 클라우드보다 유틸리티 컴퓨팅이 유리한 시나리오는 두 가지입니다.

  • 서비스에 대한 수요가 시간에 따라 변하는 경우 (예: 수요가 치솟는 피크 타임 대비)

  • 사전에 수요를 예측할 수 없는 경우 (예: 제품이 갑자기 인기를 끌거나 대규모 사용자가 갑자기 이탈할 때)

첫 번째 시나리오의 경우 비용과 수익 관점에서 다음과 같은 부등식이 성립합니다.

클라우드 사용자 시간 * (시간당 수익 - 클라우드 비용) >= 데이터 센터 사용자 시간 * (시간당 수익 - 데이터 센터 비용 / 평균 활용률)

즉, 클라우드 컴퓨팅 사용 시 기대 수익과 데이터 센터의 평균 활용률을 고려했을 때의 기대 수익을 비교하는 것입니다.

P.S. 평균 활용률이 100%라면 양변이 같습니다. 이론적으로는 가능할지 몰라도 데이터 센터의 가용 용량은 보통 60~80% 수준이므로 현실적으로 서비스 가용성을 보장하기 어렵습니다.

예를 들어 어떤 서비스가 낮 피크 타임에는 500대의 서버가 필요하지만 밤에는 100대만 필요하다면 하루 평균 사용량은 서버 300대 분량이고 총 사용 시간은 300 * 24 = 7200시간입니다. 하지만 피크 수요를 대비하기 위해서는 실제 필요한 양의 약 1.7배인 500 * 24 = 12000시간 분량의 인프라 비용을 지불해야 합니다. 따라서 (3년 감가상각 가정 시) 클라우드 서비스 이용 비용이 서버 구매 비용의 1.7배보다 적다면 유틸리티 컴퓨팅을 활용하는 것이 자금을 절약하는 길이 됩니다.

실제 데이터 센터 서버의 활용률은 5%20%에 불과한 경우가 많습니다. 수요의 정점이 평균 수요를 210배 초과하기 일쑤고 피크에 대응하는 유일한 방법은 리소스를 미리 프로비저닝하는 것뿐이기 때문입니다. 하지만 뉴스나 이슈로 인한 갑작스러운 수요 폭발처럼 모든 수요 급증을 사전에 예측할 수는 없으므로 이럴 때 클라우드 컴퓨팅이 제공하는 리소스 탄력성이 매우 중요해집니다.

비용 측면 외에도 리스크 전가 능력 또한 클라우드 컴퓨팅 경제 모델의 중요한 가치입니다. 수요가 서비스 용량을 초과하는 순간 다음과 같은 경제적 손실이 발생합니다.

[caption id="attachment_1993" align="alignnone" width="625"]peak load risk peak load risk[/caption]

일부 사용자로부터 얻을 수 있었던 잠재적 수익을 잃을 뿐만 아니라, 서비스 품질 저하를 경험한 사용자들의 영구적인 이탈을 초래할 수도 있습니다.

그 밖에도 다음과 같은 비용 리스크를 클라우드 컴퓨팅을 통해 피할 수 있습니다.

  • 사업 부진 등 예기치 않은 이유로 규모를 축소해야 할 때 남는 잉여 서버 처분 시 발생하는 감가상각 손실

  • 하드웨어 및 소프트웨어 업그레이드에 따르는 추가 비용

사용한 만큼 지불하는 단기 임대 모델은 클라우드 사용자의 이용 비용을 줄여주며, 강력한 구매력을 가진 클라우드 제공업체는 규모의 경제를 활용해 이윤을 창출할 수 있습니다. 클라우드 사용자 입장에서는 리소스 비용의 변화를 가격을 통해 빠르게 체감할 수 있는데, 예를 들어 하드웨어 원가 하락으로 인한 비용 절감 혜택을 즉각 누릴 수 있습니다.

5. 클라우드 컴퓨팅의 10가지 장애물과 기회

장애물 (Obstacle)기회 (Opportunity)
서비스 가용성 (Availability of Service)다중 클라우드 제공업체 활용, 탄력성을 이용한 DDoS 대응
데이터 락인 (Data Lock-In)표준 API, 서지 컴퓨팅(Surge Computing)을 지원하는 호환 소프트웨어
데이터 기밀성 및 감사 가능성 (Data Confidentiality and Auditability)암호화, VLAN, 방화벽 등 배포, 데이터 저장 위치의 지리적 분산
데이터 전송 병목 현상 (Data Transfer Bottlenecks)FedExing Disks(물리적 디스크 배송), 데이터 백업/아카이빙, 더 큰 대역폭의 스위치 도입
성능 예측 불가능성 (Performance Unpredictability)가상 머신(VM) 지원 최적화, 플래시 메모리, VM 병렬 스케줄링
확장 가능한 스토리지 (Scalable Storage)확장 가능한 스토리지 기술 발명
대규모 분산 시스템의 버그 (Bugs in Large Distributed Systems)분산 가상 머신에 적합한 디버거 발명
빠른 확장 (Scaling Quickly)머신 러닝 기반의 오토스케일링(Auto-scaling) 매커니즘 발명 및 스냅샷 보호 구축
평판 공유의 위험 (Reputation Fate Sharing)이메일 평판 보증과 같은 시스템 제공
소프트웨어 라이선싱 (Software Licensing)사용량 기반 과금(Pay-for-use) 라이선스 채택, 대량 판매(Bulk sale)

P.S. 처음 3개는 클라우드 컴퓨팅 도입 시의 기술적 장애물, 중간 5개는 클라우드 컴퓨팅 발전의 기술적 장애물, 마지막 2개는 도입 시의 정책 및 비즈니스적 장애물이며 오른쪽은 예상되는 해결책(기회)입니다.

6. 비전

The long dreamed vision of computing as a utility is finally emerging.

오랜 꿈이었던 컴퓨팅 유틸리티의 시대가 마침내 도래했습니다.

클라우드 제공업체는 자신이 보유한 컴퓨팅 리소스를 종량제(Pay-as-you-go) 모델로 판매하고 리소스를 재사용하여 수익을 창출할 것으로 기대됩니다. 클라우드 사용자는 자체 데이터 센터 구축에 드는 막대한 비용을 절감하는 동시에 리소스 프로비저닝 리스크에서 해방될 수 있습니다.

이와 더불어 개발자들은 클라우드 환경 배포를 위해 가상 머신의 스케일 아웃(Scale-out, 수평 확장)에 집중해야 합니다. 구체적으로는 다음과 같습니다.

  • 애플리케이션 소프트웨어: CPU, 메모리 리소스의 증감을 포괄하는 스케일 업/다운(Scale-up/down, 수직 확장/축소)을 지원해야 하며 종량제 라이선스 모델도 필요합니다.

  • 인프라 소프트웨어: VM 환경에서의 실행을 지원해야 하며, 내장 과금 시스템을 갖추어야 합니다.

  • 하드웨어 시스템: 가장 작은 구매 단위인 컨테이너 규모로 설계되어야 합니다. 운영 비용이 성능 및 구매 비용과 균형을 이루어야 하며, 유휴 리소스가 저전력 모드로 진입하도록 하여 에너지를 절감해야 합니다. 프로세서는 VM과 잘 연동되어야 하며 메모리 계층 구조에 플래시 스토리지가 포함되어야 하고 LAN 스위치와 WAN 라우터의 대역폭과 비용 효율성도 개선되어야 합니다.

7. 시사점

리소스 관점에서 볼 때 클라우드 컴퓨팅이 가져온 혁신은 주로 리소스 사용 비용 절감과 리소스 활용률 향상에 있습니다.

규모의 경제 덕분에 중앙 집중식으로 관리되는 컴퓨팅 리소스의 구매 및 운영 비용이 낮아졌고, 가상화 기술을 통한 하드웨어 공유 및 재사용으로 리소스 사용 비용을 더욱 절감할 수 있게 되었습니다.

리소스 활용률 향상은 4가지 측면에서 나타납니다.

  • 장비 측면: 신속한 대여 및 반납이 가능하여 보유 장비 수가 애플리케이션에 실제로 필요한 장비 수에 근접해집니다.

  • 리소스 측면: 물리적 기기의 하드웨어 사양에 구애받지 않고 다양한 유형의 리소스를 필요에 따라 사용할 수 있으므로, 임대한 리소스가 애플리케이션의 실제 요구사항과 꼭 맞아떨어집니다.

  • 부하(Load) 측면: 가상화 기술을 통해 하드웨어 리소스를 공유하고 CPU의 멀티 코어 특성을 최대한 활용하여 하드웨어를 한계까지 쥐어짤 수 있습니다.

  • 임대 기간 측면: 사용한 만큼 지불하는 단기 임대 모델이 제공하는 리소스 탄력성 덕분에 비수기(Non-peak) 시간대의 낮은 활용률 문제를 해결했습니다. 유연한 조달을 통해 리소스가 유휴 상태일 때 불필요한 비용을 지불하지 않아도 됩니다.

참고 자료

댓글

아직 댓글이 없습니다

댓글 작성