使用 Amazon AWS DataSync S3 設定 Transfer - AWS DataSync

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon AWS DataSync S3 設定 Transfer

若要在 S3 儲存貯體之間傳輸資料,您必須建立一個AWS DataSync傳輸位置。DataSync可以使用此位置作為傳輸資料的來源或目的地。

重要

建立位置前,請確定您已閱讀下列章節:

存取 S3 儲存貯體

DataSync需要存取您的 Amazon S3 儲存貯體。若要這麼做,請DataSync假設具有 IAM 政策和 AWS Identity and Access Management () 信任關係的 AWS Security Token Service (IAMAWS STS) 角色。政策決定角色可以執行的動作。

DataSync可以為您建立此角色,但在某些情況下,您可能需要手動建立角色。如需詳細資訊,請參閱使用 IAM 政策存取您的 S3 儲存貯體

Amazon S3 傳輸的儲存類別考量

DataSync可以將物件直接傳輸到您在建立 Amazon S3 位置時指定的 Amazon S3 儲存類別。有些儲存類別的行為可能會影響 Amazon S3 儲存成本。如需詳細資訊,請參閱 Simple Storage Service (Amazon S3) 定價

重要

複製到 S3 儲存貯體的新物件會使用您在建立 Amazon S3 位置時指定的儲存類別來存放。DataSync不會變更值區中現有物件的儲存空間類別 (即使該物件已在來源位置修改過)。

Amazon S3 儲存類別 考量事項
S3 Standard 選擇 S3 標準,將經常存取的檔案以冗餘方式存放在多個不同地理位置的可用區域。如果您不指定儲存方案,則這是預設值。
S3 Intelligent-Tiering

選擇 S3 Intelligent-Tiering (S3 智慧型分層),自動將資料移至最經濟實惠的儲存存取層,以最佳化儲存成本。

您需要支付 S3 Intelligent-Tiering 儲存類別中的每個物件支付月費。此 Amazon S3 費用包括監控資料存取模式以及在不同層之間移動物件。

S3 標準 – IA

選擇 S3 標準 — IA,將不常存取的物件以冗餘方式存放在多個不同地理位置的可用區域中。

存放在 S3 標準 — IA 儲存類別中的物件可能會產生覆寫、刪除或擷取的額外費用。考慮這些物件變更的頻率、計劃保留這些物件的時間長度,以及需要存取這些物件的頻率。對物件資料或詮釋資料的變更等同於刪除物件並建立新物件來取代它。這會導致存放在 S3 標準 — IA 儲存類別中的物件產生額外的費用。

小於 128 KB 的物件小於 S3 標準 — IA 儲存類別中的每個物件的最低容量費用。這些物件會存放在 S3 標記憶體類別中。

S3 單區域 – IA

選擇 S3 單區域 — IA,將不常存取的物件存放在單一可用區域中。

存放在 S3 單區域 — IA 儲存類別中的物件可能會產生覆寫、刪除或擷取的額外費用。考慮這些物件變更的頻率、計劃保留這些物件的時間長度,以及需要存取這些物件的頻率。對物件資料或詮釋資料的變更等同於刪除物件並建立新物件來取代它。這會導致存放在 S3 單區域 — IA 儲存類別中的物件產生額外的費用。

小於 128 KB 的物件小於 S3 單區域 — IA 儲存類別中的每個物件的最低容量費用。這些物件會存放在 S3 標記憶體類別中。

S3 Glacier Instant Retrieval

選擇 S3 Glacier 即時擷取以封存很少存取但需要擷取的物件 (以毫秒為單位)。

與具有相同延遲和輸送量效能相同的 S3 標準 — IA 儲存類別中所存放資料,存放在 S3 Glacier Instant Restrate 儲存類別中的資料可節省成本。S3 Glacier Instant Retorage 具有比 S3 標準 — IA 更高的資料存取成本。

