Minha pergunta é sobre máquinas virtuais e entrega de seu conteúdo pela conexão de servidores à Internet.
Eu tenho uma instância do Windows Ec2 e sua conexão de rede parece ser 100mbps
Se eu estivesse entregando conteúdo dessa instância do EC2, esse é meu gargalo em potencial?
Como o s3 difere, suponho que não há nenhum gargalo de saída real com o s3?
Nota: Eu sei que o s3 e seu CDN seriam melhores para conteúdo estático, no entanto, preciso explorar essa situação por enquanto. Nossas páginas HTML precisam acessar uma página do lado do servidor via AJAX e, como não há nenhum trabalho à prova de explosões no momento, nosso conteúdo e nosso servidor precisam estar exatamente no mesmo domínio, portanto, isso impede o uso do S3.
Largura de banda necessária: não tenho certeza, poderíamos ter até 100 usuários baixando vídeos a qualquer momento, provavelmente não mais. Os vídeos podem ter até 5 MB cada, mas podem exibir até 20.
fonte
Respostas:
Não posso falar em instâncias do Windows, mas presumo que suas características básicas sejam bastante semelhantes às instâncias do Linux.
Sua estimativa para o uso da largura de banda é de 100 downloads simultâneos de vídeo (não sei se você quer fazer o download do arquivo ou fazer o streaming do vídeo - assumirei o último). Se tomarmos uma taxa de fluxo de 512kbps, você precisará de 51Mbit / s ou 6,5MB / s.
As instâncias do EC2 diferem no desempenho de E / S (que inclui largura de banda). Existem 3 níveis de desempenho de E / S: baixo, moderado e alto. Porém, lembre-se de que a E / S do disco (ou seja, dos volumes EBS) também depende da largura de banda. Você só pode realmente considerar a largura de banda na rede EC2 (pois ela será completamente variável na Internet).
Alguns números típicos para quantificar 'baixo', 'médio' e 'alto' (fontes diferentes citam números diferentes para valores teóricos, portanto, podem não ser completamente precisos).
Alto: Teórico: 1 Gbps = 125 MB / s; Realista ( origem ): 750 Mbps = 95 MB / s
Moderado: Teórico: 250Mbps; Realista ( fonte, p57 ): 80 Mbps = 10 MB / s
Baixo: Teórico: 100Mbps; Realista (dos meus próprios testes): 10-15Mbps = 1-2MB / s
(Na verdade, também existe um nível 'muito alto' (teórico de 10 Gbps), que se aplica apenas a instâncias de computação em cluster).
Um outro ponto de menção é o grau de variação. Em instâncias menores, há mais variabilidade no desempenho, à medida que os componentes físicos são compartilhados entre mais máquinas virtuais. Independentemente disso, você pode esperar uma variação de +/- 20% no seu desempenho (fontes: 1 , 2 , 3 ). No seu caso (conforme as suposições / cálculos na parte superior), você pode precisar de uma largura de banda máxima de 13 MB / s (dobro de 6,5 MBps, pois a E / S de disco também é limitada em rede). Se você estiver transferindo conteúdo de largura de banda menor, poderá usar uma instância com desempenho de E / S 'moderado' (consulte a página de tipos de instância), se seus cálculos resultarem em um requisito de largura de banda mais alto, você precisará de uma instância com desempenho de E / S 'alto'. Simplesmente o streaming dos dados não deve estar vinculado à CPU ou à memória, mas sustentar 100 conexões simultâneas provavelmente exigirá pelo menos uma instância de tamanho médio - e se a largura de banda for uma preocupação, com base no exposto, uma instância grande seria uma aposta mais segura).
Eu recomendaria comparar os servidores que você inicia para ver se eles atendem às suas necessidades (calculadas). Inicie duas instâncias (do mesmo tipo) e execute
iperf
em cada uma delas usando os endereços IP privados das instâncias - você precisará abrir a porta 5001 no seu grupo de segurança, se a executar com as configurações padrão. Além disso, a maioria dos testes fora da rede EC2 mostra resultados entre 80-130 Mbps (grandes instâncias) - embora esses números não sejam necessariamente significativos.Uma CDN seria mais adequada às suas necessidades, se sua configuração permitir. O S3 parece ter um limite em torno de 50 MB / s para largura de banda (pelo menos em uma única instância), conforme este artigo , mas é mais alto do que o necessário (o S3 não suporta streaming). O Cloudfront seria mais adequado para sua tarefa (como é projetado como uma CDN) e suporta 1000 Mbps = 125 MB / s por padrão ( origem ), com maior largura de banda disponível mediante solicitação e também pode transmitir conteúdo)
fonte
Os números parecem mudar com o tempo e à medida que o número de diferentes tipos de instância prolifera. Mas várias pessoas postam referências. Tive alguma sorte pesquisando no Google
[instance category] ec2 network benchmark
.Por exemplo, eu queria saber a largura de banda de uma
m4.xlarge
instância, então procureiec2 m4 network benchmark
. Encontrei este resultado de teste no blog de engenharia do Washington Post:fonte