2011-06-16 22 views
9

Acabo de implementar una aplicación Codeigniter para Amazon EC2 (utilizando S3 para medios y RDS para MySQL).Limitación de membresía por ancho de banda

Necesito restringir el acceso a la cuenta de usuario en función de la cantidad de ancho de banda utilizado: las cuentas se basarán en el ancho de banda, p. Cuenta básica £ x hasta 20 GB por mes, etc.

Sin embargo, no tengo idea de cuál es la mejor manera de hacerlo.

Mis instancias EC2 son Ubuntu con Apache2 si eso ayuda.

¡Alguna idea apreciada!

Gracias!

Respuesta

4

Puede usar la API de Amazon para verificar el uso del ancho de banda, en lugar de usar los registros. como ha dicho que está utilizando s3 para administrar los activos, será bueno si crea un nuevo depósito para cada usuario y verifica el uso del ancho de banda y luego limita la cuenta si excede ese límite.

+0

Gracias, esta parece ser la solución más práctica. –

+2

Solo tenga en cuenta que no puede crear más de 100 cubos por cuenta de Amazon. –

+0

@Geoff Appleford Gracias Geoff, yo no sabía eso. –

0

Puede crear un registro personalizado con Apache para rastrear el número de bytes transferidos. La parte difícil será asociar eso a un usuario dado. Probablemente una combinación de cookies y tal vez IP remota.

Luego tomaría ese registro y lo procesaría en segundo plano.

S3/Cloudfront puede proporcionar registros similares, pero probablemente no podrá asociarlo a un usuario.

0

Si usa el buffer de salida en PHP, puede llamar al ob_get_length() justo antes de llamar al ob_end_flush() para obtener el tamaño del búfer de salida que está enviando al cliente.

Si también implementa un controlador de PHP para todos los archivos (en lugar de permitir enlaces directos a los archivos a través de Apache), tendría una idea bastante decente de exactamente cuánto contenido estaba enviando a cada cliente.

2

Limitar ancho de banda por cada conexión para PC con Linux

usted tiene que instalar la herramienta "Lighttpd", su un servidor web. es útil para limitar el ancho de banda por conexión y también instalo Axel para aumentar y disminuir la cantidad de conexiones.

sudo apt-get install Axel

http://www.cyberciti.biz/tips/installing-and-configuring-lighttpd-webserver-howto.html

por conexión i añadir este comando en esta ruta/etc/lighttpd /lighttpd.conf.

connection.k bytes por segundo = 70

I limitar el ancho de banda para 70 kb/seg y probado cada conexiones para 5 veces y he observado tiempo mínimo, tiempo máximo y calculé tiempo promedio. Repetí esto hasta 10 conexiones.

Cuestiones relacionadas