正在建立AWS DataSync具有的位置AWS CLI - AWS DataSync

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

正在建立AWS DataSync具有的位置AWS CLI

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

使用AWS Command Line Interface(AWS CLI),您可以為下列儲存系統和服務建立位置:

  • 網路檔案系統

  • 伺服器訊息區塊 (SMB)

  • Hadoop 分散式檔案系統 (HDFS)

  • 自我管理的物件儲存來源位置

  • Amazon Elastic File System (Amazon EFS)

  • Amazon FSx for Windows File Server

  • Amazon FSx for Lustre

  • Amazon FSx for OpenZFS

  • Amazon FSx NetApp ONTAP

  • Amazon Simple Storage Service (Amazon S3)

如需詳細資訊,請參閱 使用AWS DataSync地點

建立 NFS 位置

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

注意

如果您正在使用 NFS 位置AWS Snowcone裝置,請參閱NFS 伺服器開啟AWS Snowcone如需將資料傳輸至該裝置或從該裝置傳輸資料的詳細資訊。

使用 CLI 建立 NFS 位置

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

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

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

    • 路徑 (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 位置

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

使用 CLI 建立 SMB 位置

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

    aws datasync create-location-smb \ --server-hostname smb-server-address \ --user user-who-can-mount-share \ --domain domain-of-the-smb-server \ --password user-password \ --agent-arns datasync-agent-arns \ --subdirectory smb-export-path

    所以此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 位置

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— 指定的主機名稱或 IP 地址 NameNode 在 Hadoop 集群和 TCP 端口中 NameNode 正在聆聽。

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

      如果您使用SIMPLE驗證,使用--simple-user參數來指定使用者的使用者名稱。如果您使用KERBEROS驗證,使用--kerberos-principal--kerberos-keytab,以及--kerberos-krb5-conf參數。如需詳細資訊,請參閱「」create-location-hdfs

    • agent-arns— 的 ARN DataSync 用於 HDFS 位置的代理程式。

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

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

建立物件儲存位置

物件儲存位置是與 Amazon S3 API 相容的物件儲存伺服器的端點。物件儲存位置會定義可以讀取或寫入的物件儲存伺服器。

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

使用建立物件儲存位置AWS CLI

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

    aws datasync create-location-object-storage \ --server-hostname object-storage-server.example.com \ --bucket-name DOC-EXAMPLE-BUCKET \ --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" }

建立 Amazon EFS 位置

一個地點是可以讀取或寫入的 Amazon EFS 檔案系統的端點。您也可以使用主控台建立此類位置。如需詳細資訊,請參閱 建立 Amazon EFS 位置

若要使用建立 Amazon EFS 位置AWS CLI

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

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

    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 範圍) 或其安全群組來允許傳入連線。

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

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

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

  4. 建立位置。若要建立 EFS 位置,您需要 Amazon EC2 子網路、Amazon EC2 安全群組和檔案系統的 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" }

建立 Amazon FSx for Windows File Server 位置

一個地點是 FSx for Windows File Server 端點,您可以讀取或寫入。

您也可以使用主控台建立 Windows 檔案伺服器位置的 FSx。如需詳細資訊,請參閱 建立 Amazon 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 VPC中的Amazon EC2 Amazon EC2 Amazon EC2 使用者指南。

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

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

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

建立 Amazon FSx for Lustre 位置

一個地點是 Lustre 檔案系統的 FSx 端點,您可以讀取或寫入該端點。

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

若要使用以建立流程位置的 FSx,請執行下列步驟: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 FSx for OpenZFS 位置

一個地點是 FSx for OpenZFS 檔案系統的端點, DataSync 可以訪問轉移。您也可以建立FSx for OpenZFS 位置 (主控台中)

若要建立開啟 ZFS 位置的 FSx,請使用AWS CLI

  1. 複製以下命令:

    $ aws datasync create-location-fsx-openzfs \ --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 \ --protocol NFS={}
  2. 在命令中指定下列必要參數:

    • 適用於fsx-filesystem-arn」下方,指定位置檔案系統的完整 Amazon Resource Name (ARN)。其中包括AWS 區域您的檔案系統所在的位置AWS 帳戶,以及檔案系統 ID。

    • 適用於security-group-arns」中,指定 Amazon EC2 安全群組的 ARN,該群組可針對 OpenZFS 檔案系統偏好的子網路,提供 FSx 網路界面的存取權。其中包括AWS 區域Amazon EC2 執行個體所在的位置,AWS 帳戶,以及安全群組 ID。

      如需安全群組的詳細資訊,請參閱 。使用亞馬遜 VPC 進行檔案系統存取控制中的Amazon FSx for OpenZFS 使用者指南

    • 適用於protocol,指定通訊協定 DataSync 用於存取您的檔案系統。(DataSync 目前僅支援 NFS。)

  3. 執行命令。您會收到回應,顯示您剛建立的位置。

    { "LocationArn": "arn:aws:datasync:us-west-2:123456789012:location/loc-abcdef01234567890" }

建立 Amazon FSx NetApp OnTAP

一個地點是 FSx for ONTAP 檔案系統的端點, DataSync 可以訪問轉移。您也可以建立FSx for 主控台中 ONTAP 位置

若要使用以建立 ONTAP 位置的 FSx,請執行下列步驟:AWS CLI

  1. 複製以下命令:

    $ aws datasync create-location-fsx-ontap \ --storage-virtual-machine-arn arn:aws:fsx:region:account-id:storage-virtual-machine/fs-file-system-id \ --security-group-arns arn:aws:ec2:region:account-id:security-group/group-id \ --protocol data-transfer-protocol={}
  2. 在命令中指定下列必要參數:

    • 適用於storage-virtual-machine-arn下方,在您要將資料複製到或複製資料的檔案系統中,指定您要從中複製資料或複製資料或複製資料的檔案系統的完整 Amazon Resource Name (ARN)。

      此 ARN 包括AWS 區域您的檔案系統所在的位置AWS 帳戶,以及檔案系統和 SVM 識別碼。

    • 適用於security-group-arns」中,指定 Amazon EC2 安全群組的 ARN,這些群組可讓您存取檔案系統偏好子網路的網路界面。

      其中包括AWS 區域Amazon EC2 執行個體所在的位置,AWS 帳戶,以及您的安全群組 ID。您最多可以指定五個安全群組 ARN。

      如需安全群組的詳細資訊,請參閱 。使用亞馬遜 VPC 進行檔案系統存取控制中的Amazon FSx NetApp OnTAP 使用者指南

    • 適用於protocol,配置協議 DataSync 用於存取檔案系統的 SVM。

      • 對於 NFS,您可以使用預設組態:

        --protocol NFS={}

      • 如果是 SMB,您必須指定可以存取 SVM 的使用者名稱和密碼:

        --protocol SMB={User=smb-user,Password=smb-password}

  3. 執行命令。

    您會收到一個回應,顯示您剛建立的位置。

    { "LocationArn": "arn:aws:datasync:us-west-2:123456789012:location/loc-abcdef01234567890" }

建立 Amazon S3 位置

Amazon S3 位置需要可以讀取或寫入的 S3 儲存貯體。若要建立 S3 儲存貯體,請參閱建立儲存貯體中的Amazon S3 使用者指南

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

適用於 DataSync 若要擔任 IAM 角色,AWS Security Token Service(AWS STS) 必須在您的帳戶和區域中啟用。如需臨時安全登入資料的詳細資訊,請參閱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.filename.json) $ IAM_ROLE_NAME='YourBucketAccessRole' $ cat<<EOF> ${ROLE_FILE} { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "datasync.amazonaws.com" }, "Action": "sts:AssumeRole" }] }
  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 讀取和寫入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:::DOC-EXAMPLE-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://於的 prefixLocationUri顯示位置的類型。

    如果您的 Amazon S3 儲存貯體位於AWS前哨,您必須在前哨部署 Amazon EC2 代理。代理程式必須位在允許存取命令中指定存取點的虛擬私有雲端 (VPC)。代理程式也必須在前哨的父區域中啟用,並且能夠路由到 Amazon S3AWS Outposts值區的端點。如需啟動的詳細資訊 DataSync 上的代理程式AWS Outposts,請參閱部署您的代理程式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 arn-of-datasync-agent-in-vpc-that-can-access-your-s3-access-point
注意
  • 對物件資料或詮釋資料的變更等同於刪除物件並建立新物件來取代物件。這會在下列情況下產生額外費用:

    • 使用物件版本控制時— 對物件資料或中繼資料進行變更後會替此物件建立新版本。

    • 如果使用可能會因覆寫、刪除或擷取物件而產生額外費用的儲存類別時— 更改對象數據或元數據會導致此類費用。如需詳細資訊,請參閱 在中使用 Amazon S3 儲存體方案時的注意事項 DataSync

  • 當您使用對象版本控制時,單個 DataSync 任務執行可能會替 Amazon S3 物件建立多個版本。

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