0%

云服务器带宽介绍

1. 云服务器带宽

1.1 定义

云服务器的带宽就像是连接服务器的“公路”的宽度

  • 公路越宽(带宽越大):同一时间内能通过的“车辆”(数据)就越多,数据传输速度就越快。
  • 公路越窄(带宽越小):同一时间内能通过的“车辆”就越少,数据传输速度就越慢,在高“车流”(高访问量)时会发生“堵车”(访问延迟、卡顿)

技术定义:带宽是指在单位时间内,网络线路能够传输的数据量的最大值。通常用 Mbps(Megabits per second,兆比特每秒)作为单位。

例如,一个 5Mbps 带宽的服务器,理论上意味着它每秒钟最多可以传输 5兆比特的数据。

1.2 上行带宽和下行带宽

从服务器的角度来看的两个数据传输方向:

下行带宽 (Inbound Traffic)

  • 方向:从互联网流入你的服务器。可以理解为“接收”数据。
  • 例子
    • 你通过 SSH 或 FTP 工具,上传一个网站文件到服务器。
    • 服务器从其他网站下载一个软件安装包。
    • 用户向你的网站提交表单数据。

上行带宽 (Outbound Traffic)

  • 方向:从你的服务器流出到互联网。可以理解为“发送”数据。

  • 例子

    • 用户通过浏览器访问你的网站,服务器将网页内容(文字、图片)发送给用户。
    • 用户从你的服务器上下载一个文件。
    • 你的服务器对外提供视频直播服务,将视频流发送给观众。

对于绝大多数应用场景(如网站、博客、下载站、App后端),上行带宽是远比下行带宽更重要、消耗也更多的,因为主要的服务就是将服务器上的内容提供给广大的用户。

1.3 带宽收费问题

全球几乎所有的主流云服务商(如阿里云、腾讯云、华为云、AWS、Google Cloud、Azure)都遵循一个共同的规则:

流入服务器的流量(下行带宽/Inbound Traffic)是免费的。

流出服务器的流量(上行带宽/Outbound Traffic)是收费的。

云服务商鼓励你把数据和业务迁移到他们的平台上,所以数据“进来”不收费。而当你通过服务器对外提供服务时,数据“出去”会占用运营商的公网出口资源,这部分资源是有成本的,所以需要收费。

收费模式

通常分为两种:

  1. **按固定带宽计费 (Pay-by-Bandwidth)**:
    • 你购买一个固定的上行带宽值,比如 5Mbps。
    • 无论你用多用少,每个月都支付固定的费用。
    • 优点:费用可预测,适合流量稳定且较大的业务。
    • 缺点:如果流量很低,会造成资源浪费。
  2. **按流量计费 (Pay-by-Traffic)**:
    • 你不用预先购买固定带宽,通常会给你一个很高的带宽峰值(如 100Mbps)。
    • 服务商按照你服务器实际流出的数据总量(例如,每 GB 多少钱)来收费。
    • 优点:前期投入低,用多少付多少,适合流量波动大或初期流量小的业务。
    • 缺点:如果突然出现爆发性流量(比如网站被攻击或内容火了),费用可能会非常高,有“一晚上房子归移动”的风险。

可以不要带宽吗

购买阿里云服务器ECS可以不要公网带宽,内网带宽是免费的,如果不要公网带宽也不会分配独立公网IP地址。购买时,不要勾选“分配公网 IPv4 地址”,则该台云服务器就没有公网带宽。

影响就是云服务器不能在公网访问,也不能对外提供服务。例如,如果你的云服务器作为Web服务器,在服务器上托管了网站,那么访客无法通过公网来访问你的服务器。

2. 带宽和性能

2.1 1M带宽出网速度

阿里云服务器1M带宽下载速度是128KB/S,为什么不是1M/S?

这是由于IDC云厂商带宽多少是针对bit(比特)来计算的,而用户实际下载是根据Byte(字节)来计算的,8bit = 1Byte,所以IDC云厂商提供的带宽和实际下载速度之间有个8倍的关系,所以云服务器公网带宽实际下载速度要除以8。

2.2 1M带宽服务器可以支撑多少人同时在线

一个 1M 带宽的服务器,其出口(上行带宽)的最大数据传输速度是 128 KB/s。这意味着,服务器每秒钟最多可以向所有用户发送 128KB 的数据。

场景一:纯文本网站(如 个人博客、小型论坛)

