Existen dos estrategias generales para hacer frente a las oleadas de tráfico: aumentar la capacidad y reducir los costos.
Aumentar la capacidad significa autoescalar, lo que todos estaban muy entusiasmados cuando las nubes públicas estuvieron disponibles por primera vez. En su sentido más básico, esto iniciará más servidores web para usted en función de la carga y los agregará a un equilibrador de carga, pero como puede ser difícil de manejar, también hay soluciones más automáticas, como Elastic Beanstalk.
El problema con la expansión de capacidad automatizada es que también es una expansión de factura automatizada: 10 veces el tráfico normal significa que 10 servidores significa 10 veces más dinero que tiene que pagar. Es por eso que, si bien es una estrategia útil para tener en cuenta, creo que siempre debes comenzar por ver cuánto puedes hacer trampa.
Por trampa, me refiero a la memoria caché, que se basa en la idea de que la mayoría de las veces puede dar a los usuarios datos ligeramente desactualizados y que no se darán cuenta, y eso puede ahorrarle enormes cantidades de tiempo. Imagine que tiene una página que decide que está bien si está desactualizada en cinco segundos y obtiene 20 requisitos / s. Sin el almacenamiento en caché, está ejecutando ese cálculo 1200 veces por minuto, mientras que con el almacenamiento en caché solo son 12. Puede ver cómo esto puede marcar una gran diferencia.
Por supuesto, hay muchos tipos de almacenamiento en caché, y un sitio web exitoso utilizará varios de ellos. Pero para su caso de uso, hay dos opciones bastante buenas y fáciles.
El primero es hacer que el sitio sea completamente estático. Esto supone que puede hacerlo, pero si puede, entonces solo tiene que Nginx sirva el html directamente, y puede atender toneladas de solicitudes sin problemas.
Si necesita algún nivel de dinámica, entonces hacer un buen almacenamiento en caché de página completa es una buena opción. Nginx tiene cierta capacidad para hacer esto, pero realmente me gusta Varnish debido a su flexibilidad.
Cualquiera que sea la opción u opciones que elija, asegúrese de realizar pruebas de carga para validar que la ha configurado correctamente; a veces, arreglar un punto expone un nuevo cuello de botella.