Amazon RDS: Bases de Datos Gestionada

Lectura
35 min~7 min lectura
CONCEPTO CLAVE: Amazon RDS (Relational Database Service) es un servicio de base de datos relacional completamente gestionado que simplifica la configuración, operación y escalado de bases de datos en la nube de AWS. Permite التركيز en aplicaciones, no en administración de bases de datos.

¿Qué es Amazon RDS?

Amazon Relational Database Service (RDS) es un servicio web que facilita la configuración, operación y escalado de una base de datos relacional en la nube de Amazon Web Services. Con RDS, puedes tener bases de datos como MySQL, PostgreSQL, Oracle, SQL Server y MariaDB sin preocuparte por las tareas administrativas subyacentes como el aprovisionamiento de hardware, instalación de software, parches o copias de seguridad.

Imagina que necesitas una base de datos MySQL para tu aplicación web. Traditionally, tendrías que:

  1. Provisionar un servidor (EC2)
  2. Instalar el sistema operativo
  3. Instalar y configurar MySQL
  4. Configurar almacenamiento
  5. Implementar backups
  6. Configurar replicación para alta disponibilidad
  7. Monitorear el rendimiento
  8. Manejar actualizaciones y parches de seguridad

Con Amazon RDS, AWS gestiona todo esto por ti, permitiéndote专心 enfocarte en lo que realmente importa: tus datos y tu aplicación.

Motores de Base de Datos Soportados

RDS ofrece múltiples motores de bases de datos para adaptarse a diferentes necesidades:

MotorDescripciónMejor Para
Amazon AuroraMotor compatible con MySQL y PostgreSQL, creado por AWSAlto rendimiento, enterprise
MySQLPopular base de datos open sourceAplicaciones web, startups
PostgreSQLBase de datos relacional avanzada open sourceDatos complejos, GIS, análisis
MariaDBForo de MySQL, compatible con MySQLMigraciones desde MySQL
OracleBase de datos empresarial robustaGrandes corporaciones
SQL ServerBase de datos MicrosoftAplicaciones Windows/.NET
📌 Amazon Aurora es el motor estrella de RDS. Ofrece hasta 5 veces el rendimiento de MySQL y 3 veces el de PostgreSQL estándar, con replicación automática y almacenamiento tolerante a fallos.

Características Principales de RDS

1. Alta Disponibilidad con Multi-AZ

Una de las características más valiosas de RDS es la opción de implementación Multi-AZ. Cuando habilitas esta opción, RDS crea automáticamente una réplica síncrona de tu base de datos en una zona de disponibilidad diferente (AZ).

💡 Funcionamiento: Cuando escribes datos, se escriben simultáneamente en la base de datos primaria y en la réplica en otra AZ. Si la AZ primaria falla, RDS detecta automáticamente el fallo y promueve la réplica a primaria (típicamente en 60-120 segundos).

2. Réplicas de Lectura

Las réplicas de lectura permiten escalar horizontalmente las operaciones de lectura. Puedes crear hasta 5 réplicas de lectura (15 para Aurora) que reciben tráfico de consultas SELECT, reduciendo la carga en tu base de datos primaria.

Base de datos primaria (escrituras + lecturas)
         ↓
    Réplica 1 (lecturas) ← App web
    Réplica 2 (lecturas) ← App móvil
    Réplica 3 (lecturas) ← Dashboard

3. Copias de Seguridad Automatizadas

RDS realiza copias de seguridad automáticas diarias durante la ventana de mantenimiento que configures. Puedes recuperar tu base de datos a cualquier punto dentro del período de retención (1-35 días).

4. Parcheo Automatizado

AWS aplica automáticamente parches de seguridad y actualizaciones menores del motor de base de datos durante la ventana de mantenimiento que especifiques, minimizando tiempo de inactividad.

Clases de Instancia y Almacenamiento

RDS ofrece diferentes clases de instancia organizadas por generación:

ClasevCPURAMUso Recomendado
db.t3.micro21 GBDesarrollo, pruebas
db.t3.small22 GBWorkloads pequeñas
db.m5.large28 GBProducción general
db.m5.xlarge416 GBMayor rendimiento
db.r5.large216 GBOptimizado para memoria
📌 Tipos de almacenamiento: RDS ofrece almacenamiento SSD (gp2 y gp3) para uso general, y almacenamiento IOPS aprovisionado (io1) para workloads que requieren alto rendimiento de E/S.

Seguridad en RDS

La seguridad es fundamental en RDS. AWS proporciona múltiples capas de protección:

  1. Security Groups: Controlan el tráfico de red entrante y saliente a nivel de instancia de base de datos.
  2. Encryption: Soporta cifrado en reposo usando AWS KMS y cifrado en tránsito con SSL/TLS.
  3. IAM Authentication: Puedes autenticarte en MySQL y PostgreSQL usando tokens de IAM.
  4. Subnets privados: Las instancias RDS típicamente se despliegan en subnets privadas dentro de una VPC.
  5. Firewall virtual: Los Security Groups actúan como firewall virtual para controlar acceso.
⚠️ Importante: Aunque RDS gestiona la base de datos, tú eres responsable de: permisos de acceso, gestión de usuarios y contraseñas, cifrado de datos sensibles a nivel de aplicación, y configuración de backup y retención.

Cuándo Usar RDS vs. EC2 con Base de Datos

