在上为多租户 SaaS 应用程序实施托管 PostgreSQL AWS - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在上为多租户 SaaS 应用程序实施托管 PostgreSQL AWS

Tabby Ward 和 Thomas Davis,Amazon Web Services ()AWS

2024 年 4 月文档历史记录

在选择用于存储运营数据的数据库时,必须考虑如何构造数据、它将回答哪些查询、提供答案的速度以及数据平台本身的弹性。除了这些一般考虑因素外,还包括软件即服务 (SaaS) 对运营数据的影响,例如性能隔离、租户安全以及多租户 SaaS 应用程序数据的典型特征和设计模式。本指南讨论了这些因素如何适用于使用亚马逊网络服务AWS() 上的 PostgreSQL 数据库作为多租户 SaaS 应用程序的主要操作数据存储。具体而言,该指南重点介绍两个 AWS 托管的 PostgreSQL 选项:兼容亚马逊 Aurora PostgreSQL 的版本和适用于 PostgreSQL 的亚马逊关系数据库服务(Amazon RDS)。

目标业务成果

本指南详细分析了使用兼容 Aurora PostgreSQL 和亚马逊 RDS for PostgreSQL 的多租户 SaaS 应用程序的最佳实践。我们建议您使用本指南中提供的设计模式和概念,为多租户 SaaS 应用程序提供信息并标准化与 Aurora PostgreSQL 兼容的 Aurora PostgreSQL 或 Amazon RDS for PostgreSQL 的实施。

本规范性指南有助于实现以下业务成果:

  • 为您的用例选择最优的 AWS 托管 PostgreSQL 选项 — 本指南将数据库使用的关系和非关系选项与 SaaS 应用程序进行了比较。它还讨论了哪些用例最适合兼容 Aurora PostgreSQL 和亚马逊 RDS for PostgreSQL。这些信息将有助于为您的 SaaS 应用程序选择最佳选项。

  • 通过采用 SaaS 分区模型来实施 SaaS 最佳实践 — 本指南讨论并比较了适用于 PostgreSQL 数据库管理系统 (DBMS) 的三种广泛的 SaaS 分区模型:池、桥接和孤岛模型及其变体。这些方法捕获了 SaaS 最佳实践,并在设计 SaaS 应用程序时提供了灵活性。SaaS 分区模型的实施是保留最佳实践的关键部分。

  • 在池 SaaS 分区模型中有效使用 RL S — 行级安全 (RLS) 通过根据用户或上下文变量限制可以查看的行,支持在单个 PostgreSQL 表中强制执行租户数据隔离。使用池分区模型时,需要使用 RLS 来防止跨租户访问。