ITPub博客

首页 > 数据库 > 数据库开发技术 > PlanetScale 与 Amazon Aurora 对比 — PlanetScale

PlanetScale 与 Amazon Aurora 对比 — PlanetScale

数据库开发技术 作者:ITPUB社群 时间:1970-01-01 08:33:43 0 删除 编辑

什么是 PlanetScale?

PlanetScale 是一个极其快速、可扩展且可靠的数据库平台,支持 Postgres 和 Vitess。Vitess 是在 YouTube 创建的广受欢迎的开源数据库管理技术,它能够实现从应用层抽象出来的 MySQL 水平分片。它旨在改进数据库管理,并提供一个高性能、容错的数据库,能够处理大规模工作负载。

PlanetScale 为客户提供 Vitess 的强大能力,提供完全托管且高性能的 MySQL 数据库服务,具备水平分片、类似 Git 的 schema 变更工作流、自动备份、恢复、高级查询分析以及多区域复制能力。PlanetScale 可以部署在多个云平台上,包括 Amazon Web Services (AWS) 和 Google Cloud Platform (GCP)。

什么是 Amazon Aurora?

Amazon Aurora 是由 Amazon Web Services (AWS) 开发的云原生关系型数据库服务。它提供可扩展且高性能的数据库解决方案,兼容 MySQL 和 PostgreSQL(开源关系型数据库) 数据库管理系统。它提供了多项性能增强功能,可提升这些数据库的速度和可靠性。它采用分布式架构,将数据复制到多个存储节点,从而为你的数据提供快速可靠的读写访问。它提供多区域复制功能。作为一项完全托管的数据库服务,Amazon Aurora 负责处理许多与传统数据库管理相关的任务,例如资源调配、补丁、备份和恢复。它还可以与其他 AWS 服务集成,使你能够轻松管理 AWS 生态系统中的数据库和应用程序。

对比:PlanetScale 与 Amazon Aurora

PlanetScale 与 Aurora 架构和部署

PlanetScale 兼容 MySQL,并将 Vitess 的所有数据管理和可扩展性功能大众化。它是一个高度可扩展的数据库平台,具有众多租户和部署选项。多租户是基础 PlanetScale 计划的默认租户模式。多租户和单租户部署均可在 PlanetScale Enterprise 和 Managed 计划中使用。PlanetScale Managed 是一个打包的数据平面。它包括在用户拥有的 AWS 或 GCP 子账户中运行 PlanetScale 产品所需的所有计算、实时数据和备份。

Amazon Aurora 同时支持 MySQL 和 PostgreSQL 部署。它仅支持 AWS 云基础设施,并且有意与 AWS 工具高度兼容。它同时支持多租户和单租户部署。与 Amazon 的另一项托管关系型数据库产品 Amazon RDS 相比,Aurora 性能更高,并且专为更高强度的使用场景而设计。

PlanetScale 与 Amazon Aurora 的扩展性和性能

PlanetScale 和 Amazon Aurora 在实现数据库扩展性和性能方面采取了不同的方式。PlanetScale 专为高可用性、高性能和可扩展性而构建。它能够轻松应对流量突发和高 IOPS,同时作为托管服务减少与数据库管理相关的开销。Amazon Aurora 是 AWS 性能更强的托管关系型数据库解决方案。这得益于 Aurora 在时间点恢复(PITR)、多可用区(AZ)复制以及使用 S3 作为统一底层存储方面的设计。

PlanetScale 和 Aurora 都可以水平扩展,但两者的实现方式不同。PlanetScale 在应用层之外对数据进行水平分片。这通常是一种更高效、更可靠且更具成本意识的 MySQL 分片方式。使用 Aurora 时,用户可以水平扩展读操作,或添加额外实例来分散数据库操作。此外,PlanetScale 和 Aurora 的用户都可以垂直扩展实例规模和资源,以满足增长的需求。

