基于 CloudFlare+Conoha 搭建的企业级廉价 CDN

2016-01-10 18:06:55 +08:00
 vus520

admin@4wei.cn
http://www.4wei.cn/archives/1002551
2016-01-10

中国的流量很贵,流量越大越贵。

目前我负责的业务一半国内,一半海外。目前日均请求过千万,流量过 10T ,总成本不超过 500 元 /天。跟传统的 CDN 服务相比,便宜到可以忽略。

CDN 介绍
在项目早期,为了业务简单,直接使用传统 CDN 提供商网宿,在 CDN 宽带超过 5G 的时候, CDN 的成本开始显现出来。
一般国内的 CDN(网宿、帝联、蓝汛,还有一些如七牛、又拍这样的二手贩子)均有宽带和流量计费,新起的云平台(阿里、腾讯、 uCloud)基本上使用流量计费。

国内的 CDN 价格,网宿的 95 峰值计费,一般价格在 45-55 元 /M ,根据宽带高值、公司背景、销售人员关系等等因素,合同的价格可以签到 30-40 元左右,其它二线的 CDN 可以签到 25-30 元左右。

其它的云服务平台,价格相对固定,业务购买一般是自助服务,价格基本上没得可谈,普遍价格在 0.9 元-1.2 元 /G 。

国内服务器的国外 CDN 价格比国内高出几个数量级,网宿的报价为 150 元 /M ,其海外节点为少数自建加 akamai 代理。其它几家传统的 CDN 服务商完全代理甚至没有海外业务。

海外的 CDN 服务商,计费一般是按流量计费,常见的如 MaxCDN, KeyCDN ,价格一般为 0.04-0.1 美元 /G 。

业务介绍
我们的业务早期使用网宿,业务从 0M 跑到 3G ,业务一直比较稳定。后来业务推到海外,直到 CDN 的成本越来越高,经过跟几家 CDN 服务咨询、测试,从最初的七牛, MaxCDN , KeyCDN ,到最后的 CloudFlare+Conoha ,终于实现成本与速度的平衡。

在第一次使用 CloudFlare 和 Conoha 的时候,都被其极低的价格吓得不敢相信,企业级项目中总觉得低价的服务肯定会出问题(事实上确实是这样,毕竟价格高的也会出问题)。

cloudflare.com

和国内的安全宝、百度云加速的业务类似, CloudFlare 提供的安全服务是帮助网站阻止来自网络的黑客攻击、垃圾邮件等,并提升网页的浏览速度,这和一般的安全软件往往会影响网页的运行速度大相径庭。目前 CloudFlare 在全球拥有 23 个数据中心,如果用户使用了其服务,那么网络流量将通过 CloudFlare 的全球网络智能路由。 CloudFlare 会自动优化用户的网页交付,以期达到最快的页面加载时间以及最佳性能。 CloudFlare 提供包括 CDN 、优化工具、安全、分析以及应用等服务。

2015 年 9 月, CloudFlare 正式宣布与百度合作改善外国网站在中国的可访问性。双方早在去年 7 月就签署了合作协议, CloudFlare 将其技术转让给百度( CEO 称此举是为了增加信任),而采用 CloudFlare 技术的百度云加速服务于去年 12 月开始运作。

CloudFlare 称,百度在中国大陆的 17 个中心地区节点与 CloudFlare 全球的 45 个节点结合起来,提升中国国内外的访问体验,当客户激活中国网络服务后,他们的中国访问者将会访问百度节点,而 CloudFlare 节点则继续服务海外访问者,可将中国流量的响应时间缩短超过 200 毫秒。
但外国客户如果要激活中国网络服务将需要 ICP 备案。网站备案是中国工信部要求所有在中国大陆使用主机或 CDN 服务的许可证书。
via:http://www.cnbeta.com/articles/429815.htm

conoha.jp

ConoHa 日本 gmo.jp 旗下的一个 VPS 主机商,成立于 2014 年。 ConoHa 提供日本、新加坡及美国机房云 VPS 服务。
ConoHa 的业务跟国内的云服务平台类似。说是云服务器,个人感觉跟 vps 差不多,跟常见的 Linode 和 digitalocean 基本上相同。
ConoHa 的官网支持中文,支持信用卡和支付宝,支持扩容支持按时间收费,可以按小时按月计费。

