2013-10-28 15 views
1

我正在構建照片共享應用程序,並試圖弄清楚我是否應該使用s3或s3 + cloudfront來託管我的用戶照片。由於我的用戶共享的照片可能不會被大量訪問(平均可能大約是5次),因此,cloudfront是一個明智的選擇嗎?另外,當cloudfront收到訪問者時,這是否會導致我的s3存儲桶放置/取得結果?我是否應該使用S3或S3 + Clouldfront作爲照片共享網站

請糾正我,如果我有這個錯誤:

使用CloudFront的+ S3的定價是:S3存儲+的Cloudfront帶寬。

回答

2

您爲Cloudfront,Cloudfront和瀏覽器的帶寬以及Cloudfront和S3之間的帶寬(降低速率)支付每個請求的價格。當Cloudfront在請求到達的邊緣位置沒有對象的副本時,您還需要爲S3中的每個GET付款。

Cloudfront在全球擁有數十個系統,它們使用基於位置的DNS服務將請求路由到這些系統。當您從雲端請求一個對象時,您的請求會根據您的IP地址建議您的位置(根據您的IP地址配置的是哪個雲端定價軟件包)轉到(理論上)最佳位置(您可以選擇不發送請求到成本更高的位置,這會讓您的用戶變得更慢,但對您而言成本更低)。

對於cloudfront中的每個位置,如果從那裏請求對象,並且該位置由於先前的請求而未緩存,則必須從S3中提取對象。 Cloudfront不是一個可預測的單一實體 - 在該系統擁有該對象的副本之前,似乎必須從其單個系統位置之一請求對象。有更多的雲前沿位置比AWS地區更多......例如,在南本德,印第安納州,亞特蘭大,達拉斯和聖路易斯有Cloudfront邊緣位置,但通過聖路易斯路線的請求並不意味着你的對象的副本也將緩存在South Bend中,直到對同一對象的請求到達那裏。

對於一個只需少量次請求每個圖像的站點,由於被緩存的圖像的可能性很小,所以cloudfront並沒有多大意義,這就是cloudfront的要點 - 緩存對象的地理位置更接近最終用戶。如果對象不在那裏,它不會更快,並且可能會慢一點,因爲對象必須由S3通過cloudfront提取,然後再傳回瀏覽器......所以您需要額外購買一些不支持的東西你在那種情況下很多。

Cloudfront只會對您的存儲桶「GET」。你仍然可以直接將對象「放入」S3。

如果您的用戶是美國的,S3的「美國標準」地區根據用戶的地理位置將請求路由到美國東部或西部的服務器。其他地區的桶只提供來自該地區服務器的所有請求。

如果您的用戶是全球性的,那麼您的系統可以根據用戶的註冊位置動態選擇您在每個區域提供的位置最合適的位置,並將該用戶的圖像存儲在那裏,理論上大多數觀衆將來自全球同一地區,或者如果不是這樣,那麼世界其他地區的用戶將不會因爲從另一個大陸獲取圖像所需的額外頁面加載時間而感到不方便,如果這些圖像是由遠程位置的人員共享的話。

+0

真棒解釋!非常感謝。 –