Exploring AWS !!
Day 37:
Amazon RDS, RedShift and Aurora — Overview:
RDS (Relational Database Service):
- managed database service for databases using SQL as query language.
- Allows you to create database in cloud that are managed by AWS
- supports: Postgres, MySQL, MariaDB, Oracle, MS SQL server, Aurora (AWS proprietary database) Advantages over using RDS v/s deploying Database on EC2:
- RDS is a managed service
- Automated provisioning, OS patching
- Continuous backups and restore to specific timestamp (Point-In-Time-Restore)
- Monitoring dashboards
- Multi-AZ setup for Disaster recovery
- Maintenance window for upgrades
- Scaling capability (vertical and horizontal)
- Storage backed by EBS
- Can’t SSH into instance
Amazon RedShift:
- user columnar data storage
- unlike SQL, data is not stored in rows but in columns, which is ideal for data warehousing.
- requires fewer reads
- best suited for online analytical processing
- does not require any indexes or materialized views.
- cluster — combination of set of nodes, leader node and one or more compute node. Leader node received the queries from an application, parses queries and makes an executable plan.
- 2 types of nodes — Dense Storage (DS) -> Storage optimized, Dense Compute -> Compute Optimized
- Nodes are scalable
- Single node has 160 GB storage and in a cluster we can have 128 compute nodes.
Amazon Aurora:
- proprietary technology from AWS (not open sourced)
- Postgres and MySQL are both supported as AuroraDB (means your drivers work as if Aurora was a Postgres or MySQL database)
- Aurora is AWS cloud optimized and claims 5x performance improvement over MySQL and 3x improvement over PostgreSQL on RDS.
- storage automatically grows increments of 10 GB to 128 TB.
- It can have 15 replicas while MySQL has 5 & replication is faster.
- failover in Aurora is instantaneous, its High availability native.
- Aurora costs more than RDS (20% more) but is more efficient.