💡 Regla general: Usa RDS cuando quieras gestion de base de datos, alta disponibilidad y escalado automático. Usa EC2 cuando necesites control total del motor de base de datos o configuraciones personalizadas avanzadas.
CriteriaRDSEC2 con DB
AdministraciónGestionado por AWSTu responsabilidad
Multi-AZFácil configuraciónConfiguración manual
Parcheo automáticoNo
Backups automatizadosImplementación manual
Control totalLimitadoTotal
CosteMás caro (incluye gestión)Más barato (infraestructura)

Conceptos de Facturación

Los costos de RDS se componen de:

  1. Instancia: Por hora según la clase de instancia seleccionada.
  2. Almacenamiento: Por GB-mes aprovisionado.
  3. IOPS: Costos adicionales para almacenamiento io1.
  4. Transferencia de datos: Costos por GB transferidos.
  5. Licencias: Oracle y SQL Server incluyen costos de licencia (BYOL o License Included).
Ver más sobre opciones de licenciamiento

License Included: AWS incluye las licencias de Oracle/SQL Server en el precio por hora.

BYOL (Bring Your Own License): Traes tus propias licencias de Oracle. Necesitas tener licencias de Oracle adecuadas para ejecutar en AWS.

Operaciones Comunes en RDS

«La belleza de RDS está en que puedes crear una base de datos producción-ready en minutos, con alta disponibilidad y backups automatizados, sin ser un DBA experto.»

Escalado

RDS permite escalar verticalmente (modificar la clase de instancia) y horizontalmente (agregar réplicas de lectura) según las necesidades de tu aplicación.

💡 Escalado de almacenamiento: Puedes escalar el almacenamiento de tu instancia RDS incluso mientras está en ejecución, sin tiempo de inactividad (excepto para SQL Server).

Monitoreo

Amazon RDS se integra con CloudWatch para monitoreo:

  • CPUUtilization: Uso de CPU de la instancia.
  • DatabaseConnections: Número de conexiones activas.
  • FreeStorageSpace: Espacio en disco disponible.
  • ReadIOPS/WriteIOPS: Operaciones de E/S por segundo.
  • DatabaseConnections: Conexiones activas.

Casos de Uso Comunes

  1. Aplicaciones web y móviles: Backends de aplicaciones que requieren bases de datos relacionales con alta disponibilidad.
  2. E-commerce: Sistemas de catálogo, inventarios y procesamiento de órdenes.
  3. Sistemas empresariales: ERP, CRM y otras aplicaciones críticas de negocio.
  4. Gamificación: Plataformas de juegos que requieren bases de datos escalables.
  5. Analítica: Almacenamiento de datos para análisis con herramientas BI.
CONCEPTO CLAVE: RDS es ideal cuando necesitas una base de datos relacional gestionada, pero no requiere acceso root o administrativa al servidor de base de datos. Para casos de uso que requieren configuración especial o acceso a nivel de SO, considera usar EC2.

Resumen de Puntos Clave

Para tu examen de AWS Cloud Practitioner, recuerda:

  • RDS es un servicio de base de datos relacional gestionado.
  • Soporta 6 motores: Aurora, MySQL, PostgreSQL, MariaDB, Oracle y SQL Server.
  • Multi-AZ proporciona alta disponibilidad con replicación síncrona.
  • Réplicas de lectura permiten escalar operaciones de lectura.
  • Backups automatizados están incluidos con retención configurable.
  • Los parches se aplican automáticamente durante ventanas de mantenimiento.
  • Puedes usar IAM Auth para autenticación en MySQL y PostgreSQL.
  • El cifrado en reposo usa AWS KMS.
🧠 Quiz

¿Cuál es la principal ventaja de usar Amazon RDS Multi-AZ frente a una instancia EC2 con base de datos?

  • A) Es más barato que EC2
  • B) Proporciona alta disponibilidad automática con replicación síncrona
  • C) Permite acceso root al servidor
  • D) No requiere configuración de seguridad
✅ Respuesta correcta: B) Multi-AZ crea una réplica síncrona en otra zona de disponibilidad, proporcionando failover automático sin intervención manual.
🧠 Quiz

¿Cuántas réplicas de lectura puedes crear máximo para MySQL en Amazon RDS?

  • A) 1
  • B) 3
  • C) 5
  • D) 15
✅ Respuesta correcta: C) Puedes crear hasta 5 réplicas de lectura para MySQL, PostgreSQL, MariaDB y Oracle. Para Amazon Aurora puedes crear hasta 15.
🧠 Quiz

¿Qué servicio de AWS usa RDS para el cifrado de datos en reposo?

  • A) ACM
  • B) Secrets Manager
  • C) KMS
  • D) CloudHSM
✅ Respuesta correcta: C) RDS usa AWS Key Management Service (KMS) para el cifrado de datos en reposo, incluyendo backups, réplicas y snapshots.

Conclusión

Amazon RDS simplifica enormemente la gestión de bases de datos relacionales en la nube. Su capacidad de proporcionar alta disponibilidad, backups automatizados, parches de seguridad y escalado con mínimo esfuerzo operativo lo convierte en la opción preferred para la mayoría de aplicaciones que requieren bases de datos relacionales.

En la próxima lección exploraremos Amazon DynamoDB, el servicio de base de datos NoSQL de AWS, que ofrece un modelo de datos completamente diferente para casos de uso que requieren escalabilidad horizontal masiva y latencia de milisegundos de un solo dígito.