2011-01-27 10 views
9

Entonces, en una situación simple, si solo hay una instancia, entonces puedo almacenar los datos en un volumen EBS montado en esa instancia. p.ej./mnt/db¿cómo funciona varias instancias de EC2 (escala) en un EBS para el almacenamiento de datos?

Sin embargo, ¿cómo funciona si escalo y tengo varias instancias (escala estática o dinámica)?

Dado que un EBS solo se puede conectar a una instancia, si tengo varias instancias, ¿significa que tengo que adjuntar un volumen de EBS para cada instancia? Si ese es el caso, los datos en el volumen de EBS de cada instancia serán diferentes.

Es obvio que quiero que todas las instancias tengan acceso (R & W) a un solo volumen (como almacenamiento de datos). y los datos en el volumen crecerán constantemente y no hay tiempo de inactividad.

¿Cuál es la solución? ¿Hay alguna forma de que no monte el dispositivo (EBS) y solo lo llame para acceder a los datos?

aquí es lo que ocurre: 1) si cada instancia tiene su propio volumen EBS, a continuación, cada intervalo de tiempo (por ejemplo, 1 hora), todas las instancias desmontará & separar el volumen EBS, y adjuntar una nueva. Luego hay una poderosa instancia que monta todos los volúmenes de EBS recién separados y agrega todos los datos. 2) o similar a 1), en lugar de separar y adjuntar, simplemente tomo una instantánea de todos los volúmenes para todas las instancias. Luego, la poderosa agregación de instancia de los datos de la instantánea. Y guarde el resultado en otro EBS o S3.

Estos dos enfoques parecen estar funcionando ... pero requieren mucho trabajo. ¿Hay alguna manera más inteligente de abordar este problema? Gracias.

  • Por cierto, debido a un problema de rendimiento, no puedo hacer que la instancia escriba datos en S3. :)

OH ¿qué tal esto 3) En primer lugar, todas las instancias tienen su propio EBS y escriben datos en el EBS. y luego cada hora, los datos serán enviados a S3. Entonces otra instancia los agregará.

+1

Esta es una muy buena pregunta y forma parte de AWS Auto Scaling que no entiendo y que vino en busca de una respuesta. ¿Cómo funciona la escala automática cuando la base de datos está en un volumen EBS? Es decir, ¿cómo tienen acceso las nuevas instancias EC2? –

Respuesta

1

¿qué tal si tenemos una instancia de ang NFS que se puede montar en otras instancias?

+1

está en Linux, y creo que NFS es lento, ¿verdad? – murvinlai

+0

Sí, puede configurar NFS en Linux. Por el lado del rendimiento, obviamente, más lento que el almacenamiento efímero directo. Utilice la unidad efímera y simplemente sincronícela con un NFS utilizando una tarea cron en un horario específico. –

0

Parece que necesita crear una instantánea de EBS de su instancia EC2 más actualizada. Esto creará una AMI respaldada por EBS. Luego, deberá finalizar todas las instancias de EC2 que no estén actualizadas y abrir una nueva pila de instancias desde su AMI recién creada. Si tenía un equilibrador de carga en ejecución, entonces tendría que adjuntar estas nuevas instancias a su equilibrador de carga también. Parece un poco largo de aliento, pero todo se puede hacer mediante programación. Al menos así es como creo que escalar en la nube con Amazon funciona y hasta donde va la propagación de cambios en varias instancias. Alguien más con más experiencia verifica esto. Planeo probarlo yo mismo más adelante.

Cuestiones relacionadas