1 🗄️ Introducción a las Bases de Datos en AWS
AWS ofrece una variedad de servicios de bases de datos completamente gestionados, diseñados para diferentes tipos de aplicaciones y necesidades.
1.1 🧰 Servicios de Bases de Datos en AWS
1.1.1 RDS (Relational Database Service)
Servicio gestionado para bases de datos relacionales:
- Soporta MySQL, PostgreSQL, MariaDB, Oracle y SQL Server.
- Respaldos automáticos, escalado vertical, alta disponibilidad (Multi-AZ).
# Crear una instancia RDS
aws rds create-db-instance \
--db-instance-identifier mi-db \
--db-instance-class db.t3.micro \
--engine mysql \
--master-username admin --master-user-password clave123 \
--allocated-storage 20
1.1.2 Amazon Aurora
Motor relacional compatible con MySQL y PostgreSQL:
- Hasta 5 veces más rápido que MySQL estándar.
- Alta disponibilidad y replicación automática.
1.1.3 DynamoDB
Base de datos NoSQL (clave-valor y documento):
- Totalmente gestionada, altamente escalable.
- Baja latencia, ideal para aplicaciones en tiempo real.
# Crear una tabla DynamoDB
aws dynamodb create-table \
--table-name Productos \
--attribute-definitions AttributeName=id,AttributeType=S \
--key-schema AttributeName=id,KeyType=HASH \
--provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5
1.1.4 Amazon Redshift
Almacenamiento de datos a gran escala (data warehouse):
- Optimizado para análisis y consultas complejas.
- Ideal para BI y reporting empresarial.
1.1.5 Amazon ElastiCache
Cache en memoria para acelerar aplicaciones:
- Compatible con Redis y Memcached.
- Reduce la carga de lectura en las bases de datos.
1.2 🔐 Seguridad en Bases de Datos
- Cifrado en tránsito y en reposo (RDS, Aurora, DynamoDB).
- Control de acceso con IAM y políticas específicas.
- Grupos de seguridad y subredes privadas (RDS en VPC).
1.3 📊 Monitoreo y Alta Disponibilidad
- Monitoreo con Amazon CloudWatch.
- Multi-AZ para RDS y Aurora.
- Backups automáticos y snapshots manuales.
1.4 📌 Buenas Prácticas
- Usar subredes privadas para instancias de bases de datos.
- Habilitar backups y auditoría.
- Limitar accesos con roles IAM y grupos de seguridad.
- Escoger el tipo de base de datos adecuado según la carga y necesidad.