V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
vus520
V2EX  ›  分享创造

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

  •  
  •   vus520 · 2016-01-10 18:06:55 +08:00 · 9263 次点击
    这是一个创建于 3039 天前的主题,其中的信息可能已经有所发展或是发生改变。

    [email protected]
    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 实实再再的帮老板省了一大笔钱。
    老板是不是该奖励我一台特斯拉了哎?

    QQ20160110-1

    经过我们跟数家 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 实现,稳定支撑月流水数百万美元的业务,而其成本非常低廉。

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

    第 1 条附言  ·  2016-03-03 16:33:00 +08:00
    更新下:

    0
    conoha 确实有严重的限速问题,这个环节改成了 digitalocean+glusterfs 实现。
    截止目前 cf 可以抗住每月 PB 级的流量,但中间出现过一次较大流量的回源,服务器产生了 300G 左右的流量。

    1
    详细咨询了 cf 在国内的业务,确认目前是可以提供的,通过邮件确认业务并议价,最后开通。这部分费用最后还是给百度了。 cf 给的这个价格来看,在国内没有什么优势。

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

    @imxieke 除了慢慢将业务分配到不同的账号和域名上,其实我们已经做好了升级到企业版的准备,当然 5000 美元的 plan 跟目前的 CDN 平台相比就没有任何优势了。
    imxieke
        16
    imxieke  
       2016-01-10 23:44:31 +08:00
    @vus520 抱歉 刚刚看到楼主是付费的用户,不过楼主公司主要做什么业务耗费这么多流量?我想国内的 CDN 服务价格还好,应该可以满足需求吧?
    vus520
        17
    vus520  
    OP
       2016-01-10 23:50:22 +08:00
    @Yamade cf 没有节点的概念,我说的是 conoha
    Soaper
        18
    Soaper  
       2016-01-11 00:45:57 +08:00
    conoha 很容易就坑人
    irainsoft
        19
    irainsoft  
       2016-01-11 01:01:18 +08:00
    很好的经验学习下 我用 Conoha 时被限次数比较少所以印象还行但限起来确实坑 毕竟是企业还是应该再多投入点保证需求吧
    dreammes
        20
    dreammes  
       2016-01-11 01:04:24 +08:00 via iPhone
    学习
    shyling
        21
    shyling  
       2016-01-11 03:04:27 +08:00 via iPad
    我记得之前 conoha 邀请新人注册送 1000 的活动结束了
    googlebot
        22
    googlebot  
       2016-01-11 03:41:31 +08:00
    广告帖, 垃圾日本鬼子
    baskice
        23
    baskice  
       2016-01-11 05:23:41 +08:00
    cloudflare 有个问题,大陆境内几乎没法访问。请问贵公司是怎么解决的?境内还用 中国擦车 /蓝汛?
    xiaozhizhu1997
        24
    xiaozhizhu1997  
       2016-01-11 08:02:39 +08:00 via Android
    Conoha 你用多了会给你在面板限速 512Kbps 。。
    vus520
        25
    vus520  
    OP
       2016-01-11 10:09:52 +08:00
    @baskice 国内目前是七牛和蓝汛混合使用,无保底,成本只到网宿一半
    msg7086
        26
    msg7086  
       2016-01-12 00:39:56 +08:00
    我们这边用的是 Linode ,原计划是 Linode 和 Conoha 同时撑负载来加速国内用户访问。
    我们流量比较小,一个月也就几 T 的样子。
    vus520
        27
    vus520  
    OP
       2016-01-12 14:20:39 +08:00
    @msg7086 Linode 我个人很早前测试过,跟 digitalocean ,应该是不能扩容,只能停机升级 plan 。

    Conoha 有扩容却有限速的问题,好像没法折中。
    msg7086
        28
    msg7086  
       2016-01-12 21:14:12 +08:00
    @vus520 作为 CDN 来说,扩容的话加机器比升级 plan 要划算啊,流量也给的多。
    vus520
        29
    vus520  
    OP
       2016-02-01 11:50:05 +08:00
    @msg7086 目前, Conoha 是唯一一个可以扩容而不用修改 plan 的平台,当文件比较多的时候可以直接加硬盘。当然, Conoha 存在短时间内访问过大会限速的问题。
    而其它的平台目前不支持,包含 digitalocean 、 hostus 等。

    如果有可以扩容、流量高、价格低的平台,求推荐。
    msg7086
        30
    msg7086  
       2016-02-01 12:00:03 +08:00   ❤️ 1
    @vus520 我的意思是可以在架构上设计成弹性结构,需求增大的时候启动更多的实例。
    (包括你说的 Linode ,可以用 glusterfs 做成分布式文件系统作为存储结构,要更多的空间直接开机器加入集群然后 Rebalancing 就行了。
    vus520
        31
    vus520  
    OP
       2016-03-03 16:33:39 +08:00
    @msg7086
    感谢,目前已经在采用你说的这个方案了
    msg7086
        32
    msg7086  
       2016-03-04 00:33:34 +08:00
    @vus520 如果可以的话,分享一下效果和成本吧
    vus520
        33
    vus520  
    OP
       2016-03-04 11:15:42 +08:00
    @msg7086 有些涉及公司相关的数据,不太好批露,从目前的情况, cf 是我们最好的选择。
    msg7086
        34
    msg7086  
       2016-03-04 11:18:08 +08:00
    @vus520 好吧。 CF 其实性价比是不错的。
    db520
        35
    db520  
       2016-03-18 13:33:14 +08:00 via Android
    楼主你是一个 200 刀的 cf 支撑 PB 级流量?这省钱省到爆啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3701 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 00:11 · PVG 08:11 · LAX 17:11 · JFK 20:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.