Amazon Aurora Serverless: An Overview
Amazon Aurora
Serverless is an on-demand,
auto-scaling configuration for Amazon Aurora (compatible with MySQL
and PostgreSQL). It automatically starts up, shuts down, and scales the database capacity based on your
application's needs — with no manual
provisioning of database instances.
Aurora Serverless Versions
Version |
Status |
Notes |
Aurora
Serverless v1 |
Older, limited features |
Good for infrequent/variable workloads |
Aurora
Serverless v2 |
Current & Recommended |
Scales in
milliseconds, supports Multi-AZ,
Global DB, read replicas, and custom endpoints |
Key Features of Aurora Serverless v2
·
Granular
Auto-Scaling: Instantly scales up/down in fine-grained increments (0.5
Aurora Capacity Units - ACUs).
·
Always On:
Unlike v1, v2 doesn’t pause during inactivity.
·
High
Availability (HA): Supports Multi-AZ deployments.
·
Global
Databases: Aurora Serverless v2 supports global databases for
low-latency cross-region reads and disaster recovery.
·
Custom
Endpoints: Can use custom endpoints in Serverless v2 clusters.
·
Read
Replicas: Supports Aurora read replicas (great for read-heavy apps).
Use Cases
·
Variable
or unpredictable workloads
·
Development,
testing, QA environments
·
SaaS
applications with multi-tenant architectures
·
Event-driven
or infrequent workloads (e.g., report generation)
Aurora Serverless vs Provisioned
Feature |
Aurora
Provisioned |
Aurora
Serverless v2 |
Instance
management |
Manual |
Automatic |
Scaling |
Manual or auto (via replicas) |
Automatic and fine-grained |
Cost
model |
Per hour (per instance) |
Per second (based on ACUs) |
Cold
start latency |
None |
Minimal in v2 |
Availability
features |
Full support |
Full support in v2 |
·
Billed per second based on the Aurora Capacity Units (ACUs) consumed.
·
Separate charges for I/O operations, storage,
backup, and data transfer.
ACU = Combination of CPU + memory + networking managed by AWS.
Creating Aurora Serverless v2 (Console or CLI)
AWS CLI Example:
# bash
aws rds create-db-cluster \
--engine aurora-mysql \
--engine-mode provisioned \
--scaling-configuration MinCapacity=2,MaxCapacity=16 \
--db-cluster-identifier twtech-aurora-serverless-v2 \
--vpc-security-group-ids sg-12345678xxx \
--db-subnet-group-name twtech-subnet-group
Note: In v2, twtech uses engine-mode =
provisioned
with scaling config to enable Serverless v2
(confusing, but that’s how AWS implemented it).
Limitations
·
Aurora Serverless v1 has high
latency in scaling and lacks full feature parity.
·
Aurora Serverless v2:
o
Only available in specific regions.
o
Minimum 0.5 ACUs, no “pause”
feature like v1.
o
Some features (e.g., global write forwarding)
are still evolving.
No comments:
Post a Comment