在 PlanetScale 中添加新的 MySQL 节点时,负载均衡会自动实现。PlanetScale 能够实现负载均衡,得益于几个名为 VTTablet 和 VTGate 的 Vitess 组件以及 PlanetScale 的边缘基础设施。VTGate 是应用层查询路由层,而 VTTablet 则充当 VTGate 和 MySQL 之间的中间件。这促进了连接从应用程序流向负载均衡器,再到 VTGate,再到 VTTablet,最后到 MySQL 的流程。VTTablet 将管理连接池并对 MySQL 实例执行健康检查,在 topo-server 中更新其状态。同时,VTGate 通过 topo server 确定可用的 tablet 及其角色,并根据需要重新路由流量。PlanetScale 的边缘基础设施则充当前端负载均衡器,在最近的边缘位置终止 MySQL 连接。

每个 PlanetScale 数据库都获得所有这些底层基础设施,以确保数据库保持可用。负载均衡器将在生产分支和副本之间分配流量,并平衡连接、IOPS 和资源使用。

Aurora 通过拆分读/写和使用连接池来负载均衡和管理连接。副本数据库集群中的读取器可以接受写入并转发到主写入器实例。要执行查询,用户可以使用读取器端点在其所有可用的 Aurora 只读副本之间自动进行负载均衡。此外,Aurora 通过自愈、重新平衡、保持写入能力以及提供从崩溃和故障中快速恢复来维持高可用性。

凭借技术上无限的连接数,PlanetScale 具备处理高并发的能力。PlanetScale 提供连接池,可随集群扩展,并使连接请求能够排队。Aurora 通过拆分读/写来扩展连接,同样也使用连接池。

PlanetScale 与 Amazon Aurora 定价对比

PlanetScale 的成本专为扩展而构建。首个付费层级起价为每月 5 美元,并提供基于资源的定价选项,用户可以使工作负载和基础设施成本线性增长。PlanetScale Enterprise 和 Managed 计划完全定制,可满足用户的特定需求。

对于工作负载变化较大的用户,Amazon Aurora 提供 Serverless V2。购买 Aurora 的方式有很多,包括按需付费、预留资源和选择 I/O 优化。I/O 优化是一种适用于高输入/输出操作客户的定价模式。

PlanetScale 计划在基础设施方面往往客观上比运行 Amazon Aurora 更便宜。这是因为 PlanetScale 在许多商用级 AWS EC2 实例或其他云提供商的等效实例上合理配置资源,从而防止过度配置并使成本与用户的实际工作负载保持一致。此外,用户通过 PlanetScale 获得更多基础设施,包括 Vitess 的强大能力,以及一个提供与其他商业解决方案相同甚至更强容错能力的数据库集群。

PlanetScale 与 Amazon Aurora 运维对比

PlanetScale 和 Amazon Aurora 都是托管数据库系统,旨在减少复杂的数据库管理任务。PlanetScale 和 Aurora 自动化基本数据库操作,并提供监控、日志记录和审计解决方案。

PlanetScale 为用户提供生产分支,这些是面向生产流量设计的高可用数据库。它们在概念上等同于其他商业数据库中的主实例。生产分支会自动故障转移到两个默认副本之一,以提高冗余性。这两个副本减轻了主分支的负载,并使用户能够扩展读写操作。额外的副本和只读区域是可配置的。PlanetScale 还提供内置的审计和日志保留功能,以及与 Datadog 等流行第三方监控工具的集成。

Aurora 在每个主实例的不同可用区中提供 15 个副本。系统以 10GB 为增量自动扩展和复制存储,在单一统一存储层上跨 3 个可用区进行 6 次分发。它在不影响计算资源的情况下完成这些操作。

Aurora 与其他 AWS 服务紧密集成,以帮助实现整体监控解决方案,例如用于集群活动监控的 Database Activity Streams,以及用于审计日志的 AWS CloudTrail。然而,监控和日志工具的选择因组织而异。如果您有其他工作负载,如 Web 应用程序或数据仓库,您可能希望将这些整合到一个集中式监控平台,PlanetScale 和 Aurora 都支持这一点。

PlanetScale 与 Amazon Aurora 的变更管理对比

数据库变更管理流程因团队而异。在数据库上执行的变更很复杂,因为您面临不可逆的数据损坏和一致性问题风险。PlanetScale 和 Amazon Aurora 提供了不同的方法来配置环境,以便在推送到生产之前测试这些变更。

此外,通过类似 Git 的变更管理工作流,并结合 CI/CD 工具,PlanetScale 使构建、测试和部署数据库变更到生产变得容易且风险最小。Amazon Aurora 不提供用于模式变更的原生工具,也不支持在线模式变更。尽管这在技术上不是模式变更回滚,但 Aurora Backtrack 可用于将数据库恢复到某个时间点(PIT),以从引入破坏性变更的 DDL 操作中恢复。

常见问题

Amazon Aurora 和 MySQL 是一样的吗?

Amazon Aurora 和 MySQL 不一样。MySQL 是一个开源关系型数据库管理系统(RDBMS)。它是一个被 Aurora 等服务支持的数据库引擎,允许您以关系结构管理数据。

PlanetScale 和 MySQL 是一样的吗?

PlanetScale 的 Vitess 产品是一个 MySQL 兼容的数据库平台。它构建在开源 Vitess 之上,这是一种中间件技术,旨在扩展和管理超大规模的 MySQL 部署。PlanetScale 提供托管数据库服务,提供 MySQL 的水平扩展、多云部署以及其他功能,从而实现高可用性,并使管理大规模 MySQL 部署变得更加容易。除了提供的改进工具、扩展和模式管理之外,PlanetScale 还将很快引入向量搜索和存储,这在 MySQL 中目前不可用。

PlanetScale 比 Amazon Aurora 更好吗?

PlanetScale 的全托管数据库平台同时支持 Postgres 和 Vitess。它是唯一基于开源 Vitess 构建的解决方案,这项技术曾将 YouTube 扩展至数十亿月活跃用户。在 PlanetScale 上启动的每一个数据库都能获得 Vitess 的全部能力,而无需自行实施和维护。

PlanetScale 是云无关的,支持多个云平台。它往往比许多解决方案更具成本效益。这是因为 PlanetScale 使用商品级实例类型来最优地服务用户的独特工作负载。如果您好奇这对您的组织来说可能是什么样子,请联系 PlanetScale 的解决方案团队。

除了改进的扩展性和性能之外,PlanetScale 在设计时就考虑了 CI/CD 和数据库变更管理。这降低了与有状态工作负载变更相关的风险。

虽然“更好”是主观的,但由于 Aurora 不提供 Vitess 的扩展性、可移植性或成本效益,PlanetScale 通常被视为更优越的平台。

谁在使用 PlanetScale?

PlanetScale 被 Block、Cursor、Intercom、MyFitnessPal 等高增长组织以及更多企业所使用。它为高可用性、高性能和大规模扩展而构建。它是拥有密集工作负载的高绩效公司的解决方案,同样适合刚开始使用 MySQL 数据库的用户,并能有效支持介于两者之间的所有工作负载。

Vitess 和 PlanetScale 有什么区别?

Vitess 是 2010 年在 YouTube 开发的开源中间件技术。它旨在从应用层抽象出来对 MySQL 进行水平分片,并总体上改进数据库管理流程。由于 Vitess 是开源的,组织可以自行实施和维护它。这很复杂,并且需要对这项技术有一定程度的专业知识,而这在基础设施领域是稀缺的。

PlanetScale 是唯一基于 Vitess 构建并使其许多功能大众化的解决方案。部署 PlanetScale 数据库是在云中部署 Vitess 的最简单方式。使用 PlanetScale 数据库,您可以对 MySQL 进行水平分片、获得无限连接、执行在线 schema 变更、回滚 schema 变更等等。

此外,PlanetScale 由 Vitess 的创造者之一 Sugu Sougoumarane 联合创立。PlanetScale 团队也是 Vitess 的顶级贡献者之一,雇用了多位 Vitess 维护者。


转载声明:本文为转载整理,原文版权归原作者及原站点所有。

原文来源:PlanetScale Blog

原创地址:https://planetscale.com/blog/planetscale-vs-amazon-aurora

原文作者:PlanetScale Blog;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2022-11-21

  • 博文量
    1058
  • 访问量
    546480