ConoHa 的价格非常廉价,常见的配置如 1GB 、 2Core 、 SSD50GB ,每个月 50 元人民币。

最重要的是, ConoHa 不限流量, 100M 宽带,可扩容,可加 IP 。

ConoHa 有激励政策,通过我的邀请链接注册,你可以获取 1000 日元,相当于免费赠送一台主机,
https://www.conoha.jp/referral/?token=V3xoVa5812CYk15rhJkKiiNc5E340f3uNaNjQCiaBmnWZdA30Zk-0VJ

业务实现
在 CloudFlare 中,添加一个免费(我们使用付费方案是 200 美元 /月)的域名,主要使用其提供的 IP 隐藏、文件缓存来实现防 DDOS 和 CDN 需求。

在我们的单个项目中, CloudFlare 每天可以缓存数百万次的请求,差不多 8-12TB 左右的流量。按最低 4 美分的价格,每天的 CDN 成本应该在 3000 元左右,一个月 10 万元,一年超过 100 百万元。
采用了 CloudFlare 以后,只需要 1200 元一个月,一年只需要 1 万元, CloudFlare 实实再再的帮老板省了一大笔钱。
老板是不是该奖励我一台特斯拉了哎?

经过我们跟数家 CDN 服务商的对比和测速,给 CloudFlare 的节点和速度 5 个星,稳定性和速度让我们非常意外,点赞。
但作为一个非专业的 CDN 解决方案, CloudFlare 目前还没有完善的数据报表。不能分析请求的 URL 列表,不能按常见维度分析用户和行为,对运营人员来讲是个缺憾。
同时, CloudFlare 默认只对一些基本的文本、图片文件进行缓存,有特殊的文件,比如 apk 、 exe 等文件,则颇费周折。

via:https://support.cloudflare.com/hc/en-us/articles/200172516

CloudFlare 中非默认缓存的文件,比如 apk 文件,如果需要缓存,则不能携带任何参数,否则会回源,无法缓存。
CloudFlare 另外一个巨坑便是其缓存重建只能通过 pull 方式。回源 pull 方式存在严重的风险。我们这边出现过一个 50M 的文件清理缓存以后,源站瞬间出现近千个请求。这包括 CloudFlare 的全球节点的缓存请求,也有用户的的真实请求。
CloudFlare 无法设置限速,所有请求全落到源站,源站的流量瞬间飙上 500M 。放在云上的整个路由器下的所有业务全部卡死。

源站的流量可以通过扩容的方式提升上限,为了解决巨大的回源请求,我们曾差不多把宽带提高了到 1G 。
云平台 1.2 元 /G 的流量价格也是贵到滴血,逼得我们必须要为回源的请求再构建一个廉价的中转服务器。

在测试过 Linode 和 digitalocean 以后,我们选中了 ConoHa 。主要看中其极低的价格、无限流量、多节点等优势。
我们把文件 rsync 到 ConoHa 的多台主机以后,再将 CloudFlare 的回源请求重定向到不同的 ConoHa 服务器。
虽然业务架构越来越复杂,但比起源站业务被中断,以及宽带扩容的成本, ConoHa 上一个月不到一千块钱的成本实再便宜得让人心疼。

其它
在目前的架构中,所采用的方案均为比较新的服务商,稳定性存在非常大的风险,如果有一天 CloudFlare 或者 ConoHa 倒闭,则会对现在的业务造成致命的影响。

为了降低风险,我们也在采用了一些优化手段,也在积极寻找备用方案。
比如,为了避免单个域名流量太大,被 CloudFlare 封掉,或者要求我们使用更高的付费方案,我们把 CDN 拆到多个域名下,减少单个域名的请求和流量。我们也在寻找与 CloudFlare 相同的的平台,比如 Incapsula 。甚至有人建议直接购买廉价 vps 自建 CDN 。考虑到现在云计算基础服务相对完善,自建一个全球性的 CDN 平台也不是太大难事。

