3种提升云可扩展性的方法

部署在亚马逊的云服务器中被认为是实现高可扩展性的好方法,同时只需要为您所使用的计算能力支付费用。不过您要如何从技术中获得最佳的可扩展性呢?

1. 使用自动缩放

自动缩放是云计算,特别是亚马逊 EC2 提供的独特功能。只需要像往常一样为您的应用程序设置一个负载均衡器和一些网页服务器。将您的网页服务器保存为模板 AMI。然后设置自动缩放并根据您预测的流量设置阈值。当流量超过阈值时,AWS 将启动一个或多个 Web 服务器的新实例,并自动将其添加到负载均衡器池中。一旦流量低于一定的阈值,亚马逊将会为您关闭一些不再需要的服务器。

记得对自动缩放进行监控,并运行一些负载和压力测试。你要确保它像你期望的一样工作,同时没有什么异常的情况会导致你启用不必要的服务器。

2. 水平缩放数据库服务

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

随着负载的进一步增长,你可以启用更多的只读的从数据库。在执行此操作时,您需要将所有写入请求发送到单个主数据库以保障数据一致性。

或者,您可能希望采用基于 MySQL 社区版服务的 Amazon Relational Database Service (Amazon RDS)解决方案,但会受到一些限制。在 RDS 中,你将不能使用诸如 Percona 之类的备用 MySQL 发行版。RDS 提供的是多可用区配置。请记住,任何你启动的 MySQL 服务器都将有一个区域和可用区作为其配置的一部分,所以你可以自由使用 Amazon 的这些功能来提高可用性。

如果主数据库上的负载继续存在问题,那么可以垂直扩展该节点。创建一个新的更大的 EC2 实例并将 EBS 卷挂载上去,然后停止您的旧实例。此时你的新 EC2 实例将替代你原来的服务器。

3. 使用冗余的 EBS 卷

EBS(Elastic Block Store,弹性区块存储)是一项非常棒的技术,因为它为每个 EC2 实例提供了一个灵活的存储网络。但这并不是完美的,有时你会发现磁盘 I/O 吞吐量上发生很大的变化。这对数据库应用来说会是个很大的问题。亚马逊的虚拟化基础架构会根据实例的大小提高或降低实例的磁盘 I/O 性能。

另一个获得更好的 EBS 性能的方法是使用 Linux 的软 RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)技术。由于 EBS 内置数据冗余,因此您只需要简单地在多个 EBS 卷上建立 RAID 0 - 我们推荐使用 4 个 EBS 卷。

在进行这样的配置时要当心,因为现在每个 EBS 卷都不能自行工作,但要求全部四个 EBS 卷同时工作。这同时也会影响 EBS 快照备份。

本文的版权归 Xiaoxing Ye 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

马哥金牌分享 | 十分钟学会用Django快速搭建一个blog

本文是由马哥教育金牌讲师小智的文字分享《如何快速搭建一个博客》整理而来。 ---- 1.django简介 Django是一个开放源代码的Web应用框架,由Py...

3094
来自专栏恰童鞋骚年

《大型网站技术架构》读书笔记之五:万无一失之网站的高可用架构

此篇已收录至《大型网站技术架构》读书笔记系列目录贴,点击访问该目录可获取更多内容。

1433
来自专栏向治洪

JavaScript 的时间消耗

随着我们的网站越来越依赖 JavaScript, 我们有时会(无意)用一些不易追踪的方式来传输一些(耗时的)东西. 在这篇文章中, 我会介绍一些能让你的网站在移...

2207
来自专栏莫韵的专栏

基于ELK的nginx-qps监控解决方案

nginx-log中所有我们需要的信息,都是有的 。

1.4K9
来自专栏地方网络工作室的专栏

打造前端MAC工作站(三)使用brew利用命令行安装软件

打造前端MAC工作站(三)使用brew利用命令行安装软件 前情回顾 打造前端MAC工作站(一)简单系统配置 打造前端MAC工作站(二)安装软件的两种方法 前...

20810
来自专栏程序员笔记

开发一个可维护的程序

1754
来自专栏最高权限比特流

漫谈计算机组成原理(二)系统总线

从引言中,我们基本上能够了解到总线在计算机系统中的作用。但是上面的说法只是一个概论,我们需要给出更加详细的总线的作用:总线是计算机中各个部件的信息传输线。在计算...

3403
来自专栏深度学习那些事儿

深度学习-在ubuntu16.04安装CUDA9.1-总结(问题完全解决方案)

深度学习大火,为了赶上AI的班车,许多研究生本科生们都在搞深度学习。然而深度学习环境搭建必不可少,这篇文章是我多次为实验室搭建环境所积累起来的经验总结,希望所有...

5895
来自专栏北京马哥教育

Web性能压力测试工具http_load,webbench,ab,Siege详解

1. http_load http_load是基于linux平台的性能测试工具,它体积非常小,仅100KB。它以并行复用的方式运行,可以测试web服务器的吞吐量...

55511
来自专栏Java进阶干货

微服务架构组件分析

服务描述:服务调用首先解决的问题就是服务如何对外描述。 常用的服务描述方式包括 RESTful API、XML 配置以及 IDL 文件三种。

1171

扫码关注云+社区

领取腾讯云代金券