基于弹性计算平台构建高可用、可扩展的应用简介:本文重点介绍如何利用弹性计算平台构建高可用、可扩展的应用。
的是最简单的云服务器,与物理机无二,没有任何的使用门槛。由于采用了云计算技术,相比传统的IDC托管服务,弹性计算在自助管理、资源组合灵活性、基础环境定制化、数据安全性及硬件资源利用率上都有不小的优势。 ,也未必能够得到一个满意的答复。现在,我们可以在控制台中全程监控和管理每一台服务器的运行情况,从而做出快速的决定--重启或者部署新的服务器。 ECS支持目前主流的Windows和Linux系列操作系统。用户不仅可以使用这些标准的镜像,还可以在此基础上修改配置、安装软件,创建出自己的镜像,当要快速恢复基础环境或者批量部署集群时,自定义镜像将成为提高运维效率的利器。
有了分布式存储的支持,ECS可以提供比传统主机或VPS服务更高的可用性指标。当一台物理机损坏时,ECS会自动监测到硬件故障,在第一时间内把云服务器迁移到新的宿主机上,同时硬盘数据保持最后一刻的状态。 然后,在国内,提供“云主机”的大大小小数百家服务商中,95%以上只是把一台性能较好的物理服务器通过虚拟化技术虚拟为若干台虚拟机再出售给客户,实际上就是VPS。VPS的问题在于当宿主服务器发生故障(如主板损坏、电源损坏、操作系统损坏、硬盘损坏等)的 情况下,在上面运行的所有VPS将全部当机,恢复时间一般需要数小时以上。 使用了分布式存储系统的“真云”能在10分钟左右将业务迁移至其他节点,且硬盘数据保持最后一刻的状态。
既然没有什么硬件是永不损坏的,我们是否可以用多份冗余的硬件来降低故障的概率?如果挨在一起的服务器被一把火烧掉的可能性太大,我们是否可以把它们分散在不同的集群?如果数据可能被破坏,是否要经常做些备份?… … Web服务器、缓存服务器都是非常适合部署为集群的,单台服务器损坏不会影响整个网站的访问。数据库服务器稍难一些,但它们也提供了镜像、主从复制、读写分离等解决方案。
不同的可用区代表数据中心里的不同物理位置,同一可用区内的服务器可能同时遭遇网络设备、电力等故障,因此,把一个集群内的云服务器分散到不同的可用区甚至不同的数据中心(Region)是个明智的选择。
多台Web服务器可以通过配置负载均衡或者DNS轮询提供对外服务。 相比DNS轮询,负载均衡方式会更加灵活,因为它对外屏蔽了服务器的真实IP,当负载均衡资源池内增加或减少服务器时,对客户是透明的。而DNS存在时延的问题,集群发生调整后,很有可能造成部分用户在很长一段时间内无法正常访问网站。 另外,负载均衡能够跟踪后端应用服务器的健康状态,自动排除有故障的节点,避免出现服务时断时续的问题。 对于特别大的应用,我们推荐使用负载均衡+DNS轮询的方式,只是这里的DNS轮询域名指向的是负载均衡的VIP。
为了应对经常性的业务推广和可能的DDOS网络攻击,实现系统与应用程序的一键部署很重要。系统管理员可以根据应用的当前状态(CPU、内存使用率、HTTP的响应时间等)作出判断,即时增加服务器,并且快速部署应用程序,顶住突增的业务流量。如果实现得更智能一 些,可以在应用服务器内部部署一些监控程序,由主控程序判断当前整个集群的负载情况,调用ECS API自动增减服务节点。 用一台主控机去批量操作其它云服务器时,应该尽量地使用一些便捷工具,例如SSH密钥对,它实现了授权服务器间的免登录,使得集群管理更加简单。
础上可以保障您的数据高枕无忧。然而,单个物理位置的存储始终会面临地震、火灾等灾难的威胁,如果你觉得还不够安全,或者有异地使用的需要,且能够承受异地备份带来的存储、带宽等成本,可以自行拷贝数据文件。我们的弹性计算平台有不同区域的数据中心, 您可以考虑在一个数据中心进行业务开展,而在另外一个数据中心进行灾难备份。
单台服务器的硬件故障是常见现象,以现有的云计算技术能力,尚无法做到不影响云服务器的运行,但ECS可以快速检测到故障特征,并且将云服务器自动迁移到新的宿主机上。这里存在一个问题,虽然云服务器重新启动了,而且硬盘数据恢复到最后一刻的状态,但是原 先正在运行的应用程序中止了。为了让你的服务中断时间尽量地缩短,避免人工的介入,强烈建议将应用程序及相关服务(如Web服务、数据库服务等)设置为开机自启动,这样,你就可以高枕无忧地睡大觉,不用半夜起来恢复应用,尽管只是几个点击或者命令操作。
安全也是高可用的重要前提之一。放在IDC机房中的服务器时时面临各种恶意攻击,比如端口扫描攻击
越多的服务意味着越多的漏洞,特别是Windows共享文件夹、远程修改注册表项等服务都存在巨大的风险,如果你的工作不需要这些服务,请马上关闭。
前段时间爆出的微软高危RDP漏洞让很多用户深受其害,通过一个简单的Python脚本,黑客就可以直接获取系统管理员权限或者直接把服务器打至蓝屏。不要忽略操作系统厂商的安全警告,一旦遭遇攻击,将造成不可挽回的损失。
采用白名单控制策略,只开放最小集合的端口。对于数据库服务器,更要设置IP白名单,仅允许前端的Web服务器访问;对于Web服务器,只对外开放80端口。
黑客经常用工具软件破解3389的远程登录密码,即使您的密码足够复杂,但这种尝试会消耗掉您的主机大部分的CPU资源。笔者曾经遇到过一个很奇怪的现象,在一台Windows 2003服务器上,应用的负载很低,但CPU利用率达到了99%,从任务管理器中看到,有无数个 winlogon.exe进程疯狂消耗CPU,当时百思不得其解。一天之后,这台服务器就沦陷了,我才恍然大悟,一定是攻击者在尝试破解密码为了减少这类攻击,最有效的方式就是修改掉远程登录的默认端口,增加黑客扫描的难度。为预防这个问题,弹性云主机开通后 的默认端口是33890,而不是3389,防止CPU资源被白白浪费。
头像文件不见了!要解决这个问题,必须把上传文件存放到共享的文件夹,Web服务器不能保留任何自己的数据(即无状态)。 在使用负载均衡时,网页文件建议使用文件共享、NFS、ISCSI 或 rsync定期自动同步。
安全不仅是操作系统配置的问题,堡垒更容易从内部被攻破,而这个内鬼很有可能就是我们的应用。从概率上说,一个复杂程序会比一个简单程序多很多漏洞,而Web应用涉及数据库、应用服务器、缓存等诸多组件,稍有不慎,攻击的后门就会向黑客敞开。 常见的Web服务漏洞有:
htmlspecialchars函数、Java Jakarta commons的StringEscapeUtils类都是实现编码功能的快捷工具。
那么这个应用距离沦陷也就不远了,攻击者只要输入一个值为 ”’ or 1=1 or name=’”’ or 1=1 or name=’”’ or 1=1 or name=’”’ or 1=1 or name=’
或者采用参数化的SQL,例如: [table=100%,,,0]
一定要取消上传文件的可执行权限,另外,绝不允许这类文件被当作服务端脚本解析。赶紧为你的网站实施安全策略吧!
还包含在线支付功能,部署带授权证书的HTTPS是必不可少的,这也是很多第三方支付平台的强制要求。
|