为了避免 ConoHa 出故障,我们也在其它几个廉价的 vps 服务商购买了几个备用服务器,定期将文件同步过去进行灾备。

同时,我们发现 CloudFlare 中添加一个在国内备案的域名,其节点尚不能确认是否已经使用了百度云加速的节点,有没有知晓内幕的朋友。

最后
经过项目的实践和数月的运营,这个廉价的 CDN 实现,节点数可以达到成熟商用 CDN 节点数的 30%-80%(海外优势尤其明显)。跟同行业的一些朋友交流时发现,也有其它同行业的业务使用 CloudFlare+Digitalocean 实现,稳定支撑月流水数百万美元的业务,而其成本非常低廉。

云服务越来越成熟,成本越来越低廉,对于我们这样的创业公司来讲,是一大福音。而对于那些传统的基础服务商来讲,又是什么呢?

9428 次点击
所在节点    分享创造
35 条回复
kozora
2016-01-10 18:12:25 +08:00
互联网成本会逐渐下降的
zrj766
2016-01-10 19:41:28 +08:00
conoha 电信访问会绕道美国
alect
2016-01-10 21:32:48 +08:00
谢谢楼主写出这样的文章,如果想更好的缓存 CDN ,建议楼主再买一台服务器作为中间层 CDN ,然后用 Cloudflare 先去请求中间层 CDN ,可以大幅降低源站的请求数量。
6IbA2bj5ip3tK49j
2016-01-10 21:34:34 +08:00
@zrj766
@alect
conoha 就是做中间回源用的。
popu111
2016-01-10 21:37:06 +08:00
cf 好像是没有国内的,你得用百度云减速
vus520
2016-01-10 21:53:18 +08:00
@alect 我们使用 conoha 了做中间层。但 conoha 不是 CDN 。
plqws
2016-01-10 22:04:15 +08:00
不管是 conoha 还是 cloudflare 都慢成狗,楼主果然是直接无视了电信用户
这还能叫 CDN ?
vus520
2016-01-10 22:09:45 +08:00
@plqws 我们做过监控,公司也是电信接入, cloudflare 的速度还是能接受的。
特别是我们后来接入了香港和新加坡节点,速度明显比访问北美地区的服务要快很多。
popu111
2016-01-10 22:14:58 +08:00
conoha 经常限速成 100k 就比较尴尬了。。。
yexm0
2016-01-10 22:21:22 +08:00
conoha 大流量限速
Yamade
2016-01-10 22:27:42 +08:00
@vus520 cloudflare 怎么是选择 hk 和 sg 的。 200 刀也不行吧
fy
2016-01-10 23:03:15 +08:00
很有价值 收藏了
smallfount
2016-01-10 23:04:47 +08:00
conoha 这货很坑啊....
imxieke
2016-01-10 23:22:39 +08:00
感觉多出几个楼主这样的 cloudflare 会取消免费套餐或质量变低
楼主认为呢?
vus520
2016-01-10 23:38:23 +08:00
@yexm0 我们现在也担心出现这个问题,就目前来看,为了避免风险确实要把流量分割一下

@imxieke 除了慢慢将业务分配到不同的账号和域名上,其实我们已经做好了升级到企业版的准备,当然 5000 美元的 plan 跟目前的 CDN 平台相比就没有任何优势了。
imxieke
2016-01-10 23:44:31 +08:00
@vus520 抱歉 刚刚看到楼主是付费的用户,不过楼主公司主要做什么业务耗费这么多流量?我想国内的 CDN 服务价格还好,应该可以满足需求吧?
vus520
2016-01-10 23:50:22 +08:00
@Yamade cf 没有节点的概念,我说的是 conoha
Soaper
2016-01-11 00:45:57 +08:00
conoha 很容易就坑人
irainsoft
2016-01-11 01:01:18 +08:00
很好的经验学习下 我用 Conoha 时被限次数比较少所以印象还行但限起来确实坑 毕竟是企业还是应该再多投入点保证需求吧
dreammes
2016-01-11 01:04:24 +08:00
学习

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/249712

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX