Limitações de largura de banda de streaming Amazon S3 + CloudFront

3

Eu tenho procurado usar o Amazon Elastic Transcoder para implementar um cenário de videostreaming sob demanda por algum tempo agora. As variáveis em torno do custo de transcodificação e restrições são claras para mim. Eu estou vinculado pelo requisito de que eu preciso de escalabilidade em largura de banda de streaming, de preferência em incrementos de 200Mbit / s.

Estou, no entanto, lutando para ter uma noção do custo do streaming. Pelo que entendi da documentação é que eu iria transcodificar usando o Elastic Transcoder, transferir esses arquivos para o Amazon S3 e, em seguida, servir o conteúdo usando o CloudFront. Transcodificação, custo de armazenamento e custos do Volume do CloudFront são fáceis de determinar usando as calculadoras. O que eu não consigo encontrar é a informação sobre a largura de banda do CloudFront + S3.

O limite de largura de banda no CloudFront parece ser de 40 Gbps, de acordo com este documento . Acho difícil acreditar que não seria cobrado extra por esse uso de largura de banda. Além disso, duvido que os servidores / nós do S3 possam fornecer conectividade de 40Gbps.

Portanto, a verdadeira questão é: qual seria a largura de banda máxima de streaming usando (Elastic Transcoder +) Amazon S3 + CloudFront? E como e quando isso seria limitado? Ou o preço do CloudFront é determinado apenas pelo volume de transferência de dados de saída?

    
por Wouter Pol 05.01.2017 / 10:53

1 resposta

2

I find it hard to believe that I wouldn't be charged extra for such bandwidth usage.

40 Gbit / s não é "uso" - é a capacidade disponível. Você não é cobrado pela capacidade disponível. Você é cobrado pelo uso, que é a "Transferência regional de dados para a Internet (por GB)" mencionada na tabela de preços do CloudFront. Não há custo para a largura de banda do S3 para o CloudFront, quando o CloudFront busca objetos do S3.

Also, I doubt the S3 servers/nodes could provide 40Gbps connectivity.

Bem ... não. :) Com um dos grandes tipos de instância do EC2 (por exemplo, hi1.4xlarge, cc2.8xlarge), se a instância estiver na mesma região do bucket e você baixar um arquivo grande do S3, poderá ver facilmente os downloads de arquivos individuais com taxas de transferência na faixa de 1 Gbit / s do S3. Tem a capacidade.

40 Gbps não é a capacidade disponível para um único download, é claro, mas na escala da AWS, essa largura de banda disponível não está totalmente fora de questão. Nenhum dos componentes da arquitetura que você descreve é dedicado a você.

É compartilhado por todos - ou um subconjunto significativo de - clientes, portanto, não há necessidade de dedicar 40 Gbit / s de nada ao seu uso. Também não precisa estar em um só lugar. Há mais de 60 locais distintos e independentes na rede de borda do CloudFront e cada navegador se conecta ao que o CloudFront (com a ajuda do Route 53, mesmo que você não seja um cliente do Route 53) é considerado o melhor localização de borda para cada navegador, usando seu próprio banco de dados de roteamento geográfico proprietário, que parece ser adaptável. (Meu site de testes mostra qual local de borda seu navegador está usando atualmente, se minha lógica de mapeamento experimental puder determiná-lo - geralmente pode - e Eu vejo isso mudando periodicamente mesmo quando eu acertei o site de casa.)

Com apenas 40 localizações de borda, menor que o número atual, uma quantidade de largura de banda comicamente pequena disponível em cada borda acomodaria 40 Gbit / s de transferência para um público globalmente disperso.

A infra-estrutura S3 de cada região também é distribuída pelo hardware, abrangendo as zonas de disponibilidade da região.

40 Gbps, na verdade, nem é uma limitação física ...

And how and when would that be limited?

... é um controle de proteção imposto pelo software. Assim como o limite de 100.000 solicitações por segundo. O pedido seria negado.

LimitExceeded – The request was denied because a CloudFront limit was exceeded.

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html

Compare isso com CapacityExceeded , o que seria registrado no caso de um problema real na rede do CloudFront impedir que a solicitação fosse processada.

A documentação do S3 não menciona um limite de largura de banda, mas entre a discussão de dimensionamento:

if you expect a rapid increase in the request rate for a bucket to more than 300 PUT/LIST/DELETE requests per second or more than 800 GET requests per second, we recommend that you open a support case to prepare for the workload and avoid any temporary limits on your request rate.

http://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html

Observe que isso se refere a "um aumento rápido", sugerindo que um aumento gradual seria tratado automaticamente pelo dimensionamento automático do S3 e / ou sharding de seu índice de chave de objeto classificado alfabeticamente.

What would be the maximum streaming bandwidth using (Elastic Transcoder +) Amazon S3 + CloudFront?

Tudo é claro, finito, mas no caso dos serviços em questão, não há como descrever os limites de forma significativa. É efetivamente ilimitado para todos os fins práticos.

Note, para brincar absurdamente com números, que usar 40 Gbit / s, o dia todo, a noite toda, durante um mês inteiro, quase certamente nunca aconteceria, mas se isso acontecesse, custo superior a US $ 400.000 em transferência de dados de saída (um número extremamente arredondado, os níveis regionais de preço e desconto tornam o cálculo complexo), mas faz com que o fato de que essa capacidade seja tecnicamente "disponível" pareça um pouco mais convincente - a capacidade está lá se você quiser pagar para usá-lo, mas se você não usá-lo, você não paga por isso.

    
por 05.01.2017 / 13:53