There are many approaches to storing data in multi-tenant environments. SaaS architects must identify the mix of data partitioning strategies that will align the scale, isolation, performance, and compliance needs of your SaaS environment. Data partitioning is influenced by both the multi-tenant model you're adopting and the different sharding approaches that are available for each of the AWS storage services.
SaaS Storage Strategies
Throughout this paper, we assemble and evaluate the common patterns and models that developers must consider as they weigh the business and technical storage requirements of their SaaS environments. The goal is to establish a core set of storage themes and then determine how each of these themes are realized on a range of AWS storage technologies. The paper provides detailed insight into the common considerations that will shape your implementation of multitenancy on top of Amazon DynamoDB, Amazon RDS, and Amazon Redshift. The broader goal is to equip you with a clear, SaaS-focused view of your storage options spanning a range of AWS storage services.
Multi-tenant Storage with Amazon DynamoDB
If you’re designing a true multi-tenant software as a service (SaaS) solution, you’re likely to devote a significant amount of time to selecting a strategy for effectively partitioning your system’s tenant data. On AWS, your partitioning options mirror much of what you see in the wild. If you’re looking to use Amazon DynamoDB, you’ll find that the global, managed nature of this NoSQL database presents you with some new twists that will likely influence your approach. The specific needs of your solutions will steer you toward one or more of these approaches. This blog post looks at how these partitioning models map to the different partitioning approaches that are available with DynamoDB.
AWS SaaS Factory Architecture Track: Multi-tenant Data Partitioning
The goal of this course is to provide you with an end-to-end review of the common techniques that are used to implement partitioning in SaaS environments. This course outlines the various models for partitioning and concludes with a review of how each storage pattern is realized on Amazon DynamoDB, Amazon RDS, Amazon Redshift, and Amazon S3. We’ll also explore optimization strategies than can be employed to address some of the challenges associated variations in tenant load and data size.
SaaS Storage Partitioning with Amazon Aurora Serverless
In this post, we take a closer look at how Aurora Serverless works and how it influences your approach to storage partitioning in SaaS environments. The goal here is to highlight the implications of the serverless storage model, identifying key areas that will be of particular interest to SaaS developers.
Scaling Multi-Tenant SaaS data with Amazon Aurora Serverless
In this webinar, we'll explore the fundamentals of the Amazon Aurora Serverless architecture and outline how this service directly addresses some of the core challenges of managing multi-tenant data.
Beyond the SQL WHERE Clause: Isolating SaaS Multi-Tenant Data in Shared Relational Databases
SaaS providers leverage shared resources to maximize agility and minimize costs. As you move toward a more shared model, you must consider how you will still ensure that tenant resources remain isolated. This can be especially challenging when working with a shared relational database where tenant data sits side-by-side in the same tables. In these environments, you must find more creative ways to enforce the isolation of tenant data. In this session, we’ll explore the challenges and approaches to this problem, digging into specific mechanisms and strategies that can be used to realize your tenant isolation goals. This will allow you to move beyond the use of SQL WHERE clauses and focus on less invasive, more systemic models for enforcing isolation. More specifically, we’ll look at how you can leverage Row Level Security (RLS) policies in Amazon Aurora and Amazon RDS to implement a more robust isolation scheme.