OSS 对象存储的全球加速方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hetiansu5
V2EX    推广

OSS 对象存储的全球加速方案

  •  
  •   hetiansu5 2020-11-28 00:43:30 +08:00 2641 次点击
    这是一个创建于 1783 天前的主题,其中的信息可能已经有所发展或是发生改变。

    业务场景

    OSS 对象存储作为一种海量、安全、低成本、高持久的云存储服务,深受广大开发人员的喜爱。但是在全球化的业务场景中,不管 OSS 选择放于海外或者大陆地区,都会导致另外一部分用户上传和访问质量不佳的问题。

    本文旨在提供一种基于 OSS 对象存储的低成本的全球加速方案。

    网络架构图

    网络架构图

    方案设计

    下载方案

    • 使用自定义域名配置CDN 加速
    • DNS 解析:自定义域名 CNAME 解析到 CDN 加速域名
    • 对象访问签名调整:改用URL 鉴权的方式进行签名

    上传方案

    配置步骤

    • 配置 CDN 加速
    1. 加速域名配置自定义域名,后续对象访问使用此域名。源站信息选择OSS 域名, 域名类型选择自定义 OSS 源站,域名配置为OSS 传输加速域名 {bucket}.oss-accelerate.aliyuncs.com 配置 CDN 加速

    2. 创建成功后会生成一个 CDN 加速域名(类似 xxx.com.w.cdngslb.comCDN 列表页

    3. 如果为私有 Bucket,回源配置中需要开启阿里云 OSS 私有 Bucket 回源,访问控制-开启URL 鉴权,填写主备 KEY! URL 鉴权

    • 配置 DNS 解析

    将自定义域名 CNAME 解析到刚才配置后得到的 CDN 加速域名 DNS 解析

    • 对象访问签名
     /** * CND 鉴权-A 方案的签名 * * @param string $host eg. https://mall.xxx.com * @param string $path eg. resume/110/abc.jpg * @param string $args eg. ?x-oss-process=image%2Fauto-orient%2C1%2Fresize%2Cw_160 * @param string $key 鉴权的 key * @param int $expireAt 过期时间戳 * @return string */ function sign($host, $path, $args, $key, $expireAt) { $path = Str::startsWith($path, '/') ? $path : "/$path"; $path = implode('/', array_map('urlencode', explode('/', $path))); $rand = '0'; $uid = '0'; $str = sprintf('%s-%s-%s-%s-%s', $path, $expireAt, $rand, $uid, $key); $hash = md5($str); $authKey = sprintf('%s-%s-%s-%s', $expireAt, $rand, $uid, $hash); $symbol = $args ? '&' : '?'; return sprintf('%s%s%s%sauth_key=%s', $host, $path, $args, $symbol, $authKey); } 

    对比测试

    本次测试以 3 种方案进行对比测试,测试的图片为 948KB 。

    • 直接使用 OSS 传输加速域名方案:网络耗时不是很稳定,快的 0.48s ,慢的 1s 多

    传输加速网络传输耗时

    • 使用 CDN 鉴权+OSS 传输加速域名回源方案:命中 CDN 缓存的网络耗时在 0.15s 左右,回源的网络耗时 1-2s

    1.命令缓存 CDN 缓存命中网络传输耗时

    2.OSS 传输加速域名回源 CDN 传输加速回源网络传输耗时

    • 使用 CDN 鉴权+OSS 域名回源方案:命中 CDN 缓存和上述方案差不多,回源的网络耗时再 4-7s

    OSS 域名回源 CDN 普通回源网络传输耗时

    从上面的对比测试中,可以很明显的看出 CDN 缓存加速的网络传输质量会更好,相比于传输加速通过选择优质链路从 OSS 源站取数据,CDN 在最近边缘节点的缓存更快,更稳定。

    从成本上来说,传输加速 1.6 元 /G (还不包括 OSS 访问的流量计费),而 CDN 加速的流量计费只需要 0.x/G,显然 CDN 加速更节约成本。

    eluotao
        1
    eluotao  
       2020-11-28 01:06:39 +08:00 via iPhone
    大量文件 多种类型文件 还是要用 oss
    felixin
        2
    felixin  
       2020-11-28 01:59:54 +08:00 via Android
    意思是 oss 传输加速后再套 cdn ?
    Livid
        3
    Livid  
    MOD
    PRO
       2020-11-28 02:01:04 +08:00
    这个主题已经被移动到 /go/promotions

    推广软文只能发布到这个节点。

    请阅读 V2EX 的节点使用规则 help/node

    如果持续忽略规则,你的账号将会被禁用。
    trn4
        4
    trn4  
       2020-11-28 06:42:25 +08:00 via iPhone
    全球访问加速都做不好的 oss,建议换一家
    kerro1990
        5
    kerro1990  
       2020-11-28 09:17:53 +08:00
    S3 不香吗?
    hetiansu5
        6
    hetiansu5  
    OP
       2020-11-28 11:21:33 +08:00
    @kerro1990 S3 不还是对象存储吗,传输速度肯定比不上传统 CDN 的加速。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5351 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 01:17 PVG 09:17 LAX 18:17 JFK 21:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86