本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon S3 上建置應用程式的常見儲存貯體模式
當您在 Amazon S3 上建置應用程式時,您可以使用唯一的一般用途儲存貯體來分隔不同的資料集或工作負載。當您建置為最終使用者或不同使用者群組提供服務的應用程式時,請使用我們的最佳實務設計模式來建置應用程式,以充分利用 Amazon S3 功能和可擴展性。
重要
建議您建立無法預測的儲存貯體名稱。除非您已建立儲存貯體,否則請勿編寫程式碼,假設您選擇的儲存貯體名稱可用。建立無法預測之儲存貯體名稱的一種方法是將全域唯一識別碼 (GUID) 附加至儲存貯體名稱,例如 amzn-s3-demo-bucket-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
。如需一般用途儲存貯體命名規則的詳細資訊,請參閱 一般用途儲存貯體命名規則。
多租戶儲存貯體模式
使用多租戶儲存貯體,您可以為團隊或工作負載建立單一儲存貯體。您可以使用唯一的 S3 字首來組織存放在儲存貯體中的物件。字首是物件索引鍵名稱開頭的字元字串。字首可以是任意長度,以物件索引鍵名稱的最大長度 (1,024 個位元組) 為準。您可以將字首視為以類似於目錄的方式組織資料的一種方式。但是,字首不是目錄。
例如,若要儲存有關城市的資訊,您可以依大陸、國家/地區、省或州來組織。因為這些名稱一般不包含標點符號,所以您可以使用斜線 (/) 作為分隔符號。下列範例顯示使用斜線 (/) 分隔符號,依大陸、國家/地區、省或州來組織城市名稱的字首。
-
Europe/France/NouvelleA-Aquitaine/Bordeaux
-
North America/Canada/Quebec/Montreal
-
North America/USA/Washington/Bellevue
-
North America/USA/Washington/Seattle
當您在儲存貯體中有數百個唯一的資料集時,此模式會進行良好的擴展。使用字首,您可以輕鬆組織和分組這些資料集。
不過,多租戶儲存貯體模式的一個潛在缺點是,許多 S3 儲存貯體層級功能,例如預設儲存貯體加密、S3 版本控制和 S3 請求者付款,都設定為儲存貯體層級而非字首層級。如果多租用戶儲存貯體中的不同資料集具有唯一要求,則您無法在字首層級設定許多 S3 儲存貯體層級功能,這可能會讓您難以為每個資料集指定正確的設定。此外,在多租用戶儲存貯體中,成本分配可能會變得複雜,因為您會努力了解與特定字首相關聯的儲存、請求和資料傳輸。
Bucket-per-use 模式
使用 bucket-per-use 模式,您可以為每個不同的資料集、最終使用者或團隊建立儲存貯體。由於您可以為每個儲存貯體設定 S3 儲存貯體層級功能,因此您可以使用此模式來設定唯一的儲存貯體層級設定。例如,您可以設定預設儲存貯體加密、S3 版本控制和 S3 請求者付款等功能,方式是針對每個儲存貯體中的資料集進行自訂。為每個不同的資料集、最終使用者或團隊使用一個儲存貯體,也可以協助您簡化存取管理和成本分配策略。
此策略的潛在缺點是,您需要管理潛在的數千個儲存貯體。所有 AWS 帳戶 的預設儲存貯體配額皆為 10,000 個一般用途儲存貯體。您可以透過提交配額增加請求來增加帳戶的儲存貯體配額。若要請求增加一般用途儲存貯體,請造訪 Service Quotas 主控台
若要管理您的 bucket-per-use 模式並簡化基礎設施管理,您可以使用 AWS CloudFormation。您可以為模式建立自訂 AWS CloudFormation 範本,該範本已定義 S3 儲存貯體的所有所需設定,以便輕鬆部署和追蹤基礎設施的任何變更。如需詳細資訊,請參閱 AWS CloudFormation 使用者指南中的 AWS::S3::Bucket。