對(duì)象存儲(chǔ)和高防CDN實(shí)現(xiàn)分析揭秘

來(lái)源:cdnfine
作者:cdnfine
時(shí)間:2020-12-10
2982
分享一個(gè)對(duì)象存儲(chǔ)和高防CDN配合使用的話題,一般來(lái)講,公有云廠商提供對(duì)象存儲(chǔ)的服務(wù)之外,還會(huì)附帶一些增值服務(wù),這些服務(wù)是適配不同的應(yīng)用場(chǎng)景的。什么意思?對(duì)象存儲(chǔ)本質(zhì)上解決了海量存儲(chǔ)的問(wèn)題,但是數(shù)據(jù)不僅要可靠的存儲(chǔ),大部分情況數(shù)據(jù)還要處理才會(huì)有價(jià)值,所以一般公有云廠商還會(huì)有數(shù)據(jù)處理的服務(wù),比如圖像處理,類似縮略圖,音視*頻轉(zhuǎn)碼,視屏截幀。其次,數(shù)據(jù)訪問(wèn),也有特殊需求,比如一次上傳,多次下載的場(chǎng)景,就配合使用CDN的服務(wù),因?yàn)楦叻繡DN的下載流量會(huì)比對(duì)象存儲(chǔ)服務(wù)下載的成本要低。

分享一個(gè)對(duì)象存儲(chǔ)和高防CDN配合使用的話題,一般來(lái)講,公有云廠商提供對(duì)象存儲(chǔ)的服務(wù)之外,還會(huì)附帶一些增值服務(wù),這些服務(wù)是適配不同的應(yīng)用場(chǎng)景的。什么意思?

對(duì)象存儲(chǔ)本質(zhì)上解決了海量存儲(chǔ)的問(wèn)題,但是數(shù)據(jù)不僅要可靠的存儲(chǔ),大部分情況數(shù)據(jù)還要處理才會(huì)有價(jià)值,所以一般公有云廠商還會(huì)有數(shù)據(jù)處理的服務(wù),比如圖像處理,類似縮略圖,音視*頻轉(zhuǎn)碼,視屏截幀。

其次,數(shù)據(jù)訪問(wèn),也有特殊需求,比如一次上傳,多次下載的場(chǎng)景,就配合使用CDN的服務(wù),因?yàn)楦叻繡DN的下載流量會(huì)比對(duì)象存儲(chǔ)服務(wù)下載的成本要低。

什么是CDN?全稱Content Delivery Network,本質(zhì)上是部署在各地的邊緣服務(wù)器,提供數(shù)據(jù)的就近訪問(wèn)體驗(yàn),并有效降低數(shù)據(jù)服務(wù)器后端壓力。

從技術(shù)實(shí)現(xiàn)來(lái)講,CDN其實(shí)是后端服務(wù)器的緩存代理。

示意圖:

2105004157-0.jpg

公有云廠商提供對(duì)象存儲(chǔ)服務(wù)的同時(shí),還會(huì)提供cdn服務(wù),因?yàn)檫@兩個(gè)服務(wù)都是一家,所以自然方便協(xié)同操作。

數(shù)據(jù)上傳:

數(shù)據(jù)上傳走對(duì)象存儲(chǔ)服務(wù)的域名(endpoint);

數(shù)據(jù)下載:

數(shù)據(jù)下載可以走對(duì)象存儲(chǔ)服務(wù)的域名;

也可以走cdn域名下載;

對(duì)象存儲(chǔ)開啟cdn之后,客戶端使用cdn服務(wù)的域名請(qǐng)求數(shù)據(jù)。如果數(shù)據(jù)不在cdn服務(wù),cdn服務(wù)會(huì)自動(dòng)使用對(duì)象存儲(chǔ)Bucket域名回源,拉取數(shù)據(jù)到cdn的緩存下來(lái)。這樣之后的壓力全都卸載于cdn服務(wù)上。所以,從以上描述我們?cè)僖淮误w會(huì):cdn其實(shí)就是簡(jiǎn)單的后端存儲(chǔ)服務(wù)的緩存代理。如果業(yè)務(wù)要使用cdn的話,需要明確cdn服務(wù)的域名,對(duì)象存儲(chǔ)的域名,將映射關(guān)系配置在cdn服務(wù)中(這一步其實(shí)是公有云廠商幫我們做好)。上傳數(shù)據(jù)使用對(duì)象存儲(chǔ)域名,讀取數(shù)據(jù)使用cdn域名。

cdn回源使用方案

cdn在用戶請(qǐng)求不命中的時(shí)候,需要回源后端拉取數(shù)據(jù)。那么不知道大家有沒有思考過(guò),CDN加速使用什么樣的方案才能正確的獲取數(shù)據(jù)呢?(因?yàn)镾3協(xié)議是有權(quán)限校驗(yàn)的,也就是數(shù)字簽名,S3 v4協(xié)議會(huì)把host簽在數(shù)字身份校驗(yàn)中,也就是說(shuō),一般情況,cdn是無(wú)法直接轉(zhuǎn)發(fā)的)。一般,對(duì)象存儲(chǔ)服務(wù)和cdn配合實(shí)現(xiàn)有三種解決方案:

presign

授權(quán)讀

公共讀

presign

presign也叫預(yù)簽名。這種方案是客戶端把簽名完全準(zhǔn)備好,所有的簽名元素和校驗(yàn)全都在query url里面。cdn這種場(chǎng)景下真的就是做一個(gè)純粹轉(zhuǎn)發(fā)代理。但presign有個(gè)限制是只能使用S3 V2版本簽名,因?yàn)閏dn回源時(shí)host會(huì)變,v4版本簽名會(huì)簽host,所以這種情況下簽名校驗(yàn)會(huì)不通過(guò)。

Policy授權(quán)方案

這個(gè)是通用的方式,S3的Bucket支持細(xì)粒度的權(quán)限分配,也就是Policy策略。它允許把各種操作權(quán)限分配給各種指定的對(duì)象。

在公有云上,用戶申請(qǐng)cdn服務(wù)的資源,主要做幾個(gè)配置(公有云廠商幫你搞定的):

提供CDN域名與Bucket域名的映射關(guān)系

業(yè)務(wù)和CDN之間的認(rèn)證方式

公有云廠商還會(huì)將業(yè)務(wù)方的Bucket授予cdn服務(wù)讀權(quán)限。這樣,當(dāng)cdn未命中,cdn回源,就可以使用自己的賬號(hào)向?qū)ο蟠鎯?chǔ)服務(wù)請(qǐng)求數(shù)據(jù)(因?yàn)殚_啟CDN加速的時(shí)候,已經(jīng)通過(guò)policy授權(quán)給cdn了,所以能讀到數(shù)據(jù))。

公共讀方案

S3的Bucket是可以配置成公共讀,也叫做匿名訪問(wèn)。隨便任何客戶端直接curl都能得到數(shù)據(jù),所以cdn自然也能得到數(shù)據(jù)。這個(gè)是一個(gè)特殊方案,我們通常不會(huì)這樣操作。這種方式可想而知,適用場(chǎng)景有限,因?yàn)閿?shù)據(jù)安全是無(wú)法保證的。

立即登錄,閱讀全文
原文鏈接:點(diǎn)擊前往 >
文章來(lái)源:cdnfine
版權(quán)說(shuō)明:本文內(nèi)容來(lái)自于cdnfine ,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
掃碼關(guān)注
獲取更多出海資訊的相關(guān)信息
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家