步驟 2:建立位置 - AWS DataSync

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

步驟 2:建立位置

每個 DataSync 任務都是由一對在其之間傳輸資料的位置組成。「來源位置」會定義您要從中讀取資料的儲存系統或服務。「目的地位置」會定義您要寫入資料的儲存系統或服務。

如需 DataSync 支援的來源和目的地端點的清單,請參閱使用位置

建立 NFS 位置

使用 AWS CLI,使用下列程序來建立 NFS 位置。NFS 位置會定義 NFS 伺服器上可讀取或寫入的檔案系統。您也可以使用 AWS Management Console 建立 NFS 位置。如需詳細資訊,請參閱 建立 NFS 的位置

注意

如果您正在使用 NFS 位置在AWSSnowcone 裝置,請參閱NFS 伺服器AWS Snowcone和Snowball Edge,取得將資料傳入或從該裝置傳出資料的詳細資訊。

使用 CLI 建立 NFS 位置

  • 利用下列的命令來建立 NFS 來源位置。

    $ aws datasync create-location-nfs \ --server-hostname server-address \ --on-prem-config AgentArns=agent-arns \ --subdirectory nfs-export-path

    如為上述命令,則下列適用:

    • 您提供的路徑--subdirectory參數應該是 NFS 伺服器匯出的路徑,或是子目錄。網路中的其他 NFS 用戶端應該可以掛載此路徑。若要查看 NFS 伺服器匯出的所有路徑,請從可以存取您伺服器的 NFS 用戶端,執行命令 showmount -e nfs-server-address。您可以指定出現在結果中的任何目錄,以及該目錄的任何子目錄。

    • DataSync 需具有讀取所有資料的許可,才能傳輸所指定資料夾中的全部資料。若要授予 DataSync 權限,您可以執行兩種動作中的其中一項作業。您可以使用 no_root_squash 設定 NFS 匯出。或者,如果是您要 DataSync 存取所有檔案,您可以確保該權限允許讀取所有使用者的存取。如此可讓代理程式讀取檔案。代理程式若要存取目錄,您還必須提供所有使用者執行存取權限。

    • 請確定不需經過 Kerberos 驗證即可使用 NFS 匯出功能。

    DataSync 會自動選擇用來從 NFS 位置讀取資料的 NFS 版本。若要指定 NFS 版本,請在 NfsMountOptions API 作業中使用其他 Version 參數。

此命令會傳回 NFS 位置的 Amazon Resource Name (ARN),類似下列 ARN 所示。

{ "LocationArn": "arn:aws:datasync:us-east-1:111222333444:location/loc-0f01451b140b2af49" }

若要確保目錄可以掛載,您可以連線到和代理程式具有相同網路組態的任何電腦,並執行下列命令。

mount -t nfs -o nfsvers=<nfs-server-version <nfs-server-address:<nfs-export-path <test-folder

下面是命令的範例。

mount -t nfs -o nfsvers=3 198.51.100.123:/path_for_sync_to_read_from /temp_folder_to_test_mount_on_local_machine

建立 SMB 位置

使用 AWS CLI,使用下列程序來建立 SMB 位置。SMB 位置會定義 SMB 伺服器上可讀取或寫入的檔案系統。您也可以使用主控台建立 SMB 位置。如需詳細資訊,請參閱 建立 SMB 的位置

使用 CLI 建立 SMB 位置

  • 利用下列的命令來建立 SMB 來源位置。

    aws datasync create-location-smb \ --server-hostname smb-server-address \ --user user-name \ --domain domain-of-the-smb-server \ --password user's-password AgentArns=agent-arns \ --subdirectory smb-export-path

    您提供的路徑--subdirectory參數應該是 SMB 伺服器匯出的路徑,或是子目錄。使用正斜線指定路徑,例如:/path/to/folder。網路中的其他 SMB 用戶端應該可以存取此路徑。

    DataSync 會自動選擇用來從 SMB 位置讀取資料的 SMB 版本。若要指定 SMB 版本,請在 SmbMountOptions API 作業中使用其他 Version 參數。

