¿Puede el escalado vertical de AWS de la instancia ec2 admitir 100.000 usuarios por día?

¿Puede el escalado vertical de AWS de la instancia ec2 admitir 100.000 usuarios por día?

Tengo un sitio para compartir enlaces (piense en reddit). Ahora está alojado en el hosting compartido de lujo de godaddy. Estoy planeando migrarlo a AWS.

He visto un seminario web de AWS sobre cómo escalar hasta 10 millones de usuarios. Pero básicamente dice más allá de un grado que no se puede escalar de manera vertical, así que elija escalar de manera horizontal desde el principio.

No necesito soportar 10 millones de usuarios. Supongamos que necesito dar soporte a 100.000 usuarios diariamente. Como máximo, el sitio tendrá, digamos, 1000 usuarios simultáneos.

Caso de uso

  • Los usuarios publicarán enlaces al sitio. Sólo uno de cada 1000 usuarios publicará enlaces.
  • La mayoría de los usuarios simplemente buscan enlaces en el sitio, leen la descripción, etc.
  • Cada día se realizarán alrededor de 5.000 comentarios en el sitio.
  • Es principalmente un sitio basado en texto.
  • Hay muy pocas imágenes en el sitio, excepto el avatar del usuario y el banner, ambos limitados a 2 MB. Las imágenes se almacenan en la base de datos.
  • Están presentes las características habituales de un foro como registro, inicio de sesión, cuenta, etc.

Arquitectura planificada

  • 1 instancia EC2
  • 1 instancia RDS
  • 1 Zona Ruta 53
  • 1 ip elástica
  • 1 s3 (solo para respaldo)

Planeo escalar usando este método simple: comience con, digamos, t2.micro, a medida que la base de usuarios crezca, simplemente actualice la instancia ec2. Lo mismo ocurre con las instancias RDS.

Sé que 1 EC2 o RDS lo convierte en un único punto de falla. Si alguno de estos se rompe, planeo terminar esa instancia e iniciar una idéntica a partir de una imagen/copia de seguridad. Estoy bien si el sitio está fuera de línea durante 1 hora cada 30 días.

Tenga en cuenta que no tengo a nadie que me ayude y que este es un esfuerzo en solitario. Puedo encontrar a alguien que me ayude en el lado de AWS si esto afecta a los usuarios.

  1. ¿Puedo admitir 100.000 usuarios de esta manera?
  2. ¿En qué puntos de interrupción debo actualizar a la siguiente instancia de Ec2 hasta los 100.000 usuarios/1000 usuarios simultáneos? (por ejemplo, hasta 5 usuarios simultáneos: t2.micro/db.t2.micro, hasta 40 usuarios simultáneos: instancia EC2 tipo 2/instancia Rds tipo 2, etc.)
  3. ¿Hay algo más que no haya considerado/deba considerar antes de seguir adelante con este plan?

Respuesta1

Es muy difícil decir si una aplicación web manejará una cantidad X de clientes en un sistema en particular. Depende en gran medida de muchos factores, incluido cómo se escribió la aplicación, los marcos utilizados, etc.

La mejor opción sería encontrar algo que pueda utilizar para comparar/simular el uso de la aplicación. Como parece que ya tiene la aplicación web ejecutándose, puede configurar fácilmente una instancia ec2 de cualquier tamaño durante un corto período de tiempo, ejecutar algunas pruebas y luego cerrarla.

Ser capaz de escalar horizontalmente proporcionará una ruta mucho mejor para manejar el crecimiento en el futuro. ¿Qué sucede si el sitio tiene problemas en las instancias más grandes o si necesita escalar más de 100 000? También es posible que el simple hecho de pasar a instancias más grandes probablemente no genere un aumento lineal en el rendimiento.

Una cosa que destaca...

Las imágenes se almacenan en la base de datos.

Almacene las imágenes y cualquier otra cosa que no necesite específicamente que los servidores de aplicaciones manejen en otro lugar. Como ya está utilizando una pila de AWS, S3 es el lugar obvio para imágenes y otros datos estáticos. No pierda el tiempo del servidor de aplicaciones en recursos estáticos.

información relacionada