24 de abril de 2008: Amazon está construyendo una plataforma de computación en la nube revolucionaria con su servicio Electric Compute Cloud (EC2). La función de IP elástica anunciada recientemente amplía drásticamente las posibilidades de EC2 como un verdadero entorno de alojamiento.
Para los requisitos estándar del sitio web, la implementación actual parece adecuada, pero para los proyectos que requieren alta disponibilidad, existe al menos una limitación significativa.
Imaginamos un clúster con equilibrio de carga completamente dentro de EC2. El front-end de esta configuración sería administrado por dos pequeñas instancias EC2 que servirían efectivamente como balanceadores de carga o enrutadores. Las solicitudes llegarían al enrutador principal y, posteriormente, se dirigirían a la instancia menos cargada dentro del clúster. Dado que un solo enrutador sirve como un solo punto de falla, se requiere al menos un enrutador adicional para un sistema verdaderamente altamente disponible. Un monitor podría hacer ping regularmente al enrutador principal y, si hay algún problema, el enrutador secundario debería reasignarse la dirección IP a sí mismo y tomar el control como enrutador principal.
Junto con las zonas de disponibilidad de Amazon, dicho sistema no tendría puntos únicos de falla. Para probar la viabilidad de este diseño, generamos dos instancias EC2 pequeñas y monitoreamos el tiempo que le tomó a una segunda instancia tomar la dirección IP de la primera. En tres pruebas, tomó en promedio 3 minutos y medio y nunca menos de 3 minutos para que esto ocurriera.
Ejecutamos un clúster similar en un entorno de alojamiento tradicional y las adquisiciones de IP tardan aproximadamente 2 segundos.
Por supuesto, el resultado de esto es que, en caso de falla del enrutador principal, habría un tiempo de inactividad teórico de hasta 3.5 minutos mientras el enrutador secundario espera que la IP se propague. Suponemos que la gran cantidad de enrutadores dentro de la red de Amazon hace que la propagación de IP más rápida sea una tarea no trivial.
Una solución sería mover los enrutadores fuera de EC2. El aumento de los tiempos de ping y latencia hace que esta solución sea subóptima.
Idealmente, Amazon ofrecería una solución de equilibrio de carga dedicada diseñada específicamente para tales fines. A menos que se ofrezca alguna otra solución, los clústeres «altamente disponibles» totalmente dentro del servicio EC2 de Amazon no estarán realmente altamente disponibles.