
He estado intentando reunir todas las piezas para configurar un clúster con equilibrio de carga de tres servidores (2 para nodos web y uno para MySQL) como una pila LAMP en EC2. Esto es sólo para ejecutar pruebas de rendimiento en una aplicación y necesito recopilar la información adecuada para poder estimar el tiempo que llevará. Me preguntaba si alguien podría completar los espacios en blanco sobre lo siguiente:
¿Qué es exactamente una unidad de cómputo? Estoy pensando en necesitar tres instancias reflejadas de AWS CentOS de RightScale, dos como nodos web y una con una base de datos. ¿Necesito entonces tres instancias pequeñas?
Si uso Apache como servidor web, ¿mod_proxy es la mejor manera de equilibrar la carga en EC2 de Amazon? Veo que Amazon tiene un equilibrador de carga que se puede configurar para que funcione con Amazon CloudWatch para proporcionar métricas. ¿Es esa una mejor manera de hacerlo?
Para el almacenamiento en caché de aplicaciones, quiero usar Memcache. ¿Algún problema con esto en el EC2 de Amazon? Estoy pensando en usar Siege (http://www.joedog.org/index/siege-faq) para hacer mis pruebas de estrés. ¿Amazon ya proporciona algo para realizar pruebas de estrés o sería esta una herramienta adecuada?
Para alguien como yo que no tiene experiencia en el uso de este servicio, aparte de instalar nuestra aplicación en ambos nodos web, ¿qué tipo de tiempo estamos viendo aquí? Estoy familiarizado principalmente con la implementación de aplicaciones en instancias de servidor y tengo algo de experiencia con configuraciones de servidor y ajuste de rendimiento, pero soy programador de profesión. Estoy pensando en 30 horas para la configuración y luego probablemente otras 15-20 para las pruebas. ¿Suena eso en el estadio?
Respuesta1
Como se mencionó, una unidad de cómputo es aproximadamente un procesador antiguo de clase servidor de 1.0-1.2 ghz, y usted querrá considerar Elastic Load Balancing de Amazon.
Para una pila LAMP con carga equilibrada simple, debe comenzar con un tipo de instancia pequeña y trabajar desde allí en función de sus pruebas y evaluaciones comparativas.
memcached funciona bien en EC2, pero deberá considerar la naturaleza volátil de EC2 (las instancias pueden fallar sin previo aviso a veces).
Comenzando desde cero sin administración de configuración (no mencionaste nada, así que asumiré nada, pero me gusta Chef), probablemente estarás considerando aproximadamente 2 semanas laborales. Siempre sobreestima, ya que puede ser... complicado trabajar con EC2.
También sugiero usar las herramientas API de EC2 (aún mejor es una biblioteca para su lenguaje de programación favorito) para que pueda controlar sus instancias mediante programación.
Respuesta2
Del resto no puedo opinar, pero sí te puedo decir que:
Respuesta3
Si solo planeas usar las máquinas por un corto tiempo, probablemente puedas simplificar muchas cosas y evitar usar la tienda de bloques elásticos de Amazon. Lo que esto significa es que sus archivos no persistirán cuando se apague o se bloquee. Si no cierra sus instancias, es poco probable que fallen o pierda sus datos. No querrás hacer esto en producción, pero para probarlo debería estar bien.
Para un balanceador de carga, simplemente use AmazonEquilibrio de carga elástico. Utilice Amazon si planea ejecutar con un equilibrador de carga de hardware en su configuración de producción. Si en producción planea usar un balanceador de carga de software, entonces sí, use el mismo en EC2.
Para las pruebas, me gusta hacer pruebas http de bajo nivel conhttperf. Para pruebas a nivel de aplicación, me gusta usar JMeter. Sin embargo, normalmente hago las pruebas al revés. Ejecuto JMeter en EC2 y tengo esa carga de prueba en mi centro de datos que no es EC2. De esa manera estoy haciendo una prueba completa de un extremo a otro. Sin embargo, supongo que estás haciendo la prueba porque no tienes el hardware adicional localmente para ejecutar una configuración de producción simulada.