网易首页 > 网易号 > 正文 申请入驻

不到3000块钱,如何支撑起每月500万次访问量及80TB流量的网站?

0
分享至

  作者 | Greg Zaal 译者 | 弯月

  出品 | CSDN(ID:CSDNnews)

  长期以来,我们一直面临一个核心挑战:如何有效利用非常有限的捐赠资金,顺利运营一个高人气的网站及其静态资源。

  将一堆文件直接扔到亚马逊的S3上当然非常容易,但我们根本承担不起如此高昂的费用。

  单是利用 S3 提供 80TB 的流量,每月就需要花费4千美元,恰巧我们获得的捐赠资金大概也是这个数目。

  就这一项,我们的预算就花了个干净,更不用说其他成本了。

  那么,我们是如何以不到区区 400 美元的成本,支撑起每月拥有 500 万次访问量及 80TB 流量的网站呢?

  
Cloudflare

  为了通过经济实惠的渠道,轻松地支撑起我们的网站,我们找到了Cloudflare。如果没有这个网络巨头,那么我们这一路会更加艰辛。

  对我们来说,Cloudflare是一个巨大的缓存层。

  这是什么意思?举个例子,当伦敦的某人下载某个文件时,客户端需要从我们的服务器获取文件,而 Cloudflare 可以将这个文件缓存到最近的一个边缘节点。

  下一次,当伦敦有人下载同一个文件时,Cloudflare 就可以将缓存的文件直接提供给他们,这样就不需要访问我们的源服务器了。

  我们通过一组规则,定义了某些特定文件以及URL的缓存时间,如果是很少发生变更的文件,则可以长时间缓存,而对于每天都会变化的文件(例如我们的静态文件列表 ) ,则需要频繁更新。

  就静态文件下载而言,大约 85% 的流量都可以由缓存提供。

  这种方法不仅适用于文件下载,而且还可用于网站的一切。

  每页加载页面时,浏览器会发送几十个请求,比如样式表、javascript、json 数据等等,但大多数都是静态文件。

  Cloudflare 同样可以缓存这种流量,效果甚至比巨大的静态文件更好,最终的缓存率达到了 93%。

  这极大地减轻了源服务器的压力,而相应的成本也会下降。

  那么,这个强大的缓存层的成本又是多少呢?

  每个月 40 美元。

  Cloudflare 的高级会员费用为每个域 20 美元,我们有两个域:polyhaven.com,用于运营主网站;polyhaven.org,用于静态文件下载。

  
Backblaze 的带宽联盟

  在 Cloudflare 的帮助下,我们需要处理的流量已由原来的 80TB 降到了 15%。尽管如此,如果使用亚马逊 S3 服务的话,每月还是需要支出约 650 美元。

  然而,S3 不是该领域唯一的玩家,还有很多其他更划算的提供商。

  而我们的选择是 Backblaze,这也是一家为消费者提供备份服务的互联网巨头。

  如果直接使用 Backblaze 的 B2 服务(亚马逊 S3 的同等服务),对于 Cloudflare 无法处理的最后 15% 的服务,每月将花费 130 美元。

  但是,由于 Backblaze 和 Cloudflare 之间的合作关系,我们可以享用他们的“带宽联盟”。

  只要我们同时使用这两种服务,并支付 20 美元的 Cloudflare 订阅费用,就完全不需要为下载流量付费。

  也就是说,我们只需要支付存储费、部分上传费用和 API 请求,最后统计下来每个月大约 11 美元。

  Web “服务器”

  通过上述一连串的操作,我们终于解决了托管静态文件本身的所有成本,但我们还需要一个网站来展示这些信息。

  我们的网站 polyhaven.com 是用 Next.js 构建的( Next.js是一个 javascript 框架,由 Vercel 创建。

  虽然我们可以在自己的服务器或其他云提供商上运行 Next.js 应用程序,但 Vercel 提供了一项非常简洁的服务,而且价格合理,我们可以使用这项服务部署 Web 应用程序。

  这不仅可以省去管理服务器的麻烦,而且无服务器的环境还有其他好处,比如提高世界各地用户的性能。

  他们的基本费用是每月 20 美元,并根据使用情况收取额外费用。

  由于我们已经使用了 Cloudflare,而且非常清楚哪些可以缓存,而哪些不行(比如需要用户身份验证的地方),所以一般我们都不会超出使用限制,除非出现严重错误。

  事实上,最近我们获得了 Vercel 的赞助,所以我们无需承担任何费用。但本文仍然会将这笔费用计算在内。

  
数据库

  数据库是网站的重要组成部分,其中存储了每个静态文件的所有信息、文件列表、下载日志等。

  以前,我们选择单独运行 hdrihaven.com 和其他站点,所有站点都建立在需要手动管理的 LAMP 技术栈上,性能问题的高发环节往往就是数据库。

  为了避免将来出现这个问题,同时也不必再担心可靠性、性能、可扩展性以及完整性等问题,我们决定购买商业云解决方案:Google Firestore。

  当然,这不是最便宜的选择,每月大约需要 100 美元,约占我们的网络预算的一半,但我仍然认为这是正确的选择。

  Firestore 只收取超出免费使用的部分。对我们来说,主要是读取数据库。

  每次从数据库中获取数据,我们都需要支付少量费用。其实,每次读取的成本非常小,大约为 0.0000006 美元。但是乘以每次页面浏览必须读取的文档数量(比如我们的库页面,每个静态文件都需要读取一次数据库,目前共计为 866 次),再乘以页面的浏览次数(每月约 500 万次),相应的成本会非常高昂。

  为了尽可能避免读取数据库,我们需要尽可能地缓存数据。实际上,我们的数据变化频率并不高,而且还有一些不太重要的数据,即使发生变化也不需要向用户显示最新信息(例如下载次数),所以使用 Cloudflare 就足够了。

  
我们的 API

  为了最大程度地缓存数据库的读取,并避免 Vercel 的账单金额上涨,我们花费了 5 美元,单独搭建了一个服务器运行 API。

  这个 API 的目标是将前端网站(托管在 Vercel 上)连接到我们的数据库。由于大量数据都被缓存了下来(为了降低数据库成本),因此这个 API 服务器可以说非常简单。

  在未来很长一段时间内,这台服务器都可以支撑我们的需求,如果真到了无法支撑的那一天,我们也可以轻松地将服务器快照迁移到更强大的服务器,或者迁移到带有负载均衡的服务器网络中。

  
Argo

  我们的数据库和 API 的成本如此之低(相对于不使用 Cloudflare 的成本),主要原因之一是缓存率极高,可达93%。

  Cloudflare 的缓存越多,我们的 API 从数据库读取数据的频率就越低,相应地成本也就越低。

  Argo 是 Cloudflare 的一项可选服务,主要功能有两个:

  1. 优化 DNS 路由,以改善延迟(有助于提升网站的速度)。

  2. 向缓存添加一个额外的层,这样所有流量都会流经 Cloudflare 的几个最大的数据中心,再分散到数百个边缘节点。

  我们对第二个功能非常感兴趣。

  继续拿上面的例子说明,如果使用 Argo,伦敦的某人下载了一个文件,则 Cloudflare 缓存的文件不仅可供伦敦使用,而且可供整个西欧使用。

  这可以提高缓存率(从75%上升至93%),但需要付出代价:经由 Argo 网络的每 GB 流量都需要付费。

  这就是为什么我们分别建立了两个域的原因:我们的 .com 域启用了 Argo,因为该网站所需的带宽较低;而 .org 域则禁用了 Argo,因为它需要服务的下载流量高达 80 TB。

  目前,Argo 每月的费用大约为 160 美元,是迄今为止最大的单笔费用。但请记住,它为我们节省了一大笔数据库费用,我大概算了一下,节省的成本大约为 250 美元。

  此外,我们还可以享受降低延迟、降低 API 服务器负载以及减少 Vercel 的使用等优势。

  
图像托管

  最后,我们还需要考虑图像的问题。我们的网站上显示的所有图像(缩略图、渲染、预览等)都存储在 Bunny.net,这又是一笔 CDN 费用。

  Bunny.net 不仅可以存储图像,而且他们还提供优化服务,允许我们动态调整网站的图像大小并动态压缩图像。这极大地改善了用户体验(页面的加载速度更快),以及我们的工作流程(我们只需要上传一个 PNG,而且格式和大小任意)。

  根据流量大小,我们每月需要支付大约 27 美元的费用。

  
总成本

  ● DNS、缓存和出口:Cloudflare(2 个域),40 美元;

  ● 缓存:Cloudflare (Argo) ,160 美元;

  ● 静态文件存储:Backblaze B2,11 美元;

  ● 服务器托管:Vercel,20 美元;

  ● 数据库:Firestore,100 美元;

  ● API:Vultr,5 美元;

  ● 图片托管和优化:Bunny.net,27 美元;

  ● 域:Cloudflare,4 美元;

  ● 电子邮件费用:MXroute,3 美元。

  总成本约 370 美元。

  其中很多服务的收费都取决于实际的使用量,而实际的使用量又取决于网站的流量。这些成本可能会随着业务的发展而增长。

  
未来的打算以及突发事件的应对

  我们在构建基础设施时,特别注意模块化,因此我们不会过分依赖任何服务。如果有必要的话,甚至连 Cloudflare 也可以换掉。

  目前,我们最薄弱的单点故障是 API 服务器,而且我没有任何运行公共 API 的经验。我们希望允许其他人使用我们的 API,并将我们的静态文件集成到他们的软件,因此这个领域需要进一步的研究和改进。

  Google Firebase 很方便,但是很贵。我们希望将来研究一些其他的托管数据库。

  Cloudflare + Backblaze 的带宽联盟是我们最大的节约成本的利器。如果将来失去这个优势,我们的计划是建立自己的负载均衡专用服务器网络。虽然听起来很困难,但我们有过这样的经验,而且效果很好。虽然需要在管理上花费一番心思,但成本应该不高。

  希望本文分享的经验能对你有所启发,也希望你能找到理想的架构。

  原文地址:https://blog.polyhaven.com/how-we-handle-80tb-and-5m-page-views-a-month-for-under-400/

  本文为 CSDN 翻译,未经授权禁止转载!

  END

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
大S两个孩子回北京过年,小杨阿姨晒飞机照片,汪小菲和孩子团聚

大S两个孩子回北京过年,小杨阿姨晒飞机照片,汪小菲和孩子团聚

素素娱乐
2026-01-26 16:32:24
湖底惊现39年前失踪的运钞车,钞箱毫发无损,撬开后却傻眼了

湖底惊现39年前失踪的运钞车,钞箱毫发无损,撬开后却傻眼了

青青会讲故事
2025-09-17 11:32:38
业绩杀!利润预告大幅下降超60%!白酒龙头逼近跌停,带崩整个板块!白酒还能相信吗?

业绩杀!利润预告大幅下降超60%!白酒龙头逼近跌停,带崩整个板块!白酒还能相信吗?

雪球
2026-01-26 16:06:48
1940年炊事员在朱德饭里下毒,枪毙之时,杨奇清提出:重审此案

1940年炊事员在朱德饭里下毒,枪毙之时,杨奇清提出:重审此案

鹤羽说个事
2026-01-24 15:14:20
问界M6预热,“爆款”潜质显现,中端市场格局即将迎来变数!

问界M6预热,“爆款”潜质显现,中端市场格局即将迎来变数!

i王石头
2026-01-26 23:54:56
“第二代赌王”周焯华,被判18年罚款248亿,睡过的女星有多少?

“第二代赌王”周焯华,被判18年罚款248亿,睡过的女星有多少?

小熊侃史
2025-12-26 11:25:18
朝鲜第一“妖女”,与国王在宴会上“办事”,比妲己还夸张

朝鲜第一“妖女”,与国王在宴会上“办事”,比妲己还夸张

老澽爆笑大聪明
2026-01-13 20:00:05
3男3女出租屋性交易:价格曝光,被抓画面流出,事发全过程披露

3男3女出租屋性交易:价格曝光,被抓画面流出,事发全过程披露

博士观察
2026-01-25 21:18:06
鼓励老百姓捐献器官,还纳入见义勇为,这些专家到底想干啥?

鼓励老百姓捐献器官,还纳入见义勇为,这些专家到底想干啥?

眼光很亮
2026-01-25 09:19:18
媒体人:俱乐部、体育局极力挽留无果,杨鸣未跟随辽宁队前往四川

媒体人:俱乐部、体育局极力挽留无果,杨鸣未跟随辽宁队前往四川

懂球帝
2026-01-26 13:46:40
关凌新买的衣服被老公当垃圾扔掉,夫妻吵架,对老公微信备注抢镜

关凌新买的衣服被老公当垃圾扔掉,夫妻吵架,对老公微信备注抢镜

八怪娱
2026-01-26 16:31:35
科林迪福建议阿尔特塔注意球员的情绪,瓜迪奥拉有可能迎来低谷期

科林迪福建议阿尔特塔注意球员的情绪,瓜迪奥拉有可能迎来低谷期

任意球后
2026-01-26 23:40:23
近18战15胜!登卡稳C&9人轮换体系 快船好起来不是偶然而是必然?

近18战15胜!登卡稳C&9人轮换体系 快船好起来不是偶然而是必然?

画夕
2026-01-26 13:02:17
阿森纳的“罪人”?祖比门迪致命失误引爆球迷怒火

阿森纳的“罪人”?祖比门迪致命失误引爆球迷怒火

星耀国际足坛
2026-01-26 21:15:19
黄磊女儿留学遭群嘲!特权堆出的才女,吃相太难看

黄磊女儿留学遭群嘲!特权堆出的才女,吃相太难看

户外阿毽
2026-01-24 01:34:31
按薄一波的资历,假如参加55年授衔,能不能被授予“开国大将”?

按薄一波的资历,假如参加55年授衔,能不能被授予“开国大将”?

鹤羽说个事
2025-12-20 11:25:04
义无反顾2:情托平河,暗布人棋

义无反顾2:情托平河,暗布人棋

金昔说故事
2026-01-26 17:27:39
最难升的纵队副司令 司令换了5人他还未转正,55年授衔结果很意外

最难升的纵队副司令 司令换了5人他还未转正,55年授衔结果很意外

顾史
2026-01-24 21:06:22
“老炮”底线犹存!贾国龙拒借公权力打压罗永浩,仍令人高看一眼

“老炮”底线犹存!贾国龙拒借公权力打压罗永浩,仍令人高看一眼

瑜说还休
2026-01-19 11:57:40
成都西岭雪山景区就“围雪收费”致歉:已新增3个免费项目区

成都西岭雪山景区就“围雪收费”致歉:已新增3个免费项目区

黄河新闻网吕梁频道
2026-01-22 09:36:52
2026-01-27 00:56:49
CSDN incentive-icons
CSDN
成就一亿技术人
26282文章数 242221关注度
往期回顾 全部

科技要闻

印奇再上牌桌,阶跃融资50亿

头条要闻

女子被丈夫和闺蜜背叛一夜白头:听到儿子叫第三者妈妈

头条要闻

女子被丈夫和闺蜜背叛一夜白头:听到儿子叫第三者妈妈

体育要闻

叛逆的大公子,要砸了贝克汉姆这块招牌

娱乐要闻

张雨绮被抵制成功!辽视春晚已将她除名

财经要闻

从美式斩杀线看中国社会的制度韧性构建

汽车要闻

宾利第四台Batur敞篷版发布 解锁四项定制创新

态度原创

本地
数码
手机
教育
游戏

本地新闻

云游中国|格尔木的四季朋友圈,张张值得你点赞

数码要闻

苹果发布新一代AirTag与新款Black Unity编织表带

手机要闻

华为神秘新机曝光:白绿橘蓝黑五色可选,或为全球首款折叠平板!

教育要闻

小学阶段的分数,从来都不是重点

分析师称PS6不会在2027年到来!停滞两年或不是坏事

无障碍浏览 进入关怀版