在阿里云中,ECS实例访问OSS的下行流量(即从OSS下载数据到ECS)是否计费,取决于ECS与OSS是否处于同一地域(Region)且使用内网访问。具体规则如下:
✅ 免费场景(不计费):
- 当ECS实例与OSS Bucket 位于同一地域(Region),且ECS通过 OSS内网Endpoint(如
oss-cn-hangzhou-internal.aliyuncs.com)访问OSS时,下行流量完全免费。
→ 这是阿里云推荐的最佳实践,既省钱又低延迟、高带宽。
❌ 收费场景(按量计费):
- 若ECS通过 公网Endpoint(如
oss-cn-hangzhou.aliyuncs.com)访问OSS(即使同地域),则视为公网流出流量,按OSS下行流量标准计费(即“网络流出流量”)。 - 若ECS与OSS 跨地域(如ECS在华北2,Bucket在华东1),无论使用内网还是公网Endpoint,均无法走内网(内网Endpoint跨地域不可用),只能走公网,因此全部下行流量按网络流量计费。
📌 补充说明:
- OSS流量计费仅针对网络流出流量(即用户从OSS下载到公网环境的数据),内网流量(包括同地域ECS→OSS内网访问)始终免费。
- 免费额度:OSS本身没有每月免费下行流量额度(区别于CDN或部分其他服务),其免费仅限于“同地域内网访问”这一路径。
- 注意:ECS的公网带宽费用(如按固定带宽或按流量计费)与OSS流量费是分开的。即使ECS已购买固定带宽,OSS网络下行仍会单独计入OSS账单(因为这是OSS服务产生的网络流出)。
✅ 如何确认是否走内网?
- 在ECS内使用
curl -v http://<bucket-name>.oss-cn-hangzhou-internal.aliyuncs.com/xxx测试(替换为对应地域的内网Endpoint); - 查看返回IP是否为内网IP(如
10.x.x.x或172.x.x.x); - 检查OSS控制台 → Bucket → 基本信息 → “内网Endpoint” 是否启用(默认开启)。
🔧 建议操作:
- 确保ECS和OSS Bucket创建在同一地域;
- 在ECS应用中配置使用内网Endpoint(注意:内网Endpoint域名含
-internal); - 避免硬编码公网Endpoint;可通过环境变量或配置中心动态切换;
- 可结合OSS SDK的自动Endpoint解析(如Java SDK支持
setEndpoint("oss-cn-hangzhou-internal.aliyuncs.com"))。
💡 小贴士:
若需跨地域访问且对成本敏感,可考虑:
- 使用OSS跨区域复制(将数据同步至同地域Bucket);
- 通过阿里云高速通道/云企业网(CEN)打通VPC,但OSS内网仅限同地域,跨地域仍需走公网或反向X_X方案(不推荐,增加复杂度)。
如有具体地域、ECS/OSS配置,可进一步帮你判断是否符合免费条件。
ECLOUD博客