COS+CVM+CDN 实现低成本高效率往返传输数据

本文最后更新于:2023年1月17日 下午

前言

背景

比如有这样的情况,客户是专门做影视的,渲染服务器在国内,拍摄组分布在欧洲各地,每天产生的数据高达500G,需要传到云服务器进行转码渲染,处理后数据差不多300G,然后再传回本地做备份

image.png

亦或者是客户对CVM成本敏感,带宽方面紧张,没有开通公网带宽,如何从内网低成本传出与公网隔离的CVM实例的文件?

问题

公网传统的办法就是利用ftp,或者远程桌面直接传输

这样的缺点非常明显,不支持断点续传,也不支持文件校验,同时效率非常低,遇到丢包延迟的时候甚至无法顺畅传输

一些公司可能会使用网盘的方式进行传输,但是同样存在缺点,数据不可控,有可能因为协议变更或资源敏感导致客户的数据无故删除,造成极大风险。或是速度无法达标造成效率低下。

若服务器没有公网地址,以上方法均无法正常进行

若服务器存在公网,考虑到公网带宽的成本,按量付费的100Mbps就得25块每小时,公网网络定价 _ 公网网络价格 _ 公网网络计费模式 - 腾讯云 (tencent.com),按照100Mbps带宽全部跑满的情况下,300G数据大约要6小时,差不多一天需要150元

如果是按流量计费的带宽,以成都区为例,每G 0.8元的费用,若每天300G则每天为240元,费用较高

考虑到海外拍摄组传输的问题,直连到国内的服务器的效率不会很高,面临丢包,断连的问题。

对于后者无公网IP的,内网似乎没有任何办法直接传输回本地,只能借助其他工具,比如内网传到一台有公网的机器上,但是如此一来又回到了第一个客户的问题

如上所有问题,对于一家注重成本或者刚起步的客户,该如何解决?

优化思路

重复流量

对于以上场景,从服务器传出来的数据,从本地传入服务器的数据,或多或少都会产生流量费用,中途遇到断连等不可抗力因素的时候,重新传输又会进一步造成费用,所以要考虑的不仅仅是数据传输流程,还要考虑稳定性

如果需要来回传输很多次的,建议所有资源保持一个地域与一个内网,传输的时候不走公网,提高效率减少成本

稳定性

如上文所述,遇到不可抗力因素的时候,不支持断点续传分片传输的话,就只能从0开始,既浪费时间又浪费流量

如果文件量大的,建议使用对象存储COS,支持到50T的分片上传,并且最好走内网,提高效率。

生态

COS,CDN,CVM统一使用腾讯云的产品,在同一个账户下1控制台可以直接管理,免去了切换平台切换账号之间的麻烦。

COS与CDN,CVM在腾讯云内同地域统一走内网。

场景优化

对象存储COS侧

同地域下,对象存储与CVM默认走内网通道,即使没有开通公网,也能直接对数据进行操作,省去了公网带宽的费用。同时内网流量是完全免费的:https://cloud.tencent.com/document/product/436/56556

image.png

如此一来,从服务器传入传出到对象存储的数据,只收流量之外的费用,而这部分费用可以忽略不计(小于0.001元)

由于是内网通道,相对公网来说更加稳定,速率更高,腾讯云CVM最低内网带宽为2.5Gbps,还有更高内网带宽的机型。

而且对象存储产品支持分片上传,断点续传

本文只讨论流量费用,由于对象存储是作为临时传输用的,1天内会删除,存储费用不考虑在内

内容分发网络CDN侧

由于服务器与对象存储在国内,直接从海外上传与下载的体验不是那么好,有可能会遇到高延迟和丢包的情况,这时候可以借助CDN进行加速,

COS 中的 CDN 适用于以下场景:

  • 对响应延时和下载速度有较高要求的场景。
  • 需跨地区、国家、大洲传输数 GB 至数 TB 数据的场景。
  • 需高密集地反复下载相同内容的场景。

同样CDN到COS之间的流量走的也是内网,流量费用按照未通过CDN直接访问源站产生的公网流量费用+CDN访问的费用 进行收费

CDN+COS加速计费示例

https://cloud.tencent.com/document/product/228/37849

按流量计费的价格如下:

COS流量定价

CDN流量定价

CDN带宽计价

相较于COS在欧洲地区的0.5-0.9元/GB,CDN只需要0.31元/GB,每GB省下了最多0.5元,成本直接减半

上例中300G数据通过COS直接下载的价格为150元,而通过CDN只需要93元

对比方案

以下数据均为按量付费(按日或小时计费),CVM带宽100Mbps

1GB=1024MB,1T=1024GB,1MB/s=8Mbps

其中,CVM所在地域为中国大陆,COS与CVM同地域,CDN在欧洲

CVM按带宽计算计费价格公式:数据量*1024/(带宽/8)/3600*带宽费,单位为(GB,Mbps)

数据量 GB CVM流量费用 CVM带宽费用 COS流量费用 CDN流量费用
20 16 11.37777778 10 6.2
100 80 56.88888889 50 31
500 400 284.4444444 250 155
1024 819.2 582.5422222 512 317.44
5120 4096 2912.711111 2560 1331.2
10240 8192 5825.422222 5120 2252.8

通过上述数据综合计算下来,CDN的费用是最低最划算的,单价在以上产品中均为最低单价

若使用资源包,COS与CDN流量费用还能进一步折扣

实施方案

整个方案的结构如下:

image.png

开通相关服务

进入对象存储COS,云服务器CVM,内容分发网络CDN 控制台,首次打开会要求开通授权,根据指引操作即可

创建存储桶

可参考:https://cloud.tencent.com/document/product/436/13309

注意,创建存储桶时,地域要与CVM所在地域一致,否则将会通过公网收取费用

存储桶权限建议设置为私有读写

创建CDN服务

可参考:https://cloud.tencent.com/document/product/228/3149

注意,CDN源站选择COS源,建议选择https回源,开启私有存储桶访问保证安全。加速类型选择大文件下载或根据业务场景选择

其余配置根据文档指引与业务需要进行配置

CVM内建议配置

如无公网需要,建议不开通公网,从内网仍然可以访问到对象存储

若系统为Windows,建议使用浏览器或COSCMD工具访问对象

通过浏览器直接访问对象地址即可在CVM进行下载,COSCMD工具指引:https://cloud.tencent.com/document/product/436/10976

Linux系统建议直接使用COSFS挂载到本地进行操作:https://cloud.tencent.com/document/product/436/6883

对象存储的本地数据上传

参考:控制台操作

此外还可以使用CosBrowser工具完成:CosBrowser操作

对象存储上传会分片上传,极大提升了稳定性,减少了资源内存的占用,而且相较于FTP,对象存储支持断点续传,即使遇到断网的情况,恢复网络后依然能继续上传

CVM上传数据至对象存储

参考 COSCMD操作

控制台操作 https://cloud.tencent.com/document/product/436/13321

若使用windows服务器,可以安装图形化管理软件COSBrowser

对象存储 COSBrowser 简介-工具指南-文档中心-腾讯云 (tencent.com)

总结

由于业务环境复杂,这种方式仅能节省成本,但是而外增加了操作的时长

但是一般的FTP,RDP等P2P的文件传输,可能会因为断网等不可控因素导致数据中途丢失只能从头传输,增加了风险。使用上述这样的方法更安全可靠。

而且通过COS连接CVM,全部走内网通道,速率,稳定,安全性可以达到最高,同时流量费为0,请求费可以忽略不计

除了传输数据,对象存储还提供了高安全性可靠的数据保障,如果本地文件损坏时,对象存储也能提供一份备份以防万一,如开头所说,客户在本地的备份同样也可以使用对象存储进行备份操作。

通过CDN,能让在COS里的数据更快速稳定地传输到本地,同时也能节省直接从COS下载的流量费用,一举两得的好方法,随着流量的增多,节省的费用将会越来越多,如下为理论上能够节省的费用

数据量 GB CVM流量费用 CDN流量费用 CDN节省率

image.png

可以看到,CDN+COS对比直接从CVM出网,能节省50%以上的费用


教程到此结束,更多可能,我们共同探索

Powered by Ar-Sr-Na


COS+CVM+CDN 实现低成本高效率往返传输数据
https://www.arirs.cn/posts/2066053/
作者
Ar-Sr-Na
发布于
2022年12月12日
许可协议