存放在 S3 Glacier Instant Retic 中的物件可能會產生覆寫、刪除或擷取的額外費用。考慮這些物件變更的頻率、計劃保留這些物件的時間長度,以及需要存取這些物件的頻率。對物件資料或詮釋資料的變更等同於刪除物件並建立新物件來取代它。這會導致存放在 S3 Glacier Instant Retic 儲存類別中的物件產生額外的費用。

小於 128 KB 的物件會小於 S3 Glacier Instant Restant Restrators 儲存類別中的每個物件的最低容量費用。這些物件會存放在 S3 標記憶體類別中。

S3 Glacier Flexible Retrieval

選擇 S3 Glacier Flexible Retrieble Retrieble Retri

存放在 S3 Glacier Flexible Retorage、刪除或擷取的物件可能會產生額外的費用。考慮這些物件變更的頻率、計劃保留這些物件的時間長度,以及需要存取這些物件的頻率。對物件資料或詮釋資料的變更等同於刪除物件並建立新物件來取代它。這會導致存放在 S3 Glacier Flexible Retelliering 儲存類別的物件產生額外的費用。

小於 40 KB 的物件會小於 S3 Glacier Flexible Rexible Restrators 儲存類別中的每個物件的最低容量費用。這些物件會存放在 S3 標記憶體類別中。

您必須先還原在此儲存類別中封存的物件,才DataSync能讀取它們。如需詳細資訊,請參閱 Amazon S3 使用者指南中的使用存檔物件

使用 S3 Glacier 彈性擷取時,請選擇僅驗證傳輸的資料任務選項,以在傳輸結束時比較資料和中繼資料總和檢查。您無法針對此儲存類別使用 [驗證目的地中的所有資料] 選項,因為它需要從目的地擷取所有現有物件。

S3 Glacier Deep Archive

選擇 S3 Glacier Deep Archive 來存檔您的物件,以便長期保留資料,以及每年存取一次或兩次資料的數位保留。

存放在 S3 Glacier Deep Archive 中的物件可能會產生覆寫、刪除或擷取的額外費用。考慮這些物件變更的頻率、計劃保留這些物件的時間長度,以及需要存取這些物件的頻率。對物件資料或詮釋資料的變更等同於刪除物件並建立新物件來取代它。這會導致存放在 S3 Glacier Deep Archive 儲存類別中的物件產生額外的費用。

小於 40 KB 的物件小於 S3 Glacier Deep Archive 儲存類別中的每個物件的最低容量費用。這些物件會存放在 S3 標記憶體類別中。

您必須先還原在此儲存類別中封存的物件,才DataSync能讀取它們。如需詳細資訊,請參閱 Amazon S3 使用者指南中的使用存檔物件

使用 S3 Glacier Deep Archive 時,請選擇僅驗證傳輸的資料傳輸任務選項,以比較傳輸結束時的資料和中繼資料總和檢查碼。您無法針對此儲存類別使用 [驗證目的地中的所有資料] 選項,因為它需要從目的地擷取所有現有物件。

S3 Outposts

Amazon S3 on Outposts 的儲存方案。

使用時評估 S3 請求成本 DataSync

使用 Amazon S3 位置時,您會產生與提出的 S3 API 請求相關的費用DataSync。本節可協助您瞭解這些請求的DataSync使用方式,以及它們如何影響 Amazon S3 成本

S3 提出的請求 DataSync

下表說明將資料複製到 Amazon S3 位置或從 Amazon S3 位置複製資料時DataSync可發出的 S3 請求。

S3 要求 如何DataSync使用

ListObjectV2

DataSync對每個以正斜線 (/) 結尾的物件發出至少一個LIST要求,以列出以該前置詞開頭的物件。在任務的準備階段調用此請求。

HeadObject

DataSync在任務準備驗證階段期間提出HEAD要求以擷取物件中繼資料。根據您要如何驗證其傳輸的資料完整性,每個物件可能會有多個要HEADDataSync求。

GetObject

DataSync在任務的傳輸階段發出GET請求,從物件讀取資料。大型物件可以有多個GET要求。