此命令會傳回 SMB 位置的 Amazon Resource Name (ARN),類似下列 ARN 所示。

{ "LocationArn": "arn:aws:datasync:us-east-1:111222333444:location/loc-0f01451b140b2af49" }

建立 HDFS 位置

請使用以下程序來建立 Hadoop 分散式檔案系統 (HDFS) 位置AWS CLI。HDFS 位置定義 Hadoop 叢集上可供讀取或寫入的檔案系統。您也可以使用建立 HDFS 位置AWS Management Console。如需詳細資訊,請參閱 創建 HDFS 的位置

使用建立 HDFS 位置AWS CLI

  • 使用以下命令來建立 HDFS 位置。在下列範例中,將每個user input placeholder提供您自己的資訊。

    aws datasync create-location-hdfs --name-nodes [{"Hostname":"host1", "Port": 8020}] \ --authentication-type "SIMPLE|KERBEROS" \ --agent-arns [arn:aws:datasync:us-east-1:123456789012:agent/agent-01234567890example] \ --subdirectory "/path/to/my/data"

    下列是必要參數create-location-hdfs命令

    • name-nodes— 指定 Hadoop 叢集中 NameNode 的主機名稱或 IP 位址,以及 NameNode 正在偵聽的 TCP 連接埠。

    • authentication-type— 連線至 Hadoop 叢集時所要使用的身份驗證類型。可指定為 SIMPLEKERBEROS

    • agent-arns— 用於 HDFS 位置之代理程式的 Amazon Resource Name (ARN)。

    如果您使用SIMPLE驗證,請使用--simple-user參數來指定使用者的使用者名稱。如果您使用KERBEROS驗證,請使用--kerberos-principal--kerberos-keytab,以及--kerberos-krb5-conf參數。

    前面的命令會傳回位置 ARN,與下列類似:

    { "arn:aws:datasync:us-east-1:123456789012:location/loc-01234567890example" }

建立物件儲存位置

使用,使用下列程序來建立自我管理物件儲存位置。AWS CLI。物件儲存位置是 Amazon S3 API 相容物件儲存伺服器的終端節點。物件儲存位置會定義讀取或寫入的物件儲存伺服器。您也可以使用建立物件儲存位置AWS Management Console。

如需物件儲存位置 (包括相容性需求) 的詳細資訊,請參閱建立物件儲存位置

使用 CLI 建立自我管理的物件儲存位置

  • 請使用以下命令來建立自我管理物件儲存位置。

    aws datasync create-location-object-storage \ --server-hostname object-storage-server.example.com \ --bucket-name myBucket \ --agent-arns arn:aws:datasync:us-east-1:123456789012:agent/agent-01234567890deadfb

    下列是必要參數create-location-object-storage命令。

    • server-hostname:自我管理物件儲存伺服器的 DNS 名稱或 IP 地址。

    • bucket-name:識別位置上自我管理物件儲存體伺服器上儲存貯體的名稱。

    • agent-arns:用於自我管理物件儲存位置之代理程式的 ARN。

    如果您的物件儲存需要使用者名稱和密碼來進行驗證,請提供--access-key--secret-key參數來分別提供使用者名稱和密碼。

上述命令會傳回類似以下的位置 ARN。

{ "arn:aws:datasync:us-east-1:123456789012:location/loc-01234567890deadfb" }

創建一個亞馬遜 EFS 位置

使用下列程序來建立 Amazon EFS 位置AWS CLI。EFS 位置是 Amazon EFS 檔案系統的端點,可定義讀取或寫入的 EFS 檔案系統。您也可以使用主控台建立 EFS 位置。如需詳細資訊,請參閱 為亞馬遜 EFS 創建一個位置

使用 CLI 建立 Amazon EFS 位置

  1. 若您沒有 Amazon EFS 檔案系統,請建立一個。如需如何建立 EFS 檔案系統的資訊,請參閱Amazon Elastic File System 入門中的Amazon Elastic File System 使用者指南

  2. 找出子網路,條件是具有該檔案系統至少以上的一個掛載目標。您可以使用 describe-mount-targets 命令,檢視與 EFS 檔案系統相關聯的所有掛載目標和子網路。

    aws efs describe-mount-targets \ --region aws-region \ --file-system-id file-system-id
    注意

    所以此AWS 區域是您的目標 S3 儲存貯體或 EFS 檔案系統所在的位置。

    此命令會傳回類似如下所示的目標相關資訊。

    { "MountTargets": [ { "OwnerId": "111222333444", "MountTargetId": "fsmt-22334a10", "FileSystemId": "fs-123456ab", "SubnetId": "subnet-f12a0e34", "LifeCycleState": "available", "IpAddress": "11.222.0.123", "NetworkInterfaceId": "eni-1234a044" } ] }
  3. 指定可以用來存取掛載目標的 Amazon EC2 安全群組。您可以執行下列的命令,來找出掛載目標的安全群組。

    aws efs describe-mount-target-security-groups \ --region aws-region \ --mount-target-id mount-target-id

    您所提供的安全群組,必須能夠與指定子網路中掛載目標上的安全群組進行通訊。

    安全群組 M (掛載目標的安全群組) 與安全群組 S (您所提供讓 DataSync 在此階段使用的安全群組) 之間的關係為:

    • 安全群組 M (您與掛載目標建立關聯的安全群組) 必須允許從安全群組 S 使用 TCP 通訊協定,透過 NFS 連接埠 (2049) 進行的傳入存取。

      您可以根據 IP 位址 (CIDR 範圍) 或其安全群組來允許傳入連線。

    • 您提供給 DataSync 以存取 Amazon EFS 的安全群組 S,應設有一個規則,以允許對外連線至 NFS 連接埠。這可在檔案系統的掛載目標之一啟用輸出連線。

      您可以根據 IP 地址 (CIDR 範圍) 或安全群組來允許傳出連線。

      如需安全群組與掛載目標的資訊,請參閱Amazon EC2 執行個體和掛載目標的安全群組中的Amazon Elastic File System 使用者指南。

  4. 建立 EFS 位置。若要建立 EFS 位置,您需要 Amazon EC2 子網路、EC2 安全群組和 EFS 檔案系統的 ARN。由於 DataSync API 接受完整的 ARN,因此您可以建構這些 ARN。如需如何為不同的服務建構 ARN 的資訊,請參閱Amazon Resource Name (ARN)中的AWS一般參考

    請使用以下命令來建立 EFS 位置。

    aws datasync create-location-efs \ --subdirectory /path/to/your/subdirectory \ --efs-filesystem-arn 'arn:aws:elasticfilesystem:region:account-id:file-system/filesystem-id' \ --ec2-config SecurityGroupArns='arn:aws:ec2:region:account-id:security-group/security-group-id',SubnetArn='arn:aws:ec2:region:account-id:subnet/subnet-id'
注意

所以此AWS 區域是您的目標 S3 儲存貯體或 EFS 檔案系統所在的位置。

此命令會傳回類似如下的位置 ARN。

{ "LocationArn": "arn:aws:datasync:us-west-2:111222333444:location/loc-07db7abfc326c50fb" }

建立 FSx for Windows File Server 位置

使用,使用下列程序來建立 Windows 檔案伺服器位置的 FSX。AWS CLI。Amazon FSX 位置是適用於 FSx for Windows File Server 端點。此端點定義您可以讀取或寫入的 Amazon FSX 檔案共用。

您也可以使用主控台建立 Amazon FSx 位置。如需詳細資訊,請參閱 建立 FSx for Windows File Server 的位置

建立 FSx for Windows File Server 位置AWS CLI

  • 請使用以下命令來建立 Amazon FSx 位置。

    aws datasync create-location-fsx-windows \ --fsx-filesystem-arn arn:aws:fsx:region:account-id:file-system/filesystem-id \ --security-group-arns arn:aws:ec2:region:account-id:security-group/group-id \ --user smb-user --password password

    create-location-fsx-windows 命令中,指定下列項目:

    • fsx-filesystem-arn— 您要讀取或寫入之檔案系統的完整 Amazon Resource Name (ARN)。

      DataSync API 接受完整的 ARN,因此您可以建構這些 ARN。如需如何為不同的服務建構 ARN 的資訊,請參閱Amazon Resource Name (ARN)中的AWS一般參考

    • security-group-arns— Amazon EC2 安全群組的 ARN,可套用至檔案系統之首選子網路彈性網路界面。如需詳細資訊,請參閱「」建立 Amazon VPC,具有專用執行個體租用。中的Amazon EC2 使用者指南。

    • 所以此AWS 區域— 您指定的區域是目標 Amazon FSX 檔案系統的所在位置。

上述命令會傳回類似如下的位置 ARN。

{ "LocationArn": "arn:aws:datasync:us-west-2:111222333444:location/loc-07db7abfc326c50fb" }

建立 Amazon FSx for Lustre 位置

使用,使用下列程序來建立 Lustre 位置的 Amazon FSX。AWS CLI。Lustre 位置的 FSX 是您可以讀取或寫入的 Lustre 檔案系統 FSX 的端點。

您也可以使用主控台建立 FSx for Lustre 位置。如需詳細資訊,請參閱 為盧斯特的 FSX 建立位置

建立 FSx for Lustre 位置AWS CLI

  • 使用下列的命令來建立 FSx for Lustre 位置。

    aws datasync create-location-fsx-lustre \ --fsx-filesystem-arn arn:aws:fsx:region:account-id:file-system:filesystem-id \ --security-group-arns arn:aws:ec2:region:account-id:security-group/group-id

    下列是必要參數create-location-fsx-lustre命令。

    • fsx-filesystem-arn— 您要讀取或寫入之檔案系統的完整 Amazon Resource Name (ARN)。

    • security-group-arns— 適用於檔案系統之首選子網路彈性網路界面的 Amazon EC2 安全性群組 ARN。如需詳細資訊,請參閱「」專用執行個體中的Amazon Elastic Compute Cloud 使用者指南

上述命令會傳回類似以下的位置 ARN。

{ "LocationArn": "arn:aws:datasync:us-west-2:111222333444:location/loc-07sb7abfc326c50fb" }

建立 Amazon S3 位置

使用下列程序來建立 Amazon S3 位置AWS CLI。Amazon S3 位置需要可供讀取或寫入的 Amazon S3 儲存貯體。若要建立 S3 儲存貯體,請參閱建立儲存貯體中的Amazon S3 使用者指南

若要讓 DataSync 存取 S3 儲存貯體,DataSync 需要AWS Identity and Access Management(IAM) 角色。透過以下程序,您可以使用建立 IAM 角色、必要的 IAM 政策和 S3 位置。AWS CLI。

AWS Security Token Service(AWS STS) 必須在您的帳戶和區域中啟用,DataSync 才能擔任 IAM 角色。如需臨時安全登入資料資訊,請參閱IAM 中的臨時安全登入資料中的IAM User Guide

您也可以使用主控台建立 S3 位置。如需詳細資訊,請參閱 為 Amazon S3 創建一個位置

使用 CLI 建立 S3 位置

  1. 建立 IAM 信任政策,允許 DataSync 擔任存取 S3 儲存貯體所需的 IAM 角色。

    下列是信任政策的範例。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "datasync.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 建立 IAM 政策的臨時檔案,如下列範例所示。

    $ ROLE_FILE=$(mktemp -t sync.iam.role.XXXXXX.json) $ IAM_ROLE_NAME='YourBucketAccessRole' $ cat<<EOF> ${ROLE_FILE} { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "datasync.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF
  3. 建立 IAM 角色,並將 IAM 政策連接到該角色。

    下列的命令會建立 IAM 角色,並將政策連接到該角色。

    $ aws iam create-role --role-name ${IAM_ROLE_NAME} --assume-role-policy-document file://${ROLE_FILE} { "Role": { "Path": "/", "RoleName": "YourBucketAccessRole", "RoleId": "role-id", "Arn": "arn:aws:iam::account-id:role/YourBucketAccessRole", "CreateDate": "2018-07-27T02:49:23.117Z", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "datasync.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } }
  4. 允許您所建立的 IAM 角色寫入至您的 S3 儲存貯體。

    將擁有足夠許可存取 S3 儲存貯體的 IAM 政策連接至 IAM 角色。以下範例顯示 DataSync 讀取和寫入 S3 儲存貯體所需的最低許可。AWS 區域。

    { "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:PutObjectTagging", "s3:GetObjectTagging", "s3:PutObject" ], "Effect": "Allow", "Resource": "YourS3BucketArn/*" } ] }

    若要將政策連接至 IAM 角色,請執行以下命令。

    $ aws iam attach-role-policy \ --role-name role-name \ --policy-arn 'arn:aws:iam::aws:policy/YourPolicyName'

    Amazon S3 於AWS 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:PutObjectTagging", "s3-outposts:GetObjectTagging", "s3-outposts:PutObject" ], "Effect": "Allow", "Resource": [ "s3OutpostsBucketArn/*", "s3OutpostsAccessPointArn" ], "Condition": { "StringLike": { "s3-outposts:DataAccessPointArn": "s3OutpostsAccessPointArn" } } }, { "Effect": "Allow", "Action": [ "s3-outposts:GetAccessPoint" ], "Resource": "s3OutpostsAccessPointArn" } ] }
  5. 建立 S3 位置。

    使用以下命令來建立 Amazon S3 位置。

    $ aws datasync create-location-s3 \ --s3-bucket-arn 'arn:aws:s3:::bucket' \ --s3-storage-class 'your-S3-storage-class' \ --s3-config 'BucketAccessRoleArn=arn:aws:iam::account-id:role/role-allowing-DS-operations' \ --subdirectory /your-folder

    此命令會傳回類似如下的位置 ARN。

    { "LocationArn": "arn:aws:datasync:us-east-1:111222333444:location/loc-0b3017fc4ba4a2d8d" }

    位置類型資訊會編碼在LocationUri。在此範例中,s3:// prefix in LocationUri會顯示位置的類型。

    如果您的 Amazon S3 儲存貯體位於AWS Outposts,您必須在前哨站上部署 Amazon EC2 代理程式。代理程式必須位於允許存取命令中指定的存取點的 VPC 中。代理程式也必須在前哨站的父區域中啟動,並且能夠在AWS Outposts端點。如需在啟動 DataSync 代理程式的詳細資訊AWS Outposts,請參閱將您的 DataSync 代理程式部署到AWS Outposts

    請使用以下命令,在您的前哨站上建立 Amazon S3 位置。

    aws datasync create-location-s3 \ --s3-bucket-arn access-point-arn \ --s3-config BucketAccessRoleArn=arn:aws:iam::account-id:role/role-allowing-DS-operations \ --agent-arns datasync-agent-arn-in-the-vpc-which-can-access-your-s3-acces-point

注意
  • 對物件資料或詮釋資料的變更等同於刪除物件並建立新物件來取代物件。這會在下列案例中產生額外費用:

  • 如果您使用物件版本控制,單一 DataSync 任務執行可能會建立 Amazon S3 物件的多個版本。

  • 除了授予 DataSync 許可的 IAM 政策之外,建議為您的 S3 儲存貯體建立分段上傳儲存貯體政策。這麼做可協助您控制您的儲存成本。如需詳細資訊,請參閱部落格文章S3 生命週期管理更新-支援多部分上傳和刪除標記