关于亚马逊Aurora,你所不知道的一切
传统数据库系统存在许多性能、可用性和可扩展性的限制。亚马逊Aurora是解决这些限制的解决方案。
数据库是推动业务运行的应用程序所必需的。它们应该更大、更可靠、更快,以提供更好的服务。亚马逊网络服务使企业能够轻松管理数据并提高客户满意度。
亚马逊的AWS Aurora网络服务就是这样一个服务的例子。它使用集群卷来管理数据并为紧急备份分配数据。
什么是亚马逊Aurora?
Amazon Aurora是一个云原生数据库,与开源MySQL和PostgreSQL完全兼容。Aurora支持所有开源MySQL功能。它还允许与在这些数据库上运行的应用程序进行无缝兼容。
Aurora是为那些需要具有开源数据库的成本效益和简单性,但与商业数据库相同性能的完全托管数据库服务的客户而设计的。
Aurora的性能比传统MySQL提高了五倍,比PostgreSQL提高了三倍。亚马逊RDS负责处理像预配、备份和恢复这样的任务。没有前期费用,只需支付月费。
Aurora之所以独特,是因为它以商业数据库的一小部分成本提供了操作卓越和企业功能的记录。
Aurora在全球范围内提供了无与伦比的性能、可用性、安全性和可靠性。自2014年推出以来,Aurora一直是AWS产品组合中增长最快的服务。
亚马逊Aurora用于什么?
Aurora的显著增长源于许多行业的浓厚兴趣。在过去的十二个月中,我们看到金融服务、软件和互联网、娱乐和游戏以及零售行业对它表现出了强烈的兴趣。
客户将他们的MySQL和PostgreSQL数据库合并到Aurora MySQL和Aurora PostgreSQL中。我们还看到许多客户从遗留数据库(如Oracle或Microsoft SQL Server)迁移到Aurora PostgreSQL。
这些“摆脱束缚”的客户已经厌倦了支付高昂的许可费用并将自己锁定在遗留数据库中。高增长的客户希望能够在所有地区快速无缝地扩展,并希望能够与AWS服务进行集成。
亚马逊Aurora的好处
以下是使用亚马逊Aurora的好处:
可扩展性
您可以启用自动扩展功能。当存储空间增加时,它会增加存储容量。如果存储空间减少,它也会减小数据库的大小。
成本效益
只需支付您使用的处理能力和存储空间。没有前期费用或其他费用。每月付款非常简单。
安全性
亚马逊VPC允许您将数据库运行的网络隔离开来。
使用AWS密钥管理服务创建保护数据的加密密钥。
高可用性和耐久性
您可以在许多可用区创建Aurora的副本。
它是一个全球数据库,可以轻松分布在多个AWS区域,从而可能降低本地读写速度。
迁移支持
要将本地数据库迁移到Aurora,可以使用pg-dump或MySQL dump命令。
完全托管
Aurora非常易于使用。使用AWS RDS控制台很容易设置一个实例。Aurora提供了免费的Amazon Cloudwatch监控。
无需担心预配、更新或升级。亚马逊完全控制软件的所有方面,并将进行必要的修补。
亚马逊Aurora的最佳功能
以下是亚马逊Aurora的最佳功能:
可扩展性:这是Amazon Aurora的最佳特性。数据库会根据存储需求自动增大。容量可以按照增量增长,最多可达到128TB。这使得存储变得无缝。
高吞吐量:SysBench基准测试显示吞吐量提高了5倍。Amazon Aurora采用各种软件和硬件技术,以最大化可用的内存、计算和网络资源。为了提高性能一致性,使用了分布式系统技术(如法定人数)进行输入和输出操作。
实例的监视和修复:Amazon RDS不断监视Amazon Aurora数据库以及底层EC2实例的健康状况和性能。在数据库故障和所有相关进程的情况下,Amazon RDS会自动重新启动数据库。
加密:Amazon Aurora通过允许您使用您通过AWS密钥管理服务控制和创建的密钥来加密数据库,提供高安全性。Amazon Aurora在数据传输过程中使用SSL encryption来保护数据。
易于使用:使用Amazon Aurora非常简单。使用Amazon RDS管理控制台来创建新的Amazon Aurora DB实例。此API调用或CLI只需一个API调用。每个DB实例类型的Amazon Aurora DB实例都预先配置了适当的参数和设置。
具有成本效益:只需根据使用情况付费。没有预付费或其他费用。每月付款很简单。
迁移支持:要将本地数据库从Aurora迁移到Aurora,可以使用pg-dump或MySQL dump命令。
Aurora是完全托管的:您可以立即开始使用。您只需使用AWS RDS控制台创建一个实例或从您的代码中调用一个API即可。无需担心提供、更新或升级。
Amazon Aurora架构
Aurora数据库的整个架构是建立在传统DBMS之上的。它重用了大多数DBMS组件,如事务管理器、查询执行引擎和恢复管理器。
Amazon Aurora是一个超越传统游戏的新型DBMS。它对现有的DBMS进行了许多改进,以增加其可用性、可靠性和可扩展性。
这些变化包括:
- 使用主复制设置
- 可以复制数据的远程存储
- 只需将更改日志保存到远程磁盘
Amazon Aurora的架构可以扩展传统关系数据库的存储层。
Amazon Aurora的主数据库实例将重做日志传递给其存储层进行处理。存储层处理日志,创建并存储新的页面版本,并将所有内容备份到S3。
在扩展时,Amazon Aurora只需创建额外的数据库引擎实例并将它们与现有的存储层连接起来。通过将这些任务委托给存储层进行并行处理,消除了数据复制中的瓶颈。
这使得可以创建许多新功能,例如:
- 即时崩溃恢复:您无需重放最后一个检查点之后的日志
- 快速故障切换:无需担心哪个副本数据库具有最新的重做日志记录。存储层会处理这些。
- 回溯:因为存储层已经传送了重做日志,所以可以在不恢复来自S3备份的检查点的情况下,将数据“倒回”到过去的特定点
设置Amazon Aurora
以下是成功设置Amazon Aurora的步骤。
#1. 登录到AWS管理控制台并打开RDS。
#2. 点击创建数据库。
#3. 选择引擎选项为Amazon Aurora。
#4. 选择所需的Aurora MySQL版本。
#5. 创建一个DB集群标识符,并设置凭证设置的用户名和密码。
#6. 从下拉选项中选择实例配置并选择一个选项以创建副本或不创建副本。
#7. 如下所示选择连接选项。
#8. 选择现有的VPC安全组或创建一个新的安全组。
#9. 启用增强型监控,选择粒度和监控角色选项。
#10. 最后,点击创建数据库。
#11. 您已成功创建Amazon Aurora数据库。
价格模型:Amazon Aurora
Aurora Serverless ACUs v2每小时需花费0.12美元,是Aurora ACUs预配的两倍价格。这意味着:
- 当前运行的最低成本:4个ACUs,每小时0.48美元或每月350美元
- 对于触发自动扩展功能的工作负载,最低可扩展性增加30秒或每半个ACU收费0.0005美元。
Aurora Serverless V2的月费用为350美元。每个自动扩展事件至少收费0.0005美元。虽然等效的Aurora容量为每月175美元,但其无法具有响应式的服务器自动扩展功能。
使用案例:Amazon Aurora
#1. 软件即服务(SaaS)
它使用多天赋体系结构,可以灵活进行存储和实例扩展。因此,Amazon Aurora允许企业专注于开发高质量的应用程序,而无需担心数据库。
#2. 游戏目的
AWS Aurora的功能与关系数据库相同。它提供高吞吐量、大容量存储、高可用性和高可扩展性。
#3. 企业应用
Amazon Aurora与任何已经熟悉关系数据库的公司兼容。与其他选项相比,Aurora具有高性价比,可以将价格降低多达90%。
Aurora与MySQL和PostgreSQL的兼容性
Amazon Aurora专为高性能、全球可用性和完全兼容MySQL/PostgreSQL而构建。标准工具使得从Aurora迁移MySQL和PostgreSQL数据库变得容易。您还可以使用Babelfish for Aurora PostgreSQL运行传统的SQL Server应用程序,只需要进行最少的代码更改。
Amazon Aurora可以与标准的PostgreSQL导入/导出工具(如pg_dump或pg_restore)一起使用。您还可以使用Amazon RDS或MySQL DB快照创建一个新的Amazon Aurora表。
DB快照通常完成得很快,但这将取决于要迁移的数据量及其格式。
Amazon Aurora vs. Amazon RDS
架构设计
RDS架构类似,它允许您在Amazon EC2上手动安装数据库引擎,但将提供和维护工作交给AWS。RDS提供了许多功能,如自动故障转移、backups等。RDS使用Amazon EBS卷来存储日志和数据库数据。
Aurora数据库存储系统是可靠且容错的。 Aurora的数据库存储与实例无关。 Aurora将数据存储在六个副本中,每个副本都有10GB的块。 这些副本分布在三个可用区。 即使您只有一个Aurora实例,您的数据仍然有六个副本。
性能
RDS使用SSD存储来提高I / O吞吐量性能。 有两个SSD支持的存储选项可用。 其中一个用于高性能的OLTP应用程序,而另一个用于通用的,具有成本效益的用途。
Aurora在相同硬件上的性能是PostgreSQL的两倍,标准MySQL的五倍。 Aurora的性能始终更高且更稳定。
数据库引擎支持
RDS与MySQL,PostgreSQL和MariaDB兼容,还兼容Microsoft SQL Server和Oracle。
Aurora兼容PostgreSQL和MySQL。 这意味着您可以在PostgreSQL和MySQL上使用现有的数据库工具和应用程序,而无需进行任何更改。
可靠性和可用性
Aurora具有独特的存储模型,可以实现持续备份和恢复,且具有非常低的RPO(恢复点目标)。 这使其比RDS更可靠和持久。
Aurora中的数据是按设计持久的。 您的数据始终有多个副本。 每个Aurora集群都有分布在三个AZ的六个存储节点。 即使您只有一个计算节点,您的数据仍然有多个副本。
韧性
由于其架构设计,Aurora比RDS更具弹性。 它可以快速从故障中恢复。 如果计算节点崩溃,Aurora可以快速恢复。
存储
RDS存储自动扩展可扩展存储容量到64 TiB(除SQL Server的16 TiB之外),以适应不断增长的数据库工作负载。 没有停机时间。
Aurora会自动从最小的10 GB增加存储量,最大可达128 TiB。 存储以10 GB递增,不会对数据库性能产生任何影响。
可扩展性
垂直扩展:RDS和Aurora都允许您将内存和计算资源扩展到最大244 GiB RAM和32个虚拟CPU。 您可以在几秒钟内完成扩展操作。
Aurora自动缩放动态:Aurora自动缩放通过使用单主复制方式调整Aurora DB集群中可用的Aurora副本数量。 RDS不支持此类自动缩放。
复制
RDS可用于提供最多五个副本。 复制过程也比Aurora慢。
Aurora可以提供多达15个副本,复制仅需要几秒钟。 Aurora的扩展速度更快,因为它可以快速添加新的读取副本。
故障转移
在RDS中,手动执行故障转移以读取副本。 这可能会导致数据丢失。 可以使用多AZ(备用实例)自动执行故障转移并防止数据丢失。
为了防止data loss,Aurora会自动使用故障转移到读副本。 Aurora具有更快的故障转移时间。
集群终端
RDS具有集群终端,您可以使用它来执行写查询。 它是指向当前主数据库实例的DNS指针。 在故障转移期间,RDS通过简单的DNS更改将终端路由到新的主机。
集群终端在Aurora中仍然可用于写查询。 此终端还充当读取副本的load balancer。 可以使用此终端来回答读取查询。
备份
RDS会在DB实例的备份窗口期间自动创建和保存备份。 RDS将DB实例快照作为存储卷进行备份,备份所有数据库而不仅仅是您选择的数据库。
Aurora自动备份群集卷并在备份保留期内持续还原数据。Aurora备份是连续和增量的,因此您可以快速还原备份保留期内的任何时间点。
以下是Amazon Aurora与Amazon RDS的摘要表:
Amazon Aurora | Amazon RDS |
您可以将存储空间从10 GB扩展到64 GB | RDS允许所有引擎使用64 GB,但对SQL Server仅支持16 GB |
您可以将内存和计算扩展到最大32个vCPU和244 GiB的RAM | 与Aurora相同 |
支持MySQL和PostgreSQL | 支持Microsoft SQL Server,MariaDB,Oracle Database,MySQL,PostgreSQL和Amazon Aurora |
支持15个副本 | 支持5个副本 |
定价取决于I/O操作 | 您可以免费试用,没有最低使用费 |
Amazon Aurora vs. DynamoDB
稳定性和可用性
DynamoDB的每个数据块都会复制到多个物理节点。亚马逊已将这些物理节点部署在多个区域(也称为可用性区域)中,以确保在发生火灾或大规模停电等灾难时具有高持久性和可用性。即使一份副本出现故障,操作也将继续进行。SSD也非常可靠和耐用。
备份和恢复
DynamoDB提供按需备份和PITR(时间点备份),让您可以访问任何数据库状态。 DynamoDB能够备份任意数量的数据,性能和可用性不会受到影响。备份只需很少的时间,用户不必担心备份计划或后台进程。AWS只需一个API调用即可进行备份恢复。
Amazon Aurora的备份过程与DynamoDB类似。它在没有任何性能中断或对数据库服务的中断的情况下创建。 Amazon的备份保存在S3存储桶中。如果我们没有指定备份窗口,Aurora将自动创建一个30分钟的备份。
访问控制
DynamoDB支持IAM用户和角色,具有细粒度的策略限制数据库创建和查询权限。 Amazon Aurora也具有类似的权限方案。
然而,Aurora还提供了与MySQL和PostgreSQL兼容的连接接口,用于连接数据库。
DynamoDB是一个区域性服务,不受VPC边界的限制。但是,Aurora数据库群集需要在明确定义其网络边界的VPC中建立。您还可以使用VPC安全组来控制哪些设备或实例可以连接到数据库实例。
以下是Amazon Aurora与DynamoDB的摘要表:
Amazon Aurora | DynamoDB |
支持MySQL和PostgreSQL的关系型数据库 | NoSQL数据库 |
多区域,单主节点 | 多区域,多主节点 |
副本可在一分钟内升级为主节点 | 高可用性 |
复制延迟小于1秒 | 复制延迟为亚毫秒级 |
结论
就是这样。我们都正在进入一个新的关系型数据库时代,而Aurora只是一个开始。客户的响应非常热烈。各行各业的领导者,如Capital One、Dow Jones、Netflix和Verizon,都将他们的关系型数据库工作负载迁移到了Aurora,包括MySQL和兼容版本。