PutObject

DataSync在任務的傳輸階段發出PUT請求,以在目的地 S3 儲存貯體中建立物件。由於DataSync使用 Amazon S3 分段上傳功能,因此可能會有多個大型物件的PUT請求。

CopyObject

DataSync只有在物件的中繼資料變更時,才會COPY提出建立物件副本的要求。如果您最初使用其他服務或工具將資料複製到 S3 儲存貯體,而該服務或工具並未透過其中繼資料,就會發生此情況。

成本考量

DataSync每次執行任務時,都會在 S3 儲存貯體上發出 S3 請求。在某些情況下,這可能會導致費用累加。例如:

  • 您經常會將物件轉換為 S3 儲存貯體或從 S3 儲存貯體傳送。

  • 您可能沒有傳輸太多數據,但是 S3 存儲桶中有很多對象。在此案例中,您仍然可以看到高額費用,DataSync因為對每個儲存貯體的物件發出 S3 請求。

  • 您正在 S3 存儲桶之間進行轉移,DataSync因此在源和目的地上發出 S3 請求。

若要協助將相關的 S3 請求成本降至最低DataSync,請考慮下列事項:

我使用的是哪些 S3 儲存類別?

S3 請求費用可能會根據物件所使用的 Amazon S3 儲存類別而有所不同,尤其是存放物件的類別 (例如 S3 Glacier Instant Restrate、S3 Glacier Flexible Restrve 和 S3 Glacier Deep Archive)。

以下是儲存類別在使用時會影響 S3 請求費用的一些案例DataSync:

  • 每次執行工作時,都會提DataSync出擷取物件中繼資料的HEAD要求。即使您沒有移動任何物件,這些要求也會產生費用。這些要求對帳單的影響程度取決於您的物件所使用的儲存空間類別以及DataSync掃描的物件數目。

  • 如果您將物件移至 S3 Glacier 即時擷取儲存類別 (直接或透過儲存貯體生命週期組態),對此類別中物件的請求會比其他儲存類別中的物件更昂貴。

  • 如果您將DataSync任務設定為確認來源和目的地位置是否完全同步,則所有儲存類別中的每個物件都會有GET請求 (S3 Glacier 彈性擷取和 S3 Glacier Deep Archive 除外)。

  • 除了要GET求之外,您支付 S3 標準 — IA、S3 單區域 — IA 或 S3 Glacier Instant Restant RestrIVE 儲存類別中的物件的擷取費用。

如需詳細資訊,請參閱 Simple Storage Service (Amazon S3) 定價

我需要多久傳輸一次資料?

如果您需要定期移動資料,請考慮排程執行的工作數量不會超過您需要的數量。

您也可以考慮限制轉移的範圍。例如,您可以設定專注DataSync於特定首碼中的物件,或篩選要傳輸的資料。這些選項有助於減少每次執行DataSync任務時發出的 S3 請求數量。

Amazon S3 Transfer 的其他考量

搭配使用 Amazon S3 時DataSync,請記住以下事項:

  • 對物件資料或中繼資料的變更等同於刪除和取代物件。這些變更會在下列情況下產生額外費用:

    • 使用物件版本管理時 — 對物件資料或中繼資料的變更會建立物件的新版本。

    • 使用可能產生覆寫、刪除或擷取物件的額外費用的儲存區類別時,變更物件資料或中繼資料會產生此類費用。如需詳細資訊,請參閱Amazon S3 傳輸的儲存類別考量

  • 在 Amazon S3 中使用物件版本控制時,執行DataSync任務一次可能會建立多個版本的 Amazon S3 物件。

  • DataSync如果某個對象的名稱中包含非標準字符,那么該對象可能不會傳輸。如需詳細資訊,請參閱 Amazon S3 使用者指南中的物件金鑰命名準則

  • 為了將 Amazon S3 儲存成本降至最低,我們建議您使用生命週期組態來停止不完整的多部分上傳。如需詳細資訊,請參閱 Amazon S3 使用者指南

  • 在一開始將資料從 S3 儲存貯體傳輸到檔案系統 (例如 NFS 或 Amazon FSx) 之後,相同DataSync任務的後續執行將不會包含已修改但在第一次傳輸期間大小相同的物件。

建立您的 Amazon S3 傳輸位置

若要建立位置,您需要現有的 S3 儲存貯體。如果您沒有,請參閱 Amazon S3 使用者指南中的開始使用 Amazon S3

提示

如果您的 S3 儲存貯體具有不同儲存類別的物件,請了解如DataSync何使用這些儲存類別,以及它如何影響您的AWS帳單

建立 Amazon S3 位置
  1. 請在以下位置開啟AWS DataSync主控台。 https://console.aws.amazon.com/datasync/

  2. 在左側導覽窗格中,展開 [資料傳輸],然後選擇 [位] 和 [建立位置]。

  3. 對於位置類型,請選擇 Amazon S3

  4. S3 儲存貯體,選擇要使用做為位置的儲存貯體。(稍後建立DataSync工作時,您可以指定此位置是來源位置還是目的地位置。)

    如果您的 S3 儲存貯體位於AWS Outposts資源上,您必須指定 Amazon S3 存取點。如需詳細資訊,請參閱 Amazon S3 使用者指南中的使用 Amazon S3 存取點來管理資料存取。

  5. 對於 S3 儲存類別,請選擇您希望物件使用的儲存類別。

    如需詳細資訊,請參閱Amazon S3 傳輸的儲存類別考量。DataSync預設情況下,使用 Amazon S3 on Outposts 儲存類別。

  6. (Amazon S3 僅在 Outposts post) 對於代理DataSync程式,請在 Outpost 上指定代理程式的 Amazon Resource Name (ARN)。

    如需詳細資訊,請參閱部署您的代理程式 AWS Outposts

  7. 在資料夾中,在 S3 儲存貯體中輸入DataSync讀取或寫入的 S3 儲存貯體 (視儲存貯體是來源還是目的地位置而定)。

    注意

    前置字元不能以斜線 (例如,/photos) 開頭,也不能包含連續的斜線,例如photos//2006/January

  8. 針對 IAM role (IAM 角色),執行以下其中一項作業:

    • 選擇自動產生,DataSync以自動建立具有存取 S3 儲存貯體所需許可的 IAM 角色。

      如果DataSync先前為此 S3 儲存貯體建立 IAM 角色,則依預設會選擇該角色。

    • 選擇您建立的自訂 IAM 角色。如需詳細資訊,請參閱手動建立 IAM 角色以存取您的 Amazon S3 儲存貯體

  9. (選擇性) 選擇新增標籤來標記您的 Amazon S3 位置。

    標籤是協助您管理、篩選及搜尋位置的索引鍵/值組。

  10. 選擇 [建立地點]。

使用 IAM 政策存取您的 S3 儲存貯體

根據 S3 儲存貯體的安全設定,您可能需要建立允許DataSync存取儲存貯體的自訂 IAM 政策。

手動建立 IAM 角色以存取您的 Amazon S3 儲存貯體

雖然DataSync可以使用所需的 S3 儲存貯體許可為您建立 IAM 角色,但您也可以自行設定角色。

手動建立 IAM 角色以存取您的 Amazon S3 儲存貯體
  1. 前往網址 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

  2. 在左側導覽窗格的 [存取管理] 下,選擇 [角色],然後選擇 [建立角色]。

  3. 在 [選取信任的實體] 頁面上,針對 [信任的實體類型] 選擇AWS 服務

  4. 對於使用案例,請DataSync在下拉式清單中選擇,然後選取 DataSync-S3 位置。選擇 下一步

  5. 在 [新增權限] 頁面上,FullAccess針對中的 S3 儲存貯體選擇 Amazon S3。AWS 區域選擇 下一步

    您可以手動建立比 Amazon FullAccess S3 更嚴格的政策。範例如下:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads" ], "Effect": "Allow", "Resource": "YourS3BucketArn" }, { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:GetObjectTagging", "s3:PutObjectTagging", "s3:PutObject" ], "Effect": "Allow", "Resource": "YourS3BucketArn/*" } ] }

    對於 Amazon S3 on Outposts,請使用下列政策:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3-outposts:ListBucket", "s3-outposts:ListBucketMultipartUploads" ], "Effect": "Allow", "Resource": [ "s3OutpostsBucketArn", "s3OutpostsAccessPointArn" ], "Condition": { "StringLike": { "s3-outposts:DataAccessPointArn": "s3OutpostsAccessPointArn" } } }, { "Action": [ "s3-outposts:AbortMultipartUpload", "s3-outposts:DeleteObject", "s3-outposts:GetObject", "s3-outposts:ListMultipartUploadParts", "s3-outposts:GetObjectTagging", "s3-outposts:PutObjectTagging" ], "Effect": "Allow", "Resource": [ "s3OutpostsBucketArn/*", "s3OutpostsAccessPointArn" ], "Condition": { "StringLike": { "s3-outposts:DataAccessPointArn": "s3OutpostsAccessPointArn" } } }, { "Effect": "Allow", "Action": [ "s3-outposts:GetAccessPoint" ], "Resource": "s3OutpostsAccessPointArn" } ] }
  6. 為您的角色命名,然後選擇 [建立角色]。

  7. 請在以下位置開啟AWS DataSync主控台。 https://console.aws.amazon.com/datasync/

  8. 選取 IAM 角色設定旁邊的重新整理按鈕,然後選擇剛建立的角色。

防止跨服務混淆代理人問題

為了避免跨服務混淆的副問題,我們建議您在 IAM 角色的信任政策中使用aws:SourceArnaws:SourceAccount全域條件內容金鑰。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "datasync.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "StringLike": { "aws:SourceArn": "arn:aws:datasync:us-east-2:123456789012:*" } } } ] }

使用 Server 端加密存取 S3 儲存貯體

DataSync可以將資料複製到使用伺服器端加密的 S3 儲存貯體或從其複製 值區使用的加密金鑰類型可決定您是否需要允許DataSync存取值區的自訂政策。

DataSync搭配使用伺服器端加密的 S3 儲存貯體時,請記住下列事項:

  • 如果您的 S3 儲存貯體使用AWS受管金鑰加密,則預設情況下DataSync可以存取儲存貯體的物件 (如果所有資源都在相同的情況下) AWS 帳戶。

  • 如果您的 S3 儲存貯體使用客戶管理 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 加密,則金鑰的政策必須包含DataSync用於存取儲存貯體的 IAM 角色。

  • 如果您的 S3 儲存貯體使用客戶管理的 SSE-KMS 金鑰加密,並使用其他儲存貯體,則DataSync需要存取另AWS 帳戶一個儲存貯體中的存取權限。AWS 帳戶您可以通過執行以下操作來進行設置:

  • 如果 S3 儲存貯體使用客戶提供的加密金鑰 (SSE-C) 進行加密,則DataSync無法存取此儲存貯體。

下列範例是客戶管理的 SSE-KMS 金鑰的金鑰原則。此政策與使用伺服器端加密的 S3 儲存貯體相關聯。下列為您的設定所特有的值:

  • 您的帳戶 — 您的. AWS 帳戶

  • your-admin-role— 可以管理金鑰的 IAM 角色。

  • your-datasync-role— 存取儲存貯體時DataSync允許使用金鑰的 IAM 角色。

{ "Id": "key-consolepolicy-3", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::your-account:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::your-account:role/your-admin-role" }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::your-account:role/your-datasync-role" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::your-account:role/your-datasync-role" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }

在不同的 S3 儲存貯體之間傳輸或傳出 AWS 帳戶

使用DataSync,您可以在不同的 S3 儲存貯體之間移動資料AWS 帳戶。如需詳細資訊,請參閱下列自學課程: