Persistencia de datos de Amazon EC2

25

Según las preguntas frecuentes de Amazon EC2 , cuando se termina una instancia, los datos desaparecen. ¿Qué pasos puedo tomar para preservar los datos en caso de que mi instancia se reinicie? He estado buscando en EBS y S3. ¿Alguno de estos sería útil para almacenar una base de datos activa? ¿Con qué frecuencia se reinician las instancias de todos modos?

Kyle Cronin
fuente
2
Una nota al margen sobre terminología: tenga en cuenta que terminar una instancia es diferente de simplemente reiniciarla . La terminación borra el almacenamiento de la instancia mientras que el reinicio no lo hace (consulte, por ejemplo, stackoverflow.com/questions/637790/… ). Así que no quieres decir reiniciar :)
Jonik

Respuestas:

25

Como otros han dicho, EBS - Elastic Block Storage. Lo estoy usando ahora que se lanza al público en general. Es mejor que S3 en múltiples puntos:

  • EBS son rápidos . Más rápido que incluso los montes locales, según Amazon.
  • EBS se monta como dispositivos adecuados . A diferencia de S3, que necesitará una lógica de acceso de expulsión de S3 personalizada en su código, o middleware (JungleDisk, ElasticDisk, et al) que presentan sus propios problemas y costos
  • EBS son fáciles de respaldar . Amazon le da a uno la capacidad de tomar instantáneas, que se guardan en S3
  • EBS es portátil entre instancias: los volúmenes se pueden desmontar de una instancia y adjuntar a otra instancia
  • Los dispositivos EBS incluso se pueden RAID 'juntos para una mayor confiabilidad

Mi experiencia con EBS hasta ahora ha sido lo más positivo de AWS con lo que he tratado hasta la fecha.


Actualización: Si bien mi experiencia con EBS ha sido positiva, otros han tenido problemas. Muy específicamente, EBS no implementa fsync () correctamente. Ted Dziuba tiene algunas palabras interesantes sobre esto en su publicación de blog Amazon - The Purpose of Pain : Myth 2: Architecture te salvará de las fallas de la nube

Esto se vuelve aún más entretenido con Amazon Elastic Block Store, que, como descubrieron los administradores de Reddit, aceptará con gusto las llamadas a fsync (), y mentirá, diciendo que los datos se han escrito en el disco, cuando es posible que no estado.

Stu Thompson
fuente
Los EBS a veces son rápidos, a veces lentos. RAIDing múltiples volúmenes juntos ayuda mucho.
ceejayoz
4

EBS ciertamente funcionaría para una base de datos, y es uno de los ejemplos en la Descripción EBS de Amazon . "Amazon EBS es particularmente adecuado para aplicaciones que requieren una base de datos ..."

EBS funcionará como un dispositivo de bloque (piense en el disco duro), brindándole una gran libertad y comodidad al usarlo. S3 es conceptualmente más como FTP realmente rápido, con una API especial. Posiblemente podría usarlo como parte de una base de datos, pero las bases de datos estándar no se ejecutan en él (¿todavía?).

Deberá revisar las descripciones de rendimiento de Amazon (EBS> S3), durabilidad (S3> EBS) y precio (depende).

Joshdan
fuente
2

Como se menciona en otras respuestas, EBS es la solución estándar para el almacenamiento en disco persistente y conveniente. Debería ser tu opción predeterminada. De hecho, los tipos de instancia EC2 más nuevos lo usan por defecto, sobre el almacenamiento de instancia original no persistente.

Sin embargo, al considerar la persistencia, también querrá considerar cuidadosamente la disponibilidad (evitando momentos en que los datos no están disponibles) y la durabilidad (evitando la pérdida de datos) para sus datos.

EBS cubre los casos de uso básicos, pero tenga en cuenta:

  • S3 está diseñado para una mayor durabilidad que EBS. En pocas palabras, conservan más copias de sus datos y reclaman una durabilidad extremadamente alta del 99.999999999% para S3 (consulte las preguntas frecuentes de S3). La probabilidad numérica real aquí (que es tan alta que hace que las invasiones marcianas parezcan más probables) no es tan importante como el hecho de que AWS ha apostado su reputación en la durabilidad S3 y tiene un muy buen historial aquí. Lo mismo no es cierto para EBS.
  • Si bien Amazon no dará estadísticas sobre esto directamente, muchas personas creen que el almacenamiento de instancias históricamente ha ofrecido una mayor disponibilidad que EBS.

Las interrupciones recientes de AWS, una falla tan grave de varios días en 2011 y otra en 2012 , dan algunas ilustraciones de las complejidades de EBS y los riesgos pequeños pero no insignificantes de interrupciones y pérdida de datos.

En pocas palabras: para asegurarse de que no perderá sus datos, mantenga copias de seguridad de datos en S3 . Las instantáneas de EBS son una manera fácil de hacer esto para EBS. Si la alta disponibilidad es crítica, considere también usar el almacenamiento de instancias en múltiples zonas de disponibilidad (además de, o en lugar de, EBS).

jlevy
fuente
0

Parece que si le preocupa perder datos, entonces necesita el EBS mencionado anteriormente . Hay una pequeña introducción aquí .

Hasta ahora no lo he investigado mucho más que esto, solo estoy usando S3 para copias de seguridad actualmente.

Scott Bennett-McLeish
fuente