我在rStudio中構建了一個r shiny web應用,該應用通過Sys.setenv()中的EC2使用訪問密鑰、秘密訪問密鑰和區域從Amazon S3桶中提取資料,但我想利用AWS CloudFront。我已經通過AWS在線控制臺為有關的Amazon S3桶設定了一個CloudFront分布,但不太明白如何實際保證資料是通過CloudFront而不是EC2提取的。我也可能誤解了Amazon S3和EC2/CloudFront之間的關系,因此非常感謝任何資訊。
uj5u.com熱心網友回復:
CloudFront位于S3桶(或http "原點")的 "前面",接收傳入的請求,并將其轉發給原點。 然后,它對回應進行快取。 Cloudfront是一個 "內容分發網路",這意味著它在各地都有邊緣節點,并將請求流量路由到附近的邊緣節點,最大限度地增加亞馬遜網路上的網路路徑(該網路速度快、質量高,與AWS的其他部分有良好的連接),并最大限度地減少消費者級別的路徑部分(該路徑緩慢、潛在、不可靠)。
這種快取和邊緣cdn可以大大加快速度--對于遠程用戶或高度重復的請求(如繁忙的網站)。 但是它對你在R中的性能會有什么影響呢? 如果 R 在 EC2 實體中運行,那么你已經很接近 s3 服務器了,所以更接近邊緣 cdn 服務器對你沒有幫助。
Cloudfront 提供超文本協議,因此對 cloudfront 的請求將通過 https 進行,但它不提供 s3 api,因此你的 s3 代碼將不得不改為更多基于 http 的流程。 你必須以不同于你在 S3 中使用的 Sigv4 aws 簽名的方式來解決你的 authNZ。
Amazon S3 和 EC2/CloudFront 之間的關系你可以把云端陣地看作是原點前的一個負載平衡器。 這個起源可能是 S3,也可能是 http 服務器,也許是 EC2 實體上的。 但是它的消費者始終是 http 客戶端。 消費者可以在EC2上,也可以在其他地方運行,但他們仍然使用HTTPS。 因此,選擇
EC2/Cloudfront這個短語對我來說有點混亂,因為EC2是在客戶端,而Cloudfront "更接近 "等式的S3源頭。轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/319204.html
標籤:
