透過 Google 代管的私人網路轉移

將資料從 Amazon S3 移轉至 Cloud Storage 時,資料通常會經過公用網際網路對等互連連結,AWS 會收取標準網際網路資料輸出費用。Storage 移轉服務提供 Google 管理的私人網路選項,可從 Amazon S3 轉移資料,讓資料透過 Google 自動佈建的安全私人路由傳輸。

使用 Google 管理的私有網路可減少 AWS 網際網路輸出成本,並免除設定及維護客戶管理實體互連的需要,簡化網路安全。

主要優點

Google 代管的私人網路選項可為 Amazon S3 移轉作業帶來下列營運和財務效益:

  • 降低網際網路輸出成本:透過 Google 代管的私人網路從 Amazon S3 轉出資料,可避開標準 AWS 網際網路輸出費率。您不必支付 AWS S3 網際網路輸出費用,而是向 Google Cloud 支付每 GiB 資料處理費,費用可預測。詳情請參閱定價頁面。標準 AWS API 要求費用 (例如 Amazon S3 LISTGETHEAD 作業) 仍會根據 AWS 定價表收取。

  • 避免公開網際網路曝光:資料會直接透過 AWS 和 Google Cloud 之間由 Google 管理的私人互連連線傳輸。由於封包不會經過公開網際網路的路由表,因此可避免公開攔截的風險,同時簡化防火牆和零信任合規程序。

  • 免除基礎架構維護作業:與客戶管理的私人網路不同,您不需要佈建、設定實體互連 (例如 Cloud Interconnect 或 AWS Direct Connect)、VPN 閘道或自訂 DNS 路由,也不必支付相關的週期性連接埠費用。Google 會全面管理端對端私有網路堆疊。

  • 即時部署,零前置時間:設定專屬互連電路可能需要數週時間。透過 Google 代管的私人網路,您可以立即開始透過私人路由傳輸資料,不必安裝或管理任何傳輸代理程式。

頻寬和效能注意事項

所有專案中利用 Google 管理的私有網路執行的 Storage 移轉服務工作,都會共用集區網路容量。全球使用率達到高峰時,傳輸速度可能會受到節流或延遲時間增加。

如果工作負載主要由大型物件組成,高集區使用率對這類工作負載的影響,會大於主要由小型物件組成的工作負載。如果工作負載需要專屬頻寬,且不希望與共用集區爭用頻寬,請考慮設定客戶管理的私人網路

支援的 AWS 區域

Google 代管的私人網路選項適用於從下列 Amazon S3 區域進行的無代理程式轉移:

ap-east-1
ap-northeast-1
ap-northeast-2
ap-northeast-3
ap-south-1
ap-south-2
ap-southeast-1
ca-central-1
ca-west-1
eu-central-1
eu-central-2
eu-north-1
eu-south-1
eu-south-2
eu-west-1
eu-west-2
eu-west-3
us-east-1
us-east-2
us-west-1
us-west-2
 

事前準備

建立轉移作業前,請務必設定 IAM 和來源權限。

設定 IAM 權限

按照「免代理程式轉移權限」一文中的操作說明,授予必要的 Google Cloud 權限。

設定 S3 值區的存取權

請按照「設定來源存取權:Amazon S3」一文中的操作說明,設定 Amazon S3 中資料的存取權。

建立 Google 代管的私人網路移轉作業

建立新的移轉工作時,或使用 Google Cloud 控制台或 REST API 更新現有的 Amazon S3 移轉規格時,您可以啟用 Google 管理的私人網路選項。

控制台

在建立轉移作業的「選擇設定」步驟中,勾選核取方塊即可啟用 Google 代管的私人網路選項。

如要使用 Google 代管的私人網路建立新工作,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Storage 移轉服務」頁面。

    前往 Storage 移轉服務

  2. 按一下「建立移轉工作」。系統隨即會顯示「建立轉移工作」頁面。

  3. 在「來源類型」下方,選取「Amazon S3」

  4. 在「目的地類型」中選取「Google Cloud Storage」

  5. 選取「排程模式」批次轉移:可一次性或排程執行。事件驅動的轉移作業會持續監控來源,並在資料新增或修改時轉移資料。

    如要設定以事件為依據的移轉作業,請按照「以事件為依據的移轉作業」中的操作說明進行。

  6. 點選「下一步」

  7. 在「Bucket or folder name」(值區或資料夾名稱) 欄位中,輸入來源值區名稱。

    值區名稱即是在 AWS 管理主控台中顯示的名稱。

  8. 選取 Amazon Web Services (AWS) 驗證方法。詳情請參閱「設定來源存取權:Amazon S3」。

    • 密鑰資源:選取這個選項,即可使用儲存在 Secret Manager 中的 Amazon 憑證。從清單中選取密鑰,或手動輸入密鑰,格式為 projects/PROJECT_NUMBER/secrets/SECRET_NAME

    • 存取金鑰:在「Access key ID」(存取金鑰 ID) 欄位中輸入存取金鑰,並在「Secret access key」(私密存取金鑰) 欄位中輸入與存取金鑰相關聯的密碼。

    • 用於身分識別聯盟的 AWS 身分與存取權管理角色:在「AWS IAM role ARN」(AWS 身分與存取權管理角色 ARN) 欄位中輸入 ARN,語法如下:

      • 標準 AWS 區域:

        arn:aws:iam::AWS_ACCOUNT:role/AWS_ROLE_NAME
      • AWS GovCloud 區域:

        arn:aws-us-gov:iam::AWS_ACCOUNT:role/AWS_ROLE_NAME

      更改下列內容:

      • AWS_ACCOUNT:不含連字號的 AWS 帳戶 ID。
      • AWS_ROLE_NAME:AWS 角色名稱。如果貴機構使用路徑來整理角色,請在角色名稱中加入路徑。例如:developers/transfer_user

      如要進一步瞭解 ARN,請參閱「IAM ARN」。

  9. 如果是事件驅動的移轉,請輸入 Amazon SQS 佇列 ARN,格式如下:

    • 標準 AWS 區域:

      arn:aws:sqs:us-east-1:1234567890:event-queue
    • AWS GovCloud 區域:

      arn:aws-us-gov:sqs:us-gov-east-1:1234567890:event-queue
  10. 視需要選擇依前置字串篩選物件或依上次修改日期篩選物件。如果您指定資料夾做為來源位置,前置字元篩選條件會與該資料夾相關。舉例來說,如果來源是 my-test-bucket/path/,則 file 的包含篩選器會納入所有以 my-test-bucket/path/file 開頭的檔案。

  11. 點選「下一步」

  12. 在「Bucket or folder」(值區或資料夾) 欄位中,輸入目的地值區和 (選用) 資料夾名稱,或按一下「Browse」(瀏覽),從目前專案的現有值區清單中選取值區。如要建立新值區,請按一下 值區圖示「建立新值區」

  13. 點選「下一步」

  14. 選擇時段設定選項:

    注意:儲存空間移轉服務會以您的時區顯示移轉工作的時間表,但儲存時會採用世界標準時間 (UTC)。如果您所在位置會受到日光節約時間 (DST) 影響,則在 DST 開始或結束時,您的移轉工作時間表可能也會隨之改變。

    1. 在「Run once」下拉式選單中,選取下列其中一個選項:

      • 執行一次:執行一次移轉作業,開始時間由您選取。
      • 每天執行:每天執行移轉作業,開始時間為您選取的時間。

        您可以視需要輸入結束日期,或將結束日期留白,讓轉移作業持續進行。

      • 每週執行:每週執行一次轉移作業,開始時間由您選取。
      • 按照自訂頻率執行:按照您選取的頻率執行移轉作業。您可以選擇以小時為間隔,定期重複轉移作業。

        您可以視需要輸入結束日期,或將結束日期留白,讓轉移作業持續進行。

      • 隨選執行:建立這項轉移工作時,不會觸發執行作業。您必須手動啟動這項工作。
    2. 在「Starting now」下拉式清單中,選取下列其中一個選項:

      • 立即開始:按一下「建立」後,系統就會開始轉移。
      • Starting on (開始時間):在您選取的日期和時間開始轉移。按一下「日曆」,顯示日曆並選取開始日期。
  15. 點選「下一步」

  16. 選擇轉移工作的設定。

    1. 在「Description」(說明) 欄位中,輸入轉移作業的說明。最佳做法是輸入有意義且獨一無二的說明,方便您區分工作。

    2. (選用) 提供資訊清單,指定要轉移的確切物件。

    3. 在「中繼資料選項」下方,選取所需的儲存空間級別和建立時間行為。詳情請參閱中繼資料保留

    4. 在「何時要覆寫」下方,選取下列其中一個選項:

      • 永不:如果來源檔案與目的地檔案名稱相同,則不會覆寫目的地檔案。系統會略過來源檔案。
      • 如果不同:如果名稱相同的來源檔案具有不同的 ETag 或總和檢查碼值,則覆寫目的地檔案。
      • 一律覆寫:來源檔案與目的地檔案的名稱相同時,一律覆寫目的地檔案 (即便檔案內容完全相同)。
    5. 在「何時刪除」下方,選取下列其中一個選項:

      • 永不:絕不刪除來源或目的地的檔案。
      • 轉移檔案後,請從來源刪除檔案:將檔案轉移至目的地後,從來源刪除檔案。如果來源檔案未轉移 (例如目的地中已有該檔案),來源檔案就不會遭到刪除。

        重要事項:如果沒有本機備份,這個選項是無法復原的操作。

      • 如果檔案未同時存在於來源,則將檔案從目的地中刪除:如果目的地 Cloud Storage bucket 中的檔案未同時存在於來源,則將檔案從 Cloud Storage bucket 中刪除。

        這個選項可確保目的地 Cloud Storage bucket 與來源完全相符。

    6. 選擇網路轉送選項

      • 選取「使用代管的私人網路」
    7. 在「記錄選項」下方,選取「在 Cloud Logging 中啟用記錄功能」,即可為每個移轉的檔案產生詳細的動作記錄。須支付 Cloud Logging 費用。 詳情請參閱「記錄轉移動作」。

    8. (選用) 選取「透過 Cloud Pub/Sub 通知,取得轉移作業的最新狀態」,然後選取 Pub/Sub 主題,並選擇要觸發通知的事件。詳情請參閱「Pub/Sub 通知」。

    9. 在「選擇服務帳戶類型」下方,選取要使用的身分:

      • Storage 移轉服務代理:系統會自動將來源和目的地 bucket 的存取權授予預設的 Google 代管服務代理。
      • 使用者管理的服務代理程式:使用您建立的自訂服務帳戶。選取這個選項之前,請先確認服務帳戶已取得來源 bucket、目的地 bucket 和 Pub/Sub 的存取權。詳情請參閱「使用使用者自行管理的服務代理」。
  17. 按一下「建立」,即可建立轉移工作。

gcloud CLI

gcloud CLI 不支援透過 Google 代管的私人網路設定移轉作業。使用 Google Cloud 控制台或 REST API 啟用這個選項。

用戶端程式庫

Storage 移轉服務用戶端程式庫不支援透過 Google 代管的私人網路設定移轉作業。使用 Google Cloud 控制台或 REST API 啟用這個選項。

REST API

如要使用 REST API 設定轉移作業,請在呼叫 transferJobs.createtransferJobs.patch 時,將 JSON 要求酬載中的布林值欄位 transferSpec.awsS3DataSource.managedPrivateNetwork 設為 true

HTTP 要求

POST https://storagetransfer.googleapis.com/v1/transferJobs

要求主體

{
  "description": "S3 to Cloud Storage over Google-managed private network",
  "status": "ENABLED",
  "projectId": "PROJECT_ID",
  "transferSpec": {
    "awsS3DataSource": {
      "bucketName": "AWS_SOURCE_NAME",
      "managedPrivateNetwork": true,
      "awsAccessKey": {
        "accessKeyId": "AWS_ACCESS_KEY_ID",
        "secretAccessKey": "AWS_SECRET_ACCESS_KEY"
      }
    },
    "gcsDataSink": {
      "bucketName": "GCS_SINK_NAME"
    },
    "transferOptions": {
      "overwriteWhen": "DIFFERENT",
      "deleteObjectsFromSourceAfterTransfer": false
    }
  }
}

這個範例會使用 AWS 存取憑證進行驗證。如要瞭解如何在 Secret Manager 中使用聯合身分或憑證,請參閱「設定 Amazon S3 的存取權」。

監控及驗證私人網路路由

開始轉移工作後,請確認資料是透過 Google 代管的私人網路輸出:

  1. Cloud Logging:啟用 transfer-logs (--log-actions=COPY,DELETE,FAILED) 後,即可檢查傳輸作業的結構化記錄。COPY 動作記錄中的連線中繼資料會確認已透過私人網路路徑成功複製。

  2. 帳單驗證:查看 AWS 和 Google Cloud 帳單資訊主頁。在 AWS 月結單中,您會看到轉移物件的公開網際網路資料傳輸輸出 (DataTransfer-Out-Bytes) 費用為零。而是會顯示在 Google Cloud 月結單的 Storage 移轉服務下方。

其他網路轉送選項

如果 Google 管理的私人網路不符合工作負載需求,Storage 移轉服務支援 Amazon S3 的其他幾種網路路徑選項:

  • 公用網際網路路由:透過 Amazon S3 和 Google Cloud 之間的標準公用網際網路對等互連連結,傳輸資料。所有 API 指令、驗證標頭和物件資料串流,在傳輸時都會使用 HTTPS 和傳輸層安全標準 (TLS 1.3) 進行端對端加密。適用標準 AWS 網際網路資料輸出費率。詳情請參閱「從 Amazon S3 轉移」。

  • 客戶管理的私人網路:資料會透過私人 IP 位址,在您預先設定的混合式連線基礎架構 (例如 Cloud Interconnect、Cloud VPN 或 AWS Direct Connect) 中傳輸。這個選項可讓您完全掌控架構,並享有專屬且可預測的網路頻寬。詳情請參閱「 透過客戶管理的私人網路執行移轉作業」。

  • Amazon CloudFront CDN 路由:透過 S3 儲存空間前方的 Amazon CloudFront 分配項目擷取資料。視 AWS CloudFront 定價層級和資料量而定,相較於直接從 S3 下載公開資料,這項功能可降低網際網路輸出費用。詳情請參閱「透過 CloudFront 從 S3 轉移」。