Amazon Aurora详解
- 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。
一、Aurora介绍
对于部署在Amazon云平台上的应用,如何在不改变现有应用程序架构的情况下,来提升应用程序的性能?答案是采用AWS Aurora。
在今天的时代,几乎所有的业务应用的首要任务都是发展用户,业务发展的越好,用户群则越大;用户数越多就意味着需要为更多用户提供服务,也意味着需要更进一步地优化应用程序。应用优化有一定的局限性,在一定程度上,在不增加/改变应用架构的情况下很难做到(除非原先的代码写的太烂,否则很难提升性能)。大多数现有应用程序使用了关系数据库,通常采用了单片架构。这种单片架构和SQL查询会使程序变慢。无论SQL查询做了多少优化,它有一定的处理阈值,达到或超过阀值以后程序会死亡。
所以,在不改变现有应用程序架构的情况下,我们如何提高应用程序的性能?答案是采用AWS Aurora。
Amazon对Aurora的定义是:
“AWS Aurora是为云平台构建的兼容MySQL的企业级关系数据库引擎,关于数据库迁移,把重点从“升级和转移”的方式转变为迁移(也即,按原样迁移并运行到云虚拟服务器上)到完全可管理的、云本地数据库服务。Amazon Aurora的主要目标之一是以成本效益高的方式来克服传统数据库的性能、可扩展性和可用性的限制,类似于开源数据库。Amazon Aurora在提供类似的性能和高可用性的同时,以商业数据库的十分之一的价格提供了比MySQL高五倍的性能。”
AWS目前是世界上最受信任和广泛采用的云平台。它为计算、分析、存储、企业应用程序、移动和数据库提供服务。AWS Aurora被用于作为AWS的数据库部分。Aurora本身基于亚马逊的关系数据库服务(Amazon RDS),是一种在云中建立、运行和扩展的关系数据库的服务。Amazon RDS支持MySQL、MariaDB、PostgreSQL、Oracle和Microsoft SQL Server DB引擎。Aurora提供了每秒50万次以上的SELECT操作和每秒10万次以上的UPDATE操作的性能。
二、架构
当我们创建一个Aurora实例时,我们先创建一个数据库集群。数据库集群由一个主实例和一个集群卷组成。此外,我们还可以创建一个Aurora副本集。它可以进行连续备份到AWS S3(简单存储服务),并对数据以保持99.999999999%的耐久性。
Aurora从分配给实例80GB的块开始,并分配10GB的块作为自动缩放的一部分。
主实例
- 支持读/写工作负载
- 对集群卷执行所有数据修改
集群卷
- SSD虚拟数据库存储卷
- 支持多个可用区域(AZ)
- 每个AZ都有两个集群数据副本
- 由主实例和Aurora副本共享
Aurora副本集
- 支持只读操作
- 最大副本数可以是15
- 多个Aurora副本,以支持读取工作负载的分发
- 多个Aurora副本意味着增加数据库可用性
- 如果主实例失败,其中一个Aurora副本将被提升为主实例
下面我们来看一下Aurora架构图:
Aurora是一个基于SOA的实现,它分为几层:存储层、日志层、缓存层,这些都是作为单独的层,而SQL和事务已保存在单个层中。这种架构实现了更多的可扩展性、高可用性和性能。
三、创建Aurora实例
登录到AWS管理控制台并导航到Amazon RDS部分,就可以创建Aurora集群。
首先选择数据库、主实例的大小、数据库凭证、数据库名称、端口号等。
然后,选择“Launch DB Instance”以启动Aurora实例。在“Instances”选项卡下,可以看到新创建的实例,其中有可用于从应用程序连接的端点和端口号。