论AWS数据库服务的调优与监控

日期: 2015-01-03 作者:Ofir Nachmani翻译:Ranma 来源:TechTarget中国 英文

随着云计算为我们提供了越来越多的服务,企业也在思考将数据库迁移到云端以节省空间和成本。对于在一个专有云实例上运行数据库还是将数据库作为一项服务加以使用,二者孰优孰劣已经有着大量的讨论。Amazon Web Service(AWS)也提供了两种选择:弹性块存储和关系型数据库服务。但是究竟哪种AWS数据库服务能满足你的需求呢? 弹性块存储(EBS)。

作为一个数据块级存储服务,EBS可以为AWS EC2 实例提供持久化的存储。用户可以启动EC2实例并附上一个EBS卷作为持久化存储的根或是附加设备。用户还可以在EBS卷内安装任意的关系型数据库管理系统(RDBMS)来管理数据。 关系型数据库服务(RDS……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

随着云计算为我们提供了越来越多的服务,企业也在思考将数据库迁移到云端以节省空间和成本。对于在一个专有云实例上运行数据库还是将数据库作为一项服务加以使用,二者孰优孰劣已经有着大量的讨论。Amazon Web Service(AWS)也提供了两种选择:弹性块存储和关系型数据库服务。但是究竟哪种AWS数据库服务能满足你的需求呢?

弹性块存储(EBS)。作为一个数据块级存储服务,EBS可以为AWS EC2 实例提供持久化的存储。用户可以启动EC2实例并附上一个EBS卷作为持久化存储的根或是附加设备。用户还可以在EBS卷内安装任意的关系型数据库管理系统(RDBMS)来管理数据。

关系型数据库服务(RDS)。作为一个托管型数据库服务,AWS RDS允许终端用户在云端建立并操作关系型数据库。RDS可以通过使用服务来扩展数据库,获得高可用性,执行自动备份和恢复,并达到更高的I/O性能级别。

EBS的持久性和RDS的一致性

AWS EBS块级存储与EC2实例可以协同工作。其大小从1GB到1TB不等,管理员可以通过分段为多个卷来扩容。

EBS有诸多优点。由于它是持久化存储,即便一个EC2实例出现故障,数据也不会丢失。IT还通过快照提供了优秀的备份和恢复功能,它还能够在恢复期间帮助增加你的EBS卷的大小。

用户可以安装任意的RDBMS——不同于RDS,后者仅限于四个RDBMS(SQL Server,MySQL,Oracle和PostgreSQL)。最后,如果用户在EBS卷中存有数据库,他们便自行拥有数据库并负责对其进行管理。有了对数据库的完全访问权限,终端用户就可以根据需要对其进行调整和优化了。

而RDS是一个完全托管型的数据库,这意味着管理员不需要担心它的安装和管理。它提供高的可用性,称为多可用性区域,这对于生产数据库是非常理想的。而且它的备份和恢复功能支持自动备份并恢复最后五分钟的数据。

AWS RDS通过AWS MySQL来读取副本,这能够通过将只读负载分配到副本来获取水平扩展。RDS还使用EBS来存储数据。并且对于更大的数据库,RDS通过在内部分段卷来保持性能。其他的优点包括相比于EBS卷更高的IOPS和有了AWS CloudWatch后指标的改善,这都有助于判断数据库的性能水平。

即使跟EBS相比起来RDS似乎更具优势,但它并不完美。管理员应该清楚它的一些限制。首先,用户不能用SSH访问数据库实例。用户也没有完全的数据库管理访问权限。最后,强制维护窗口可能会在某些情况下导致停机。

维护AWS数据库性能

无论你选择EBS还是RDS,数据库性能都是至关重要的。如果公司里工作运行缓慢,那么云管理员就会受到终端用户的责难。管理员可以做一些调整来保证AWS云数据库的性能。

选择合适的EC2或是RDS实例大小。分配给一个实例的带宽数量取决于此实例的大小,这最终会影响到I/O性能。实例越大,性能就会越好。管理员还应该使用预分配IOPS存储,它可以满足I/O密集型工作负载的需求。

使用EBS优化的实例也可以改善性能。有了EBS,它会在EBS和EC2实例间提供专门的吞吐量。对于RDS,管理员应选择提供了EBS优化带宽的实例类型。

如果你不需要专用I/O,可以对EBS和RDS使用通用存储(固态硬盘)。相比起其他卷存储功能,它的性能更好。使用最新和最合适的实例层级也可以帮助改善数据库性能。分段多卷同样可以提供更好的性能。最后,除非必要,不然不要频繁生成快照。因为一个快照就是一个增量备份,它每次运行的时候都会影响EBS卷的性能。如果你的数据库具有高负载并且定期生成快照,那么数据库性能就会受到影响。

从EBS迁移至RDS

很多公司已经开始将EBS迁移至RDS,因为它可以为生产数据库管理提供更好的功能。通常来说,公司经历这种转变会承受较差的数据库性能水平。但是也并不尽是如此。

遵照以下技巧可以在从AWS EBS迁移至RDS时不用进行额外的操作就能确保性能:

  • 选择一个有大容量存储的RDS实例。那些大于100GB的大号实例使用带有EBS卷的内部分段并以此来改善性能。
  • 选择一个可以提供专用EBS优化的500/100 Mbps吞吐量的RDS实例。EBS优化实例可以帮助将Amazon EBS I/O和其他EC2实例之间的通信量最小化,从而降低延时并改善吞吐量。
  • 设置有更好预分配IOPS的RDS。为了快速而一致的I/O性能,要使用更高的IOPS(1000+),因为这样可以保持低延时并提供更高的吞吐量。
  • PIOPS对于随机读写是非常重要的,但是当你有一个连续工作负载时,你还必须考虑数据库和实例的大小。
  • 如果你有高速读取的要求,就要建立读副本(MySQL)来改善数据库性能
  • RDS还提供了指标,例如CPU利用率,数据库连接和可用存储空间等。如果你没有看到你想要的或是期待的性能,可以仔细观察这些性能指标并对实例进行优化。
  • 在非高峰时段启用自动备份并进行维护。
  • 对带有参数组的数据库参数进行调优。
  • 使用缓存服务,例如ElastiCache或是托管缓存服务。启用缓存服务意味着会将一些最常访问的数据存储在缓存(内存)中。
  • 在设计一个新数据库计划的时候,要考虑到数据库未来的可扩展性。

对于AWS数据库来说,性能调优并没有一个放之四海而皆准的方法。在你明白数据库的需求之后,就可以更智能地监控并改善性能了。

作者

Ofir Nachmani
Ofir Nachmani

商业技术专家、IamOnDemand.com博主。

翻译

Ranma
Ranma