클라우드 컴퓨팅 업계에 종사하는 사람들에게 2012년 Google I/O에서 가장 흥미로운 소식은 글래스를 착용한 스카이다이버도, 새로운 태블릿도 아니었습니다. 가장 큰 뉴스는 현재 아마존 웹 서비스(AWS)가 주도하고 있는 클라우드 서비스형 인프라 영역에 구글이 뛰어든다는 것이었습니다. 특히 구글은 Amazon EC2와 경쟁하기 위해 구글 컴퓨트 엔진이라는 새로운 서비스를 출시했습니다.
이것은 흥미로운 일입니다. 세상에는 강력하고 성능이 뛰어나며 잘 설계된 또 하나의 클라우드 가상 머신 서비스가 필요합니다. 오랫동안 독주체제를 유지해 온 Rackspace와 다른 업체들에게 사과의 말씀을 드리자면, EC2는 단연 선두주자입니다. 구글이 이 분야를 계속 고수한다면 강력한 경쟁자가 될 수 있는 전문성과 규모를 갖춘 것은 분명합니다.
현재 상황은 어떤가요? 초기 보고는 긍정적입니다. 구글 컴퓨트 엔진(GCE)은 잘 설계되고, 잘 실행되며, 구글이 수년간 사용해 온 인프라를 기반으로 합니다. 특히 디스크 I/O, 부팅 시간, 일관성 등 그동안 EC2의 강점이 아니었던 성능이 우수합니다. 그렇다면 클라우드 비디오 트랜스코딩에 GCE가 얼마나 적합할까요? 더 많은 테스트가 필요하다는 점을 인정하면서 몇 가지 예비 결과가 있습니다. 다음은 GCE와 EC2 모두에서 Zencoder 소프트웨어를 사용한 비디오 트랜스코딩 및 파일 전송에 대한 몇 가지 기본 테스트입니다.
원시 트랜스코딩 속도
젠코더는 성능을 최우선으로 생각하기 때문에 가능한 가장 빠른 서버를 사용합니다. EC2에서는 두 가지 크기의 고속 듀얼 CPU 머신인 클러스터 컴퓨트 인스턴스를 사용합니다: 4XL과 8XL. 이를 현재 가장 빠른 GCE 인스턴스 유형인 단일 CPU 8코어 서버와 비교했습니다.
서버 | CPU |
---|---|
GCE 8코어 | 인텔 제온(샌디 브리지 - 아마도 E5-2670) - 8코어 @ 2.60GHz |
EC2 cc1.4xlarge | 듀얼 인텔 제온 X5570 - 8코어 @ 2.93GHz/코어 |
EC2 cc2.8xlarge | 듀얼 인텔 제온 E5-2670 - 16코어 @ 2.60GHz/코어 |
이 테스트는 640×360 및 1280×720 해상도의 H.264 소스 비디오를 사용하여 수행되었으며, 동일한 단일 패스 출력 트랜스코딩 설정(H.264 기준 프로파일, AAC, 원패스 일정 품질 트랜스코딩 등)을 사용하여 Zencoder로 인코딩했습니다.
서버 | 해상도 | 동시 인코딩 | 시간(초) | 천 명당 비용 |
---|---|---|---|---|
EC2 cc1.4xlarge | 640×360 | 6 | 15.87 | $0.96 |
EC2 cc2.8xlarge | 640×360 | 6 | 9.93 | $1.10 |
GCE 8코어 | 640×360 | 6 | 21.05 | $1.13 |
GCE 8코어 | 640×360 | 1 | 6.01 | $1.94 |
EC2 cc1.4xlarge | 640×360 | 1 | 5.96 | $2.15 |
EC2 cc1.4xlarge | 1280×720 | 6 | 48.58 | $2.92 |
EC2 cc2.8xlarge | 640×360 | 1 | 4.99 | $3.33 |
EC2 cc2.8xlarge | 1280×720 | 6 | 30.74 | $3.42 |
GCE 8코어 | 1280×720 | 6 | 68.15 | $3.66 |
EC2 cc1.4xlarge | 1280×720 | 1 | 12.89 | $4.65 |
GCE 8코어 | 1280×720 | 1 | 16.01 | $5.16 |
EC2 cc2.8xlarge | 1280×720 | 1 | 10.92 | $7.28 |
기본 젠코더 설정을 사용하면 두 가지 유형의 EC2 인스턴스 모두 GCE보다 빠릅니다. 경제성은 조금 더 비슷하며 4XL EC2 인스턴스와 GCE 사이에 명확한 승자는 없습니다. 따라서 GCE는 원시 속도보다 비용이 더 우선시되는 트랜스코딩에 적합한 옵션이지만, AWS 고객은 예약 인스턴스 및 스팟 인스턴스를 사용하여 비용을 추가로 절감할 수 있습니다. 6개의 동시 트랜스코딩으로 부하가 걸렸을 때 16코어 EC2 인스턴스가 GCE 8코어 인스턴스보다 약 2배 더 빠르다는 것을 확인했습니다.
클럭 속도는 비슷하지만 코어 수가 절반이라는 점을 감안하면 예상할 수 있는 결과입니다. 하지만 구글이 비슷한 16코어 머신을 추가한다면 비슷한 수준의 트랜스코딩 속도를 낼 수 있습니다.
전송 속도
클라우드에서 동영상을 트랜스코딩할 때 네트워크 I/O는 CPU만큼이나 중요합니다. 특히 비트레이트가 높은 콘텐츠를 다루는 고객(방송사, 스튜디오, 크리에이티브 업체)에게는 더욱 그렇습니다. 그렇다면 GCE 전송 속도는 EC2와 비교해 어떤 차이가 있을까요? 이를 테스트하기 위해 네 가지 벤치마크 세트를 실행했습니다:
- Amazon S3에서 Amazon EC2로
- Amazon S3에서 Google 컴퓨팅 엔진으로
- Google 클라우드 스토리지에서 Amazon EC2로
- 구글 클라우드 스토리지에서 구글 컴퓨팅 엔진으로
Google 클라우드 스토리지(GCS)와 Amazon S3에 저장된 동일한 1GB 동영상 파일을 테스트했습니다. 전송은 10개의 HTTP 연결을 사용하여 수행되었습니다(Zencoder는 전송 속도를 최적화하기 위해 기본적으로 이 작업을 수행하며, HTTP를 통한 대용량 파일 전송 속도를 크게 높일 수 있습니다).
전송 속도(Mbps) | 서버 대역폭 | |
---|---|---|
S3에서 GCE로 | 470.96 | 1Gbps |
S3 ~ EC2 c1.xlarge | 644.29 | 1Gbps |
S3 ~ EC2 cc2.8xlarge | 1458.32 | 10Gbps |
GCS에서 GCE로 | 202.60 | 1Gbps |
GCS에서 EC2 c1.xlarge로 전환 | 378.28 | 1Gbps |
GCS에서 EC2 cc2.8xlarge로 전환 | 641.34 | 10Gbps |
흥미롭습니다. 아마존에서 아마존으로의 전송이 빠를 것으로 예상했는데 실제로는 빨랐습니다. 하지만 구글과 구글 간 전송도 빠를 것으로 예상했지만 그렇지 않았습니다. 실제로 GCS는 S3보다 느리고, GCE 전송은 EC2보다 느린 것으로 나타나, 컴퓨팅에 Google을 사용하더라도 스토리지에는 S3를 사용하는 것이 더 나을 수 있습니다. 전송 속도는 GCS에서 GCE로 전송하는 것보다 S3에서 GCE로 전송하는 것이 2.3배 더 빨랐습니다.
더 필요한 테스트
이 결과는 예비적인 결과라고 생각하세요. 더 많은 변수를 고려하기 위해 추가 테스트가 필요합니다.
- 인스턴스 간 차이. 이는 특히 네트워크 상태와 인스턴스 가변성에 따라 크게 달라질 수 있는 파일 전송의 경우 더욱 그렇습니다.
- 추가 애플리케이션. 이 벤치마크는 CPU 기반 벤치마크인 트랜스코딩만 다룹니다. 다른 애플리케이션은 디스크, 메모리 등에 의해 제한되며 이러한 테스트는 트랜스코딩 이외의 다른 항목에 대해서는 언급하지 않습니다.
- 확장성. 확장성은 비디오 트랜스코딩에 클라우드를 사용하는 모든 사용자에게 매우 중요한 요소입니다. 수만 대 이상의 서버를 사용하는 엄청난 규모에서 GCE가 EC2와 어떻게 비교되는지 확인하려면 더 많은 테스트가 필요합니다. 사용자는 어느 시점에서 용량 문제에 직면하나요? 성능 문제? 설계상의 한계? 불안정성?
클라우드 인프라의 미래
이 초기 테스트에서는 EC2가 승리했지만, 저희는 Google Compute Engine에 대해 기대가 큽니다. 고성능 트랜스코딩의 진정한 경쟁자가 되려면 더 빠른 CPU를 갖춘 더 큰 인스턴스를 추가해야 합니다. 하지만 새로운 인스턴스 유형을 추가하는 것은 쉽습니다. 구글이 이를 방해하는 것은 아무것도 없습니다. 어려운 것은 강력하고 성능이 뛰어나며 기능이 완벽하고 확장 가능한 클라우드 플랫폼을 구축하는 것인데, Google은 이미 성공한 것으로 보입니다. Google이 장기적으로 이 제품과 개발자에 전념한다면 클라우드 가상화 세계는 이제 막 두 번째 합법적인 플레이어를 얻었을지도 모릅니다.