COS+CVM+CDN 实现低成本高效率往返传输数据
本文最后更新于:2024年9月23日 下午
前言
背景
比如有这样的情况,客户是专门做影视的,渲染服务器在国内,拍摄组分布在欧洲各地,每天产生的数据高达500G,需要传到云服务器进行转码渲染,处理后数据差不多300G,然后再传回本地做备份
亦或者是客户对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
如此一来,从服务器传入传出到对象存储的数据,只收流量之外的费用,而这部分费用可以忽略不计(小于0.001元)
由于是内网通道,相对公网来说更加稳定,速率更高,腾讯云CVM最低内网带宽为2.5Gbps,还有更高内网带宽的机型。
而且对象存储产品支持分片上传,断点续传
本文只讨论流量费用,由于对象存储是作为临时传输用的,1天内会删除,存储费用不考虑在内
内容分发网络CDN侧
由于服务器与对象存储在国内,直接从海外上传与下载的体验不是那么好,有可能会遇到高延迟和丢包的情况,这时候可以借助CDN进行加速,
COS 中的 CDN 适用于以下场景:
- 对响应延时和下载速度有较高要求的场景。
- 需跨地区、国家、大洲传输数 GB 至数 TB 数据的场景。
- 需高密集地反复下载相同内容的场景。
同样CDN到COS之间的流量走的也是内网,流量费用按照未通过CDN直接访问源站产生的公网流量费用+CDN访问的费用 进行收费
https://cloud.tencent.com/document/product/228/37849
按流量计费的价格如下:
相较于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流量费用还能进一步折扣
实施方案
整个方案的结构如下:
开通相关服务
进入对象存储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节省率
可以看到,CDN+COS对比直接从CVM出网,能节省50%以上的费用
教程到此结束,更多可能,我们共同探索
Powered by Ar-Sr-Na