services ec2 desventajas aws mysql amazon-ec2 amazon-rds

desventajas - connect mysql amazon ec2



¿Cuáles son las ventajas/limitaciones respectivas de Amazon RDS vs. EC2 con MySQL? (8)

Me doy cuenta de un par de diferencias básicas entre los dos, es decir,

  1. EC2 va a ser más barato

  2. RDS no tendría que hacer mantenimiento

Aparte de esos dos, ¿hay alguna ventaja de ejecutar mi base de datos desde RDS en comparación con un servidor EC2 independiente que actúa como servidor MySQL? Suponiendo tamaños de instancia similares, ¿ambos van a encontrarse con las mismas limitaciones en términos de poder manejar una carga?

Para darle un poco más de información acerca de mi uso, tengo una base de datos, nada demasiado grande o algo así (la tabla más grande tiene 1 millón de filas), solo volumen alto SELECCIONADO.


¡Esta es una pregunta simple con una respuesta muy complicada!

En resumen: EC2 proporcionará el máximo rendimiento si usa RAID0 EBS. Hacer RAID0 EBS requiere una gran cantidad de gastos generales de mantenimiento, por ejemplo:

http://alestic.com/2009/06/ec2-ebs-raid

alestic.com/2009/09/ec2-consistent-snapshot

EC2 sin RAID0 EBS proporcionará un mal rendimiento de E / S, por lo que ni siquiera es realmente una opción.

RDS proporcionará un rendimiento muy bueno (aunque no máximo) fuera de la caja. La consola de administración es fantástica y es fácil actualizar las instancias. La alta disponibilidad y los esclavos de solo lectura están a un clic de distancia. Es realmente asombroso.

Respuesta corta: ir con RDS. ¿Todavía en la valla? Ve con RDS! Si le gustan los dolores de cabeza y afina cada último bit para obtener el máximo rendimiento, entonces puede considerar EC2 + EBS RAID 0. Vanilla EC2 es una opción terrible para el alojamiento de MySQL.


Elegimos usar instancias MySQL de EC2 porque tenemos un volumen de lectura alto y necesitamos la replicación maestro-esclavo. Por supuesto, puede girar varias instancias de RDS y configurar la replicación de MySQL entre ellas, pero usamos Scalr.net, que lo administra para usted usando instancias de EC2.

Básicamente, simplemente le decimos a Scalr cuántas instancias de MySQL queremos para mantenerlos activos, automatiza la configuración de la replicación, maneja la conmutación por error automática de la promoción de esclavos para dominar si el maestro finaliza, etc. Hace copias de respaldo de SQL y instantáneas de volumen de EBS el maestro. Entonces, cuando necesita crear un nuevo esclavo, automáticamente monta un volumen EBS de la última instantánea maestra para inicializar el DB esclavo, luego inicia la replicación desde el punto apropiado. Todos apuntan y hacen clic :) (y no, no trabajo para Scalr ni nada. Scalr está disponible como código abierto si no quieres usar su servicio)


En este post hay un excelente punto de referencia entre:

  • Ejecutar MySql en un pequeño EC2 + EBS
  • Ejecutar MySql en un pequeño EC2 + EBS + parámetros MySql ajustados
  • Un pequeño RDS

El punto de referencia es muy bueno ya que no se enfoca solo en condiciones ideales (solo un hilo) sino también en escenarios más realistas, con 50 hilos que llegan a la base de datos.


En cuanto a la pregunta de la ventana de mantenimiento. Si usa Multi-AZ, RDS creará una réplica en espera en otra zona de disponibilidad para que no haya un tiempo de inactividad para el mantenimiento y se proteja contra una falla de zona.

Eso es lo que planeo hacer la próxima semana más o menos. Por supuesto que va a costar más, pero todavía no he trabajado en eso.


He estado probando RDS durante algunos meses y aquí hay algunos problemas que tengo:

  1. Usar el generador de perfiles SQL es complicado. Como no puede conectar Profiler directamente al servidor, debe ejecutar algunos procedimientos almacenados para crear un archivo de registro que pueda analizar. Si bien ofrecen algunas sugerencias sobre cómo se hace eso, dista mucho de ser fácil de usar. Solo recomendaría que tenga un profesional certificado de SQL para este tipo de trabajo.

  2. mientras que Amazon hace una copia de seguridad de su instancia, no puede restaurar una base de datos individual. Tengo una aplicación web con varias bases de datos separadas específicas del cliente y mi solución fue lanzar una instancia EC2 con SQL ejecutándose en ella para adjuntarla a la base de datos RDB de producción e importar los datos y luego realizar una copia de seguridad en la instancia EC2. La otra solución era usar una herramienta de terceros que creara un script SQL masivo (en el servidor de aplicaciones) que recrearía el esquema y llenaría los datos hasta un punto de restauración.


RDS no es realmente un sistema de alta disponibilidad. Lea la letra pequeña en el faq RDS. Durante un evento de conmutación por error, puede llevar hasta 3 minutos la conmutación por error. Amazon adicional decidirá si necesita "actualizar" su instancia de rds y realizar un failover en ese punto, lo que demorará su base de datos por "hasta 3 minutos" (nuestra experiencia es que puede llevar más tiempo que eso).

La alta disponibilidad de RDS es muy diferente de la replicación maestra - maestra o maestro - esclava y es mucho más lenta. No usan la replicación de mysql pero usan algún tipo de replicación de ebs. Por lo tanto, en una situación de conmutación por error montará los ebs en la máquina de copia de seguridad, iniciará mysql, esperará a que mysql realice la recuperación de fallas (ojalá nada se haya corrompido demasiado) y luego hará un cambio dns.

Espero que esto te ayude con tu evaluación.


Tuve la misma pregunta este fin de semana. Hay un período de inactividad de 4 horas por semana para RDS donde realizan mantenimiento. RDS parecía más caro si se puede salir con una microinstancia de EC2. (Esto es cierto para las instancias de prueba que tienen un tráfico mínimo). Tampoco pude cambiar la zona horaria de la instancia de RDS porque no tengo permiso.

Ahora estoy viendo http://xeround.com/ que es mysql en EC2 por otra compañía. No usan InnoDB, sino que tienen su propio motor llamado IDG. Estoy comenzando a investigar eso, pero están en BETA y darán 500MB de espacio.


MySQL en EC2 vs RDS MySQL

Ventajas de MySQL en EC2 Amazon EC2 Inter Region Replication

Copie instantáneas en las regiones de Amazon EC2

RAID 0 con EBS Striping en MySQL EC2

Se pueden conectar más de 3TB de espacio en disco (no lo necesitará para su tamaño) en MySQL en EC2.

Desventajas de MySQL en EC2

Configuración, monitoreo y mantenimiento en comparación con RDS

Copias de punto en el tiempo disponibles en RDS

IOPS menor que RDS MySQL (incluso después de RAID 0) actualmente, 10800 con 6 discos para MySQL en EC2 mientras que 12500 IOPS 16KB en RDS MySQL