
Escribí una aplicación de red y la implementé en una única instancia EC2 (M1-grande).
La aplicación funciona como una especie de sala de chat (sólo que permite otras cosas además de enviar mensajes), lo que permite a los propietarios de teléfonos inteligentes comunicarse a una distancia cercana (física), digamos de hasta 5 metros.
Esta es mi primera aplicación de red y tengo algunas dudas y preguntas al respecto:
Dado que esta es una sala de chat muy selectiva (solo verás personas que están muy cerca), no tengo idea de cómo puedo equilibrar la carga: si tomo, por ejemplo, 2 instancias, una en Europa y otra en los EE. UU., Me gustaría redirigir a la gente de Europa al primero y a la gente de los EE. UU. al segundo. Si no puedo garantizar esta redirección, toda la aplicación no tiene valor. ¿Hay alguna manera de hacer esto usando la Ruta 53? ¿Tiene algún sentido hacerlo? ¿No es suficiente una instancia masiva?
Intenté probar el rendimiento de la instancia con cargas pesadas. Así que escribí mi propia aplicación que simuló 200.000 solicitudes por hora y la implementé en otras instancias EC2. No parecía haber ningún problema (aparte del aumento de la latencia para algunas solicitudes, lo que parece normal para una alta utilización de la CPU al aceptar una gran cantidad de conexiones simultáneamente). Mi pregunta es, ¿parece una buena prueba de carga si espero tener 500K? usuarios. Sé que es una pregunta bastante vaga, pero una respuesta bastante vaga también será suficiente.
En cuanto a seguridad. ¿Qué precauciones generales debo tomar para reducir el riesgo de una violación de seguridad? ¿Es una buena idea deshabilitar todos los puertos (excepto el puerto de escucha de mi aplicación) en el firewall? o es redundante. De nuevo, una pregunta bastante vaga. Agradeceré cualquier respuesta general.
Gracias
Respuesta1
Dado que su aplicación se basa en proximidad, puede configurar servidores en diferentes regiones con poca o ninguna necesidad de interferencias. Aproveche la función "Enrutamiento basado en latencia" de Route53. En su mayor parte, esto debería hacer que las personas lleguen al servidor más cercano. Sin embargo, dado que no se trata de un "enrutamiento geográfico", no está garantizado. El beneficio de múltiples servidores en todo el mundo en comparación con una única instancia masiva es que reducirá la latencia entre el cliente y el servidor.
Si su simulación representa adecuadamente el uso de sus usuarios, entonces sus resultados deberían decirle mucho. Si 200.000 solicitudes por hora representan correctamente la actividad de 500.000 usuarios, entonces debería estar bien. Si no es así, ajuste sus pruebas. La clave es asegurarse de que su prueba represente adecuadamente a 500.000 usuarios, y luego sus resultados también lo harán.
Cierre los puertos del grupo de seguridad para cualquier cosa que no sea esencial para su aplicación. No deje abiertos los puertos RDP, SSH o de bases de datos. Sólo mantenga abierto el puerto de su aplicación.