En un artículo en su blog donde explica los pormenores de la caída, AWS señala que la región US-EAST-1 se desconectó porque la compañía añadió más capacidad al sistema Kinesis, sin comprobar si la configuración del sistema operativo realmente permitía el procedimiento. Como quedó comprobado, no fue así.
Para que los servidores de la plataforma de Kinesis se comuniquen entre sí, deben crear los denominados “hilos” entre cada uno de los servidores de la infraestructura. Según AWS, hay “muchos miles de servidores” en la misma flota, por lo que cuando se añaden nuevos, pueden pasar unas horas antes de que estos hilos aparezcan.
Sin embargo, en este caso particular, la adición de capacidad “hizo que todos los servidores de la flota excedieran el número máximo de hilos permitidos por la configuración del sistema operativo”. La forma más rápida de solucionar el problema fue reiniciar todo Kinesis, lo que llevó un tiempo porque sólo se pueden volver a poner en marcha “unos cientos” de servidores a la vez.
Para evitar que el incidente se repita, AWS planea usar servidores más grandes, y establecer un sistema de notificación. “En breve nos trasladaremos a servidores de CPU y memoria más potentes, reduciendo el número total de servidores y, por lo tanto, los hilos requeridos por cada servidor para comunicarse a través de la flota”, se lee en el artículo.
“Esto proporcionará un margen significativo en el número de hilos utilizados ya que el total de hilos que cada servidor debe mantener es directamente proporcional al número de servidores de la flota”.
La compañía también planea nuevas “alarmas precisas para el consumo de hilos en el servicio”, así como “un incremento en los límites de conteo de hilos en la configuración de nuestro sistema operativo, lo que creemos nos dará significativamente más hilos por servidor, conducente a un margen de seguridad considerablemente mejorado”.