1.要解决的问题
通常在系统开发阶段是很难估计出在部署之后需要多少服务器资源。
如果在部署后服务器资源不够,那么服务器将不能很好地执行或不能跟上批处理过程。另一方面,过多的服务器资源需要过多的投资。而这有可能带来损失。
虽然也许可以在系统部署之后来调整服务器资源,但这是很难的,因为服务器资源取决于物理机器的规格。
2.云模式的说明
AWS云让你可以根据需要来改变虚拟服务器规格(CPU、内存大小等)。你甚至可以在启动虚拟服务器之后调整规格。
而在过去如果部署后的资源不足,你不得不替换物理服务器并重装操作系统,而在AWS云中不需要这么做。你可以启动一台虚拟服务器来部署系统,然后通过监控资源使用情况来对服务器规格进行调整。
3.实施
(步骤)
- 启动EC2实例并构建系统
- 使用vmstst或资源监控器CloudWatch等来监控资源利用率,如果规格不够(或过大),停止EC2实例,然后利用AWS管理控制台的改变实例类型菜单来调整实例类型,最后重启实例。
4.配置
5.好处
- 在系统设计或部署时不需精确地估算服务器规格。
- 降低了系统中断耗费的成本,也减少了由于资源不足而不能给客户提供服务的几率。
- 在支出方面也减少了浪费,因为一旦你发现资源过多,就可以切换为一个较小的规格。
6.注意事项
- 当你需要调整服务器规格时,你需要暂时停止EC2实例。系统将会下线一段时间,大约持续30秒至几分钟(取决于磁盘空间和服务器的设置)。
- 尽管可以调整服务器规格,但你仍然受限于实例类型的最大上限。所以,如果选择了最大处理性能的实例类型后资源仍然不足,你就要考虑使用横向扩展模式、缓存等其他的AWS服务来替代。
7.其他
- 如果你能预测处理峰值,那么你可以设置自动调整服务器规格来进行匹配。例如,如果高开销的收尾过程在月底进行,那么你可以整理一张时间表,说明什么时候上调规格,那么其他时间则降低规格。
- 可以通过暂时修改服务器规格来解决频繁的处理延时问题,在应用程序或数据库的性能提高后再恢复原来的服务器规格。这尤其常被用在那些很难横向扩展的领域中,例如,很难读取访问频率的消费者导向的服务器以及数据库服务器。
- 参见Scale Out模式
8.Q&A
Q1:在纵向扩展模式下,如果更改服务器规格对系统有何影响?需要注意什么?
Q2:什么叫做消费者导向的服务器?为什么访问频率很难获取?为什么很难横向扩展?
Q3:为什么数据库服务器很难横向扩展?
A3:因为这需要解决很多相关问题,如在决定使用何种横向扩展解决方案时,会有很多种选择,这主要与数据库的创建和使用方法有关。
可以采用数据库服务器原生复制的方法,即在多台服务器上复制多个数据库副本,然后将不同用户指向各台服务器来分散负载。每一台服务器都拥有完整的数据副本,并且应实时同步伙伴服务器的所有修改。这种方法通常适合地理位置分散的用户。这其中可能还会涉及一些自定义编程或开发算法来确定用户的访问与编辑等权限。
还可以采用联合数据库方法,即可以将数据库划分到多台服务器上。例如不同地区的数据保存在不同的服务器上,这种方法不同与整体复制,因为每一个位置的服务器都不具备完整的数据库,只拥有一部分的数据。而这些数据库的创建并不简单,涉及很多操作,这需要掌握关于数据访问和使用详细信息,以及全面理解这些技术和业务情况才能实现正确部署。
由此看出数据库服务器的横向扩展不是那么简单地按一个按钮就能完成的,它需要思考与实现很多设计与操作程序。