TripAdvisor:使用AWS比服务器托管成本节省50%

云计算
云计算到底能省多少钱?TripAdvisor的工程师Luke Massa和Victor Luu将公司全面采用AWS的过程进行了总结,并对传统主机托管方式和100%采用AWS服务的成本作出了详细对比,结果显而易见,AWS节省了至少50%成本。当然,AWS并非万无一失,停电、实例磁盘空间不足等等问题都遇到了。摘译如下:

让我们先回顾下TripAdvisor的架构。2011年6月,TripAdvisor发布其架构。过去一年多我们的业务发展迅速,让我来总结下我们的成绩:

每月5600万访问者

每天3.5亿页面访问量

Hadoop集群运行着120TB数据,并快速增长中

这个夏天,我们从大学招聘了60名兼职,其中包括Luke Massa和Victor Luu,他们像我们的全职工程师一样工作,很快融入了我们。一直以来总有一个问题纠缠着我:为什么要使用云计算?Luke Massa和Victor Luu通过在AWS部署我们的服务,总结了在过去这个夏天他们在TripAdvisor发生的一切。

 

[[102288]]

图:AWS帮助企业节省大量成本

 

2012的夏天,TripAdvisor对我们的产品全部迁移到AWS进行了实验性的评估。首先,我们开始试验将www.tripadvisor.com和所有国际域名运行在AWS EC2环境,我们的工程师开始还怀有最简单的问题:放弃我们已有的硬件,迁移到AWS上真的划算吗?(AWS)能运行的完好吗?(注:停电、飓风以及其它不可知的原因,AWS今年已经出现两次大规模故障。或许,TripAdvisor考虑过在自己的服务器上运行OpenStack,这个开源平台允许企业架设自己的私有云,它兼容AWS的大部分API。)

几个月以前,我们开始试验性与云计算亲密接触,当然结果并不是非好即坏。我们在过程中学到了大量经验,不仅仅是AWS提供的价值,还包括帮助我们改造了原有托管服务器集群的架构。这一切都归功于AWS的灵活性,我们将DNS切换,流量转换到AWS,这非常实用,是非常好的学习工具!

目标

在EC2上建立网站的全部,评估实际生产环境的流量压力

建立成本模型

确认架构升级后我们可以减少支出,并增加扩展性

在转换到AWS后,我们需要找到方法提升我们现有的架构

EC2的支出

支出包括三个主要部分:实例、EBS和网络。假定生产环境的网络流量为200GB/小时,支出为14.30美元/小时。可以预见,实例的支出占据整个支出的大部分。

实际对比

部署每个数据中心需要大约220万美元,加上每年30万美元的升级和扩展费用。固定资产支出(Capex)大约100万美元/年,假设数据中心的初始成本分摊到3年中。运营成本包括空间、电源以及带宽,这些大概30万美元/年。合计成本为130万美元/年/数据中心。我们在每个数据中心有超过200台设备,每台典型设备的成本为7000美元。

如果我们将130万美元全部花在EC2上,签订1年期合同,我们会得到下面的架构:

550个前端和后端实例

64个缓存实例

10个数据库实例

成本1486756.96美元。

这意味着我们将增加60%的容量(目前已有340个前端和后端实例,32个缓存实例,5个数据库实例)。

如果我们签订3年合同,将享有惊人的优惠,这个架构的成本仅为88万美元/年。如果我们想在三年内花掉390万美元,我们将得到如下的架构:

880个前端和后端实例

64个缓存实例

20个数据库实例

一个有趣的现象是,即便是这个架构我们只使用了1760个内核(每个服务器2个CPU内核),然而我们现在使用(CSDN注:指传统的服务器托管方式)总共3500个内核。显然,我们确信当下的架构存在一些垃圾和潜在的威胁,运行效率十分低下。

成本节省总结

保留实例的前提下,我们计算后发现,签订1年合同情况下,年化成本将节省一半。同时,我们不需要为流量高峰或系统备份预留实例,从而节省我们的总成本。

每个实例均可定制,以符合实际的需求。而现在,我们只能使用每台服务器的一部分性能。

运维人员-运维更加高效,因为我们知道实例会一直在那里运行。

几点失败

前端存在一些“BigIP喜好”(CSDN注:BigIP是F5公司推出的系列负载均衡设备)的类型实例。我们该怎么做,来减少对BigIP的依赖?

我们的负载均衡由Amazon管理,当Amazon出现故障时会发生什么?参考资料建议,全DNS名要好于IP地址,但这只适用于一般情况。

自动伸缩性帮助我们运行适当的前端和后端实例。然而,重建缓存实例需要很长时间,而且需要重复的数据库热备。

最佳实践

任何事情都可以通过AWS管理控制台搞定,它提供了命令行工具。你可以尽情的通过它自动完成许多启动过程。

在自动化启动过程中,在等待后确保实例运行并且达到要求:

“ec2-describe-instances”告诉你实例是否在运行

新版的“ec2-describe-instance-status”告诉你实例是否通过,以及系统状态检查

早期,开发了一些系统来监控实例的运行状态。但这关系到GUI问题。尽管你可以通过tag和名字监控任何事情,你还是需要一个更加自动的方式来管理这一切。举个例子,我们有一个PostgreSQL开发服务器来管理这一切。

停掉一个实例还不如终止它。这就是云计算的优势,当一个实例发生问题,常用的办法是启动一个全新的实例代替他,而不是进行重启。当然,你也可以找到并解决实例发生的那些故障。

值得注意的是,通过“terminated instances”来终止某个实例后,当你运行“ec2-describe-instances”依然会显示这个实例的名字。如果你用名字来区分实例的话,这的确是个问题,因为两个实例都会显示出来。

建议清理你的EBS卷。存储的成本增加非常快。同时建议及时清理快照,因为他们和卷有差不多的价格。

不要忘记短暂的存储,不要忘记他们是短暂的。一些积累下来的文件十分有用,如错误日志。用定时任务来保存重要的数据。

充分利用副本和快照完成快速扩展。

细节监控相当酷,不过我发现CloudWatch的自动排列功能已经够用。对于整个系统而言,检查状态时间间隔1分钟与间隔5分钟的区别并不重要。不过,对于监控特定的实例组还是有帮助。

ELB(Amazon Elastic Load Balancing,弹性负载均衡)也是一个监控实例状态的好工具,即使我们实际上没有用到。

许多令人崩溃的网络问题可以通过小心照看安全设置组来解决。

总结

实际上,除了本文开始介绍的停电、实例磁盘空间不足这些问题外,TripAdvisor在迁移到AWS过程中还遇到了种种困扰,包括数据丢失、实例不可用、NGinx故障等等,详细请阅读原文“Problems Along The Way”部分。显然,你不能指望云计算解决所有问题,而且就目前云计算的成熟度而言,企业还需要强大的技术积累,如需要在本地做好重要实例的备份。

责任编辑:王程程 来源: Highscalability.com
相关推荐

2011-05-07 17:03:15

打印机

2013-09-16 09:16:42

云成本云成本节省云应用

2017-05-05 11:18:18

云服务器租用成本节约

2012-12-28 10:02:42

2009-04-09 19:21:02

Vmware虚拟化服务器

2018-10-18 12:43:26

2013-01-25 09:45:42

RackspaceOpenStack

2012-12-28 10:05:24

云计算成本云计算战略SaaS成本

2015-02-12 11:10:24

AWS数据中心风力发电

2009-12-10 16:25:10

Compuware大型机成本

2019-05-29 13:58:56

阿里云企业级云灾备

2009-08-07 13:22:04

服务器托管

2009-02-10 17:30:00

服务器托管企业服务器

2024-01-17 14:31:09

阿里云PolarDB云原生数据库

2009-12-09 16:40:03

迷你Linux服务器

2011-06-13 10:20:16

eX5服务器虚拟化

2022-02-08 10:15:30

数据中心能耗

2010-06-21 10:02:32

2021-09-03 12:03:21

ADM存储

2009-02-16 15:50:57

服务器 降低成本
点赞
收藏

51CTO技术栈公众号