AWS Certified Solutions Architect – ProfessionalDesign for New SolutionsHard

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?

  1. AA single Amazon RDS for PostgreSQL instance with separate schemas for each tenant.
  2. BDedicated Amazon RDS for PostgreSQL instances for each tenant managed by a custom script.
  3. CAmazon Aurora Serverless v2 with a dedicated cluster for each tenant.
  4. DAmazon DynamoDB with separate tables for each tenant.
Show answer & 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.

More Design for New Solutions questions