页面大小:一个经过优化的纯文字页面(包含少量CSS样式)可能只有 15KB ~ 30KB。
计算:128 KB/s / 20 KB/页 ≈ 6.4 页/秒
解读:这意味着服务器在1秒内最多可以被 6 个人同时请求并完整打开一个页面。

场景二:普通图文网站(如 企业官网、资讯门户)

页面大小:一个包含 banner、多张配图和复杂样式的网页,大小通常在 300KB ~ 800KB 之间,甚至更大。

计算:加载完一个页面所需时间 = 500 KB / 128 KB/s ≈ 3.9 秒。

解读:这还只是一个用户访问的理想情况,加载一个页面就需要近 4 秒钟,这已经达到了用户忍耐的极限。

结论:对于有图片的现代网站,1M带宽完全不够用,只能作为个人玩具或进行无用户的后台开发。

无论带宽多大,优化前端资源(压缩图片、合并CSS/JS、使用缓存)和使用 CDN 都是节省带宽、提升访问速度的最有效方法。另外浏览器会优先加载本机缓存,并不是用户每次浏览PV都要占用首次带宽。

2.3 多少带宽合适

选择带宽没有一个“万能”的答案,它完全取决于你的应用场景用户规模预算。遵循一个核心原则:从小开始,按需升级,并善用优化工具

  1. 个人学习、开发测试环境 推荐带宽1 Mbps
    • 1M带宽的上行速度虽然只有128KB/s,但对于你偶尔从外部访问测试页面已经足够了。
  2. 个人博客、小型企业官网。推荐带宽3 Mbps ~ 5 Mbps
    • 预计日访问量在1000 PV以下,同时在线人数不多(例如10-30人)。
  3. 图片站、资源下载站、视频应用、游戏服务器。10 Mbps起步,上不封顶,强烈建议结合 CDN 和对象存储使用。
    • 服务器只负责处理动态请求(如用户登录、评论、生成页面逻辑),而不直接承担文件传输的巨大流量压力。用户从就近的CDN节点获取数据,速度快,且CDN流量费用远低于服务器带宽费用。

3. 文件上传S3问题

3.1 客户端直传S3

不消耗任何服务器的带宽,对于S3本身,数据传入是免费的。

AWS S3 成本,AWS有一个非常慷慨的政策:

  • 从互联网传入S3的数据流量 (Data Transfer IN from Internet to S3):完全免费!
  • 你只需要支付S3的存储费用(按GB/月计费)和请求费用(如 PUT, POST 等API请求次数的费用,但非常便宜)。

3.2 服务器中转S3

这个方案同时消耗了服务器的下行(入站)和上行(出站)带宽容量。

  • 客户端 → 服务器: 数据从客户端进入服务器,占用带宽资源,没有流量费用。
  • 服务器 → S3: 消耗的是你服务器的上行带宽(或称出站带宽)。在同一个AWS区域(Region)内,从EC2实例传输数据到S3是免费的!如果你的EC2和S3 Bucket在不同区域,则会收取跨区域数据传输费。

带宽占用:是,入站和出站带宽容量都被占用,服务器成为性能瓶leneck。

流量费用:否(前提是EC2和S3在同一区域),AWS免除了这两段路程的流量费用。

这不是一个好的方案:

  1. 接收和转发大文件会大量消耗服务器的CPU、内存和网络I/O,影响服务器处理正常业务(如API请求)的能力。
  2. 如果有大量用户同时上传,你的单台或几台服务器很容易崩溃。而S3本身是设计为可以应对海量并发上传的。
  3. 虽然流量费免了,但为了应对上传压力,你可能需要购买更高带宽、更高配置的服务器。

3.3 上传文件的最佳实践

  1. 客户端请求上传:
    • 移动客户端向你的服务器发送一个API请求,例如:POST /api/upload/request
    • 请求中包含文件名、文件类型等元数据(filename: "my-cat.jpg", type: "image/jpeg")。
  2. 服务器授权并生成签名URL:
    • 你的服务器收到请求后,进行权限验证(这个用户是否有权上传?)。
    • 验证通过后,服务器不接收文件本身。它使用AWS SDK,生成一个有时效性(如5分钟后过期)的、包含了安全凭证的S3预签名URL。这个URL授权客户端在指定时间内,向S3的指定位置上传一个指定的文件。
    • 服务器将这个预签名URL返回给客户端。
  3. 客户端直接上传到S3:
    • 客户端拿到这个URL后,直接向这个URL发起PUT请求,将文件数据作为请求体上传。
    • 数据流是:客户端 → 互联网 → S3,完全绕过了你的服务器。

4. 参考资料

可以加首页作者微信,咨询相关问题!