Me doy cuenta de un par de diferencias básicas entre los dos, es decir
EC2 va a ser más barato
RDS no tendría que hacer mantenimiento
Además de esos dos, ¿hay alguna ventaja en ejecutar mi base de datos desde RDS en lugar de un servidor EC2 separado que actúa como un servidor MySQL? Suponiendo tamaños de instancia similares, ¿ambos se encontrarán con las mismas limitaciones en términos de poder manejar una carga?
Para darle un poco más de información sobre mi uso, tengo una base de datos, nada demasiado grande ni nada (tabla más grande de 1 millón de filas), solo un alto volumen SELECT.
mysql
amazon-ec2
amazon-rds
Macgyver
fuente
fuente
Respuestas:
¡Esta es una pregunta simple con una respuesta muy complicada!
En resumen: EC2 proporcionará el máximo rendimiento si utiliza un RAID0 EBS. Hacer RAID0 EBS requiere una cantidad considerable de gastos generales de mantenimiento, por ejemplo:
http://alestic.com/2009/06/ec2-ebs-raid
http://alestic.com/2009/09/ec2-consistent-snapshot
EC2 sin RAID0 EBS proporcionará un rendimiento de E / S deficiente, por lo que ni siquiera es una opción.
RDS proporcionará un rendimiento muy bueno (aunque no máximo) listo para usar. La consola de administración es fantástica y es fácil actualizar las instancias. Los esclavos de alta disponibilidad y solo lectura están a un clic de distancia. Es realmente asombroso.
Respuesta corta: ir con RDS. ¿Todavía en la cerca? Ir con RDS !!! si le gustan los dolores de cabeza y el ajuste hasta el último momento para obtener el máximo rendimiento, puede considerar EC2 + EBS RAID 0. Vanilla EC2 es una opción terrible para el alojamiento de MySQL.
fuente
En esta publicación hay un excelente punto de referencia entre:
El punto de referencia es muy bueno ya que no está enfocado solo en condiciones ideales (solo un hilo) sino también en escenarios más realistas, con 50 hilos golpeando la base de datos.
fuente
RDS no es realmente un sistema de alta disponibilidad. Lea la letra pequeña en las preguntas frecuentes de RDS. Durante un evento de conmutación por error, puede llevar hasta 3 minutos la conmutación por error. Amazon adicional decidirá que necesita "actualizar" su instancia de rds y realizar una conmutación por error en ese punto, lo que reducirá su base de datos durante "hasta 3 minutos" (nuestra experiencia es que puede tomar más tiempo que eso).
La alta disponibilidad de RDS es muy diferente a la replicación maestro - maestro o maestro - esclavo y es mucho más lenta. No usan la replicación mysql pero usan algún tipo de replicación ebs. Entonces, en una situación de conmutación por error, montará los ebs en la máquina de respaldo, iniciará mysql, esperará a que mysql se recupere de la falla (con suerte, nada se corrompió demasiado), luego hará un cambio dns.
Espero que esto te ayude con tu evaluación.
fuente
Elegimos usar instancias EC2 MySQL porque tenemos un alto volumen de lectura y necesitamos una replicación maestro-esclavo. Por supuesto, puede activar varias instancias de RDS y configurar la replicación de MySQL entre ellas usted mismo, pero usamos Scalr.net, que lo administra por usted utilizando instancias de EC2.
Básicamente, simplemente le decimos a Scalr cuántas instancias de MySQL queremos mantener, 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 termina, etc. Realiza copias de seguridad de volcado SQL e instantáneas de volumen EBS de el maestro. Entonces, cuando necesita crear un nuevo esclavo, automáticamente monta temporalmente un volumen EBS de la última instantánea maestra para inicializar la base de datos esclava, luego comienza la replicación desde el punto apropiado. Todos señalan y hacen clic :) (y no, no trabajo para Scalr ni nada. Scalr está disponible como Open Source si no desea utilizar su servicio)
fuente
En cuanto a la ventana de mantenimiento pregunta. Si usa Multi-AZ, RDS creará una réplica en espera en otra zona de disponibilidad para que no haya 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 te va a costar más, pero aún no he trabajado un poco.
fuente
MySQL en EC2 vs RDS MySQL
Ventajas de MySQL en EC2 Amazon EC2 Replicación entre regiones
Copie instantáneas en las regiones de Amazon EC2
RAID 0 con EBS Striping en MySQL EC2
Se pueden conectar más de 3 TB de espacio en disco (no necesitará esto 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 seguridad puntuales 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
fuente
He estado probando RDS durante unos meses y aquí hay algunos problemas que tengo:
Usar el perfilador de SQL es complicado. Como no puede conectar el generador de perfiles 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, está lejos de ser fácil de usar. Solo recomendaría que tenga un profesional certificado de SQL que haga este tipo de trabajo.
Si bien Amazon realiza 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 específicas para el cliente y mi solución fue lanzar una instancia EC2 con SQL ejecutándose para adjuntarla a la base de datos RDB de producción e importar los datos y luego hacer una copia de seguridad en la instancia EC2. La otra solución fue utilizar una herramienta de terceros que crea un script SQL masivo (en el servidor de aplicaciones) que recreará el esquema y volverá a llenar los datos en un punto de restauración.
fuente
Tuve la misma pregunta este fin de semana. Hay una ventana de tiempo de inactividad de 4 horas por semana para RDS donde realizan tareas de mantenimiento. RDS parecía más costoso si puedes salirte 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 mirando http://xeround.com/ que es mysql en EC2 por otra compañía. No usan InnoDB, sino que tienen su propio motor llamado IDG. Estoy empezando a investigar eso, pero están en BETA y darán 500 MB de espacio.
fuente