Amazon Aurora
Base de datos relacional nativa de la nube de AWS que ofrece hasta 5 veces el rendimiento de MySQL y hasta 3 veces el de PostgreSQL
Descripción general
Amazon Aurora es un motor de base de datos relacional diseñado desde cero por AWS para la nube. Es compatible con MySQL y PostgreSQL, lo que permite utilizar el código y las herramientas de aplicaciones existentes con cambios mínimos. El almacenamiento se replica automáticamente en 6 copias distribuidas en 3 zonas de disponibilidad y se escala automáticamente hasta 128 TB. Con Aurora Serverless v2, la capacidad de la base de datos se ajusta automáticamente según la demanda de la carga de trabajo, minimizando los costos en periodos de inactividad. Se pueden crear hasta 15 réplicas de lectura y el tiempo de conmutación por error suele ser inferior a 30 segundos. Aurora Global Database replica los datos en hasta 5 regiones con una latencia inferior a 1 segundo, permitiendo la conmutación por error entre regiones.
Arquitectura de separación entre cómputo y almacenamiento
La base del alto rendimiento de Aurora es su diseño propietario que separa el cómputo del almacenamiento. En RDS tradicional, el almacenamiento estaba directamente adjunto a la instancia, pero en Aurora la capa de almacenamiento opera como un sistema distribuido independiente. Los datos se dividen en segmentos de 10 GB y se almacenan como 6 copias distribuidas en 3 AZ. Una escritura se considera completada cuando 4 de las 6 copias responden exitosamente (quórum 4/6), y una lectura se completa con la respuesta de 3 copias (quórum 3/6), lo que permite la lectura de datos incluso si se pierden 2 copias simultáneamente. Los segmentos con fallos detectados se reconstruyen automáticamente. Azure SQL Database Hyperscale también separa el cómputo del almacenamiento, pero Aurora ofrece mayor flexibilidad al soportar dos motores (MySQL y PostgreSQL), con un tiempo de conmutación por error generalmente inferior a 30 segundos.
Serverless v2 y réplicas de lectura - cuándo usar cada uno
Aurora Serverless v2 escala automáticamente la capacidad desde 0.5 ACU (aproximadamente 1 GB de memoria) hasta 128 ACU, siendo ideal para cargas de trabajo con alta variabilidad de tráfico. Durante la noche o en horas de baja demanda se reduce al mínimo de ACU, lo que disminuye significativamente los costos en comparación con instancias provisionadas. Por otro lado, cuando la carga de lectura es alta, agregar réplicas de lectura es efectivo, pudiendo crear hasta 15. Las réplicas de lectura también funcionan como destinos de conmutación por error, promoviéndose automáticamente ante un fallo del primario. Libros especializados en operación de bases de datos (Amazon) explican en detalle los criterios de decisión entre Serverless y provisionado.
Estrategias de recuperación con Backtrack y Global Database
Al habilitar la función Backtrack en Aurora compatible con MySQL, es posible retroceder la base de datos a cualquier punto en las últimas 72 horas en cuestión de segundos. La recuperación ante errores humanos como la ejecución de un DELETE incorrecto o inconsistencias de datos tras un despliegue es enormemente más rápida que restaurar desde un snapshot. Para la preparación ante fallos regionales, Aurora Global Database es efectivo, replicando datos en hasta 5 regiones secundarias con una latencia inferior a 1 segundo. La conmutación por error entre regiones se completa normalmente en menos de 1 minuto, con un RPO (objetivo de punto de recuperación) inferior a 1 segundo. En cuanto a costos, las instancias reservadas con pago total anticipado a 1 año permiten un ahorro de aproximadamente el 40%. Utilizando Performance Insights para visualizar el rendimiento de las consultas e identificar consultas lentas y optimizar índices de forma continua, se puede evitar el sobredimensionamiento innecesario de las instancias.