前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3种方式提升云可扩展性

3种方式提升云可扩展性

作者头像
FesonX
发布2018-01-15 15:41:33
3.1K0
发布2018-01-15 15:41:33

在亚马逊云服务中部署被盛赞为是一个很好的方式来实现高扩展性并且你只需要支付你所使用的云计算机性能即可。那么,如何从这项技术中获得最佳的扩展性呢?

1. 使用弹性伸缩

亚马逊的EC2产品提供弹性伸缩这一云计算的独特功能。像往常一样为你的应用程序设置一个负载均衡器和几个Web服务器。在模板AMI的基础上设计你将不断复用的Web服务器。然后设置弹性伸缩并根据你预测的流量设置阈值。当超过阈值时,AWS将启动你的Web服务器的新实例,并自动将其置于负载均衡器池中。一旦流量低于最低阈值,亚马逊将从负载均衡器池中为你移除一台服务器。

请务必要监视此活动的开始,并为之运行一些负载和压力测试。你需要确保它能如你所期望地正常运转,并且没有异常的情况就不会不必要地运转服务器。

2. 横向伸缩数据库层

MySQL在这里提供了一系列的解决方案。你可以在Master-Master(主对主)主动被动集群(也称为循环复制)中配置MySQL。在这种配置中,MySQL将把所有已完成的事务发送到集群中的其他服务器。你的被动服务器也可以处理你的应用程序的读取流量。在实现高可用性的同时,你也可以通过将大部分的SELECT操作流量发送到另一个服务器来获得可扩展性。

随着负载的进一步增长,将额外的只读的从盘(read-only slave) 转入你的设置, 你就可以进一步扩大读取操作的规模。在执行此操作时,你可以继续将所有写入的内容发送到单个处于活动状态的主数据库。

或者,你希望采用基于MySQL社区版( community)服务器的亚马逊RDS解决方案,但需要某些设置保持锁定。在这个配置中,你将不能使用诸如Percona的高速服务器之类的另一种MySQL发行版。这个配置提供的是multi-az配置。请记住,任何你启动的MySQL服务器都将有一个区域和可用性空间作为其配置的一部分,所以你可以在亚马逊网络服务中自由使用这些功能来提高可用性。

如果单个主数据库上的负载仍存在问题,那么可以垂直扩展该节点。通过在EBS的根卷(root volume)上实例化一个新的更大的EC2实例来完成此操作。然后分离该root volume,停止你的旧实例,分离旧实例的root volume,并将其移动到新的服务器。当你将那个活动的root volume附加上去,新的更大的EC2实例将是你原来的服务器,也就是你的服务器就地扩大了!

3.使用 Striped EBS root volume

EBS是一项非常棒的技术,因为它为每个EC2实例带来了存储区域网络的灵活性。这不是没有挑战,并且有时在磁盘I / O的吞吐量上还会有很大的变化。这个变化对数据库层而言是一个挑战。请记住,亚马逊的基础架构虚拟化层将根据实例的大小增加或减少实例接收的磁盘I / O数量。

另一个获得更好EBS性能的方法是使用Linux软件的RAID技术。由于EBS内置冗余,因此你可以简单地在多个EBS卷上使用Striping或RAID 0 -- 我们推荐使用4个。

要小心地进行这些配置,因为现在每个EBS卷都不能自动操作,但要求四个都要完成。这也会影响EBS快照备份。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档