云平台的网络定价究竟是如何运作的?我该如何避免专用定价攻击?

云平台的网络定价究竟是如何运作的?我该如何避免专用定价攻击?

我对云平台基础设施还很陌生。为了讨论方便,我假设我讨论的只有两个平台:AWS 和 Google Cloud。

现在假设我有一个 HTTP 服务器,主要通过在线游戏的开放 API 处理 HTTP 响应。假设平均响应大小为 10KB,每天大约发送一百万个响应。

据我了解,每月价格取决于传输的数据量(以 GB 为单位)。现在我的问题是,如果有人编写一个脚本,不断从我的服务器获得响应,价格就会上涨到天价。

我相信任何好的服务器都会避免这个问题,但我不确定这个问题是如何避免的。根据我的观察,许多现实生活中的大型在线游戏 API 服务器在响应大小只有几 KB 时不会优化响应大小。一定有某种“按月固定付款或根据每秒传输的数据量付款“发生的事情与传输的数据量无关。

然而,我在平台网站上根本找不到有关此类选项的任何参考。

任何帮助,将不胜感激。

答案1

云服务为专门为其构建的项目提供了巨大的好处。如果我们谈论的是应用程序/网站托管,那么云定价模型适合那些从使用所述应用程序/网站的用户那里获得主要收入的企业。

除非这是您的主要收入来源(在这种情况下您应该可以轻松地在原始网络流量和利润之间转换),否则云托管可能根本不适合您。

请记住,如果您的应用程序不是为云基础架构构建的(例如上述游戏服务器),那么您将不会比单实例 VPS/专用托管有任何优势,除非您花了一些时间进行 devops 工作。需要进行相同的 devops 工作才能有效防止您描述的带宽攻击。

由于这种攻击已经有了名字——你可以通过搜索“拒绝钱包

答案2

两家云供应商都没有以固定价格提供 XX 带宽。定价基于消费。

您有责任控制客户端对您的资源的访问。

这意味着部署身份验证、限制或其他技术,但您可以选择如何部署以及使用哪种产品。

云服务就像建造房屋。家得宝不会给你无限量的钉子和木材。你购买建造房屋所需的材料。然后购买燃料来取暖。

我从第一天起就一直在云端工作。在此之前,我使用的是私有数据中心。您的担忧是有可能的,但在现实世界中,这种情况并不足以阻止我们大多数人在云端部署。为了消耗您的带宽,我需要消耗我可用的网络带宽。如果黑客想让你瘫痪,他们可以部署许多更痛苦的方法,这些方法对他们来说要便宜得多,而且更难追踪他们是谁/在哪里。

答案3

在服务器端,避免这种情况的方法有:

  • 要求对请求进行身份验证。换句话说,让它能够追踪WHO正在实施此类攻击,并将此类攻击定为可禁止的犯罪行为。然后妥善锁定您的帐户创建,以便在被禁止后不容易获得新的凭据。
  • 实施速率限制。通常这分多个阶段完成,通常按经过身份验证的帐户进行速率限制(因此任何用户都有速率限制)、按 API 端点进行速率限制(因此不经常调用的计算量大的端点不容易被滥用进行 DoS 攻击),并且可能按 IP 进行总体限制。您应该出于其他原因这样做(最值得注意的是防止智能 DoS 攻击和对游戏逻辑进行基于时间的攻击的可能性)。
  • 在协议中使用良好的压缩。对于您所述的响应大小,Brotli 可能值得研究(或者可能是 snappy 或 LZ4),它应该足够快以满足您的性能需求,但仍能减少几 kB 的响应大小,并且在处理每月数百万个请求的情况下,这节省的数据量并不小。

至于在其他地方缓解这种情况,这并不容易。像您所说的那样,完整的云提供商通常会提供一些最低限度的“免费套餐”,让开发人员可以轻松进行实验,而无需花费太多。例如,我认为对于 AWS 来说,每月的出站流量为 5GB(他们根本不收取入站数据费用)。这是您在这种完整的云设置中可以达到的最接近阻止使用的效果,因为大多数用户都会从中受益精确的按比例使用,而不是按“块”购买。

但是,如果您真的想要一大笔钱,可以考虑 AWS Lightsail。在那里,您可以购买一个虚拟节点套餐,其中包括固定数量的 CPU、固定数量的 RAM 和集成存储以及指定的网络使用上限。在一个计费周期内,低于该上限的网络使用量是免费的,而高于该上限的网络使用量则按比例分配,就像在完整的云设置中一样。我不知道 GCP 是否有类似的产品,但大多数 VPS 提供商(如 Vultr、Linode 或 Digital Ocean)的主要产品都以相同的方式运作,如果您选择这种方式,我实际上建议您去那里看看。这些产品的网络上限通常在数 TB 范围内,并且通常只有使用率较高的方向才会被跟踪以进行会计核算。

相关内容