Mi pregunta es sobre las máquinas virtuales y la entrega de su contenido a través de la conexión de servidores a Internet.
Tengo una instancia de Windows Ec2, y su conexión de red parece ser de 100mbps
Si tuviera que entregar contenido de esa instancia EC2, ¿ES ESO mi potencial cuello de botella?
¿En qué difiere s3? Supongo que no existe un posible cuello de botella de salida potencial con s3.
Nota: Sé que s3 y su CDN serían mejores para contenido estático, sin embargo, necesito explorar esta situación por ahora. Nuestras páginas HTML necesitan acceder a una página lateral del servidor a través de AJAX, y debido a que no hay una solución a prueba de bombas para esto en este momento, nuestro contenido y nuestro servidor deben estar exactamente en el mismo dominio, por lo que descarta usar S3.
Ancho de banda necesario: no estoy seguro, podríamos tener hasta 100 usuarios descargando videos en cualquier momento, probablemente no más. Los videos pueden tener hasta 5 MB cada uno, pero verían hasta 20.
fuente
Respuestas:
No puedo hablar por instancias de Windows, pero supongo que sus características básicas son bastante similares a las instancias de Linux.
Su estimación para el uso de ancho de banda es de 100 descargas de video simultáneas (no estoy seguro de si quiere descargar el archivo o transmitir el video; supondré lo último). Si tomamos una velocidad de transmisión de 512 kbps, necesita aproximadamente 51 Mbits / so 6.5 MB / s.
Las instancias de EC2 difieren en su rendimiento de E / S (que incluye el ancho de banda). Hay 3 niveles de rendimiento de E / S: bajo, moderado y alto. Sin embargo, tenga en cuenta que la E / S de disco (es decir, de volúmenes EBS) también depende del ancho de banda. Realmente solo puede considerar el ancho de banda dentro de la red EC2 (ya que será completamente variable a través de Internet).
Algunos números típicos para cuantificar 'bajo', 'medio' y 'alto' (diferentes fuentes citan diferentes números para valores teóricos, por lo que podrían no ser completamente precisos).
Alto: teórico: 1 Gbps = 125 MB / s; Realista ( fuente ): 750Mbps = 95MB / s
Moderado: teórico: 250 Mbps; Realista ( fuente, p57 ): 80Mbps = 10MB / s
Bajo: teórico: 100 Mbps; Realista (de mis propias pruebas): 10-15Mbps = 1-2MB / s
(En realidad, también hay un nivel 'muy alto' (10 Gbps teórico), pero eso se aplica solo a las instancias de cómputo de clúster).
Otro punto de mención es el grado de variación. En instancias más pequeñas, hay más variabilidad en el rendimiento ya que los componentes físicos se comparten entre más máquinas virtuales. En cualquier caso, puede esperar una variación de alrededor de +/- 20% en su rendimiento (fuentes: 1 , 2 , 3 ). En su caso (según los supuestos / cálculos en la parte superior), es posible que necesite un ancho de banda máximo de 13 MB / s (doble 6.5 MBps, ya que la E / S de disco también está limitada a la red). Si está transfiriendo contenido de ancho de banda más bajo, debería poder usar una instancia con un rendimiento de E / S 'moderado' (consulte la página de tipos de instancia), si sus cálculos dan como resultado un mayor requisito de ancho de banda, necesitará una instancia con un rendimiento de E / S 'alto'. Simplemente transmitir los datos no debe estar vinculado a la CPU o la memoria, pero mantener 100 conexiones simultáneas probablemente requerirá al menos una instancia de tamaño mediano, y si el ancho de banda es una preocupación, según lo anterior, una instancia grande sería una apuesta más segura).
Recomendaría comparar los servidores que ejecuta para ver si satisfacen sus necesidades (calculadas). Inicie dos instancias (del mismo tipo) y ejecútelas
iperf
en cada una utilizando las direcciones IP privadas de las instancias; deberá abrir el puerto 5001 en su grupo de seguridad si lo ejecuta con la configuración predeterminada). Además, la mayoría de las pruebas fuera de la red EC2 muestran resultados de entre 80 y 130 Mbps (grandes instancias), aunque estos números no son necesariamente significativos.Un CDN se adaptaría mejor a sus necesidades, si su configuración lo permite. S3 parece tener un límite de alrededor de 50 MB / s para el ancho de banda (al menos desde una sola instancia) según este artículo , pero eso es más alto de lo que debería requerir (S3 no admite la transmisión). Cloudfront sería más adecuado para su tarea (ya que está diseñado como un CDN) y admite 1000Mbps = 125MB / s de forma predeterminada ( fuente ) con mayor ancho de banda disponible a pedido y también puede transmitir contenido)
fuente
Los números parecen cambiar con el tiempo y a medida que proliferan los diferentes tipos de instancias. Pero varias personas publican puntos de referencia. He tenido un poco de suerte buscando en Google
[instance category] ec2 network benchmark
.Por ejemplo, quería saber el ancho de banda de una
m4.xlarge
instancia, así que busquéec2 m4 network benchmark
. Encontré este resultado de prueba del blog de ingeniería del Washington Post:fuente