A software-as-a-service (SaaS) provider is building a new multi-tenant application where each tenant requires strong data isolation and dedicated resources for their database. The application needs to support a wide range of tenant sizes, from small businesses to large enterprises, without over-provisioning resources for smaller tenants or requiring manual scaling for larger ones. The database must be highly available and fault-tolerant. Which database strategy should the architect recommend?
- AA single Amazon RDS for PostgreSQL instance with separate schemas for each tenant.
- BDedicated Amazon RDS for PostgreSQL instances for each tenant managed by a custom script.
- CAmazon Aurora Serverless v2 with a dedicated cluster for each tenant.
- DAmazon DynamoDB with separate tables for each tenant.
Show answer & explanationAnswer & explanation
Correct answer: C. Amazon Aurora Serverless v2 with a dedicated cluster for each tenant.
Aurora Serverless v2 provides fine-grained, on-demand scaling for relational databases, allowing a dedicated cluster per tenant without over-provisioning. This perfectly addresses the need for strong data isolation, dedicated resources, and automatic scaling across a wide range of tenant sizes, while maintaining high availability and fault tolerance inherent to Aurora.
Why the other options are wrong
- A. A single RDS instance with separate schemas offers logical isolation but not strong resource isolation or dedicated resources, and it can become a noisy neighbor issue or a single point of failure for resource contention.
- B. Dedicated RDS instances for each tenant ensure strong isolation but require significant operational overhead for provisioning, patching, and scaling, which is not ideal for a wide range of tenant sizes without manual intervention.
- D. DynamoDB with separate tables provides good isolation and scalability for NoSQL, but the requirement for 'dedicated resources for their database' often implies a relational model with more traditional database features, and Aurora Serverless v2 specifically targets this with relational capabilities.
Siloed Multi-Tenancy with Aurora Serverless v2
Siloed multi-tenancy with Aurora Serverless v2 involves deploying a dedicated Aurora Serverless v2 database cluster for each tenant, providing strong data and resource isolation, automatic scaling, and cost efficiency for varying tenant workloads.
- Each tenant has their own dedicated database cluster.
- Aurora Serverless v2 automatically scales capacity, eliminating over-provisioning.
- Provides strong data and resource isolation, enhancing security and performance predictability.
Memory trick: Aurora Serverless v2 Silos Tenants, Scaling Smartly.