AWS, 대역폭 및 콘텐츠 제공


31

제 질문은 가상 머신에 관한 것이며 서버의 인터넷 연결을 통해 컨텐츠를 제공하는 것입니다.

Ec2 Windows 인스턴스가 있고 네트워크 연결이 100mbps 인 것으로 보입니다

해당 EC2 인스턴스에서 컨텐츠를 제공하려는 경우 잠재적 병목 현상이 있습니까?

s3의 차이점은 무엇입니까, s3의 실제 잠재적 인 아웃 바운드 병목 현상이 아닌 것 같습니다.

참고 : s3과 CDN이 정적 콘텐츠에 더 적합하다는 것을 알고 있지만 지금은이 상황을 탐색해야합니다. HTML 페이지는 AJAX를 통해 서버 측 페이지에 액세스해야하며, 현재로서는 콘텐츠와 서버가 정확히 동일한 도메인에 있어야하기 때문에 이에 대한 해결책이 없기 때문에 S3를 사용하지 않아도됩니다.

필요한 대역폭 : 확실하지 않습니다. 언제든지 최대 100 명의 사용자가 동영상을 다운로드 할 수 있습니다. 비디오는 각각 최대 5mb까지 가능하지만 최대 20 개까지 볼 수 있습니다.


"JS를 통해 프록시에 액세스하려면 HTML이 필요합니다."... 무슨 의미입니까?
Eric Hammond

피크에서 얼마나 많은 대역폭을 사용해야합니까?
Eric Hammond

@EricHammond 좀 더 많은 정보로 내 질문을 업데이트했습니다
Keeno

이 시점에서 특정 잠재적 병목 현상에 지나치게 집중 해야하는 특별한 이유가있는 것처럼 들리지 않습니다. 확장성에 대한 일반적인 모범 사례를 사용하여 서비스를 구축 한 다음 발생하는 성능 문제를 조사하고 해결하십시오. CDN을 통해 비디오를 제공하십시오.
Eric Hammond

1
Keeno : JS의 동일한 출처 정책에 익숙하지만 여전히 다른 도메인 (CDN)으로 비디오 콘텐츠를 제공 할 수없는 이유는 아직 모르겠습니다. 이것은 일반적인 관행입니다.
Eric Hammond

답변:


60

Windows 인스턴스를 말할 수는 없지만 기본 특성이 Linux 인스턴스와 상당히 유사하다고 가정합니다.

대역폭 사용량에 대한 추정치는 100 건의 동시 비디오 다운로드입니다 (파일 다운로드 또는 비디오 스트리밍을 의미하는지 확실하지 않습니다. 후자를 가정하겠습니다). 512kbps의 스트림 속도를 사용하는 경우 약 51Mbit / s 또는 6.5MB / s가 필요합니다.

EC2 인스턴스는 I / O 성능 (대역폭 포함)이 다릅니다. I / O 성능에는 낮음, 보통 및 높음의 3 가지 수준이 있습니다. 그러나 디스크 I / O (예 : EBS 볼륨의)도 대역폭에 따라 다릅니다. EC2 네트워크 내에서만 대역폭을 고려할 수 있습니다 (인터넷을 통해 완전히 변하기 때문에).

'낮음', '중간'및 '높음'을 정량화하는 몇 가지 일반적인 숫자 (다른 소스는 이론적 값에 대해 다른 숫자를 인용하므로 완전히 정확하지 않을 수 있음).

높음 : 이론적 : 1Gbps = 125MB / s; 실제 ( 소스 ) : 750Mbps = 95MB / s

보통 : 이론적 : 250Mbps; 실제 ( 소스, p57 ) : 80Mbps = 10MB / s

낮음 : 이론적 : 100Mbps; 실제 (내 테스트에서) : 10-15Mbps = 1-2MB / s

(실제로는 '매우 높은'수준 (이론상 10Gbps)이 있지만 클러스터 컴퓨팅 인스턴스에만 적용됩니다).

추가적인 언급은 변동 정도입니다. 더 작은 인스턴스에서는 물리적 구성 요소가 더 많은 가상 시스템간에 공유되므로 성능이 더 다양합니다. 어쨌든 성능의 약 +/- 20 % 변동을 기대할 수 있습니다 (출처 : 1 , 2 , 3 ). 귀하의 경우 (맨 위의 가정 / 계산에 따라) 13MB / s의 최대 대역폭이 필요할 수 있습니다 (디스크 I / O도 네트워크 제한되기 때문에 6.5MBps의 두 배). 낮은 대역폭 콘텐츠를 전송하는 경우 '보통'I / O 성능이있는 인스턴스를 사용할 수 있어야합니다 ( 인스턴스 유형 페이지 참조).)를 계산하면 대역폭 요구 사항이 높아지면 'I'O 성능이 높은 인스턴스가 필요합니다. 단순히 데이터를 스트리밍하는 것은 CPU 나 메모리에 묶이지 않아야하지만, 100 개의 동시 연결을 유지하려면 최소한 중간 크기의 인스턴스가 필요할 것입니다. 대역폭을 고려할 경우 위의 경우 큰 인스턴스가 더 안전한 내기입니다).

시작한 서버를 벤치마킹하여 (계산 된) 요구 사항을 충족하는지 확인하는 것이 좋습니다. 동일한 유형의 두 인스턴스를 시작 iperf하고 각 인스턴스의 프라이빗 IP 주소를 사용하여 각각 실행합니다. 기본 설정으로 실행하는 경우 보안 그룹에서 포트 5001을 열어야합니다. 또한 EC2 네트워크 외부의 대부분의 테스트는 80-130Mbps (대규모 인스턴스)의 결과를 보여 주지만 반드시 그 수는 의미가 없습니다.

설치 프로그램에서 허용하는 경우 CDN이 필요에 더 적합합니다. 이 기사에 따르면 S3는 대역폭에 대해 최소 50MB / s (최소한 인스턴스에서)로 제한되는 것처럼 보이지만 필요한 것보다 높습니다 (S3는 스트리밍을 지원하지 않습니다). Cloudfront는 CDN으로 설계되어 작업에 더 적합하며 요청시 더 높은 대역폭을 사용 하여 기본적으로 1000Mbps = 125MB / s ( 소스 )를 지원하며 콘텐츠를 스트리밍 할 수 있습니다)


"이론적"Mbps 값은 어디에서 얻습니까? 이 번호에 대한 공식 또는 비공식 문서 소스를 찾을 수 없습니다.
dtheodor

4
그 숫자는 현재로서는 상당히 다를 수 있습니다 (현재는 소스를 추적 할 수 없습니다). 4 년 만에 많은 변화가있었습니다. EC2에는 클러스터 그룹 내에 10Gbps 상호 연결이있는 것으로 알려져 있습니다. AWS는 2007 년에 250Mbps 전용 로컬 대역폭 수치를 인용했습니다. 현재 네트워크 대역폭은 인스턴스 유형 (및 아마도 EBS 최적화를 고려한 요인)에 따라 우선 순위가 할당되어 인스턴스간에 공유됩니다. 적어도 부분적으로 인스턴스 크기는 리소스를 공유하는 다른 인스턴스 수를 결정합니다. 네트워크를 사용하지 않으면 인스턴스 공유가 커집니다.
cyberx86

죄송합니다.이 주제와 관련이 없지만 @ cyberx86에 연락하는 방법을 모르지만 웹 사이트의 SSL 인증서가 일주일 전에 약간 만료되었음을 알려줍니다. 의견을 보내 주셔서 죄송합니다. 이메일 주소를 찾을 수 없습니다.
Kevin Lyda

1
@KevinLyda 감사합니다. 인증서가 만료되었음을 알고는 있지만 해당 사이트가 한동안 업데이트되지 않았으므로 LetsEncrypt를 사용하여 자동 갱신으로 마이그레이션 할 수있는 좋은 기회였습니다.
cyberx86

네, 직접 사용했습니다. 매우 비공식적 인 스크립트 (특히 비공식 고객의 경우)를 사용하여 백그라운드에서 작업 할 수 있습니다.
Kevin Lyda

0

숫자는 시간이 지남에 따라 그리고 다른 인스턴스 유형의 수가 증가함에 따라 변하는 것 같습니다. 그러나 많은 사람들이 벤치 마크를 게시합니다. 인터넷 검색으로 운이 좋았습니다 [instance category] ec2 network benchmark.

예를 들어 m4.xlarge인스턴스 의 대역폭을 알고 싶었 으므로 검색했습니다 ec2 m4 network benchmark. Washington Post 엔지니어링 블로그에서이 테스트 결과를 찾았습니다.

Type       Cost    Bandwidth Bandwidth Cost (1Gb/s) Bandwidth Cost EBS optimized
...
m4.xlarge  $0.252  791Mb/s   $0.320                 $0.320
...
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.