How AWS DataSync works
Learn the key concepts and terminology related to AWS DataSync transfers.
DataSync transfer architecture
The following diagrams show how and where DataSync commonly transfers storage data. For a full list of DataSync supported storage systems and services, see Where can I transfer my data with AWS DataSync?.
Topics
Transferring between on-premises storage and AWS
The following diagram shows a high-level overview of DataSync transferring files between self-managed, on-premises storage systems and AWS services.
The diagram illustrates a common DataSync use case:
-
A DataSync agent copying data from an on-premises storage system.
-
Data moving into AWS via Transport Layer Security (TLS).
-
DataSync copying data to a supported AWS storage service.
Transferring between AWS storage services
The following diagram shows a high-level overview of DataSync transferring files between AWS services in the same AWS account.
The diagram illustrates a common DataSync use case:
-
DataSync copying data from a supported AWS storage service.
-
Data moving across AWS Regions via TLS.
-
DataSync copying data to a supported AWS storage service.
When transferring between AWS storage services (whether in the same AWS Region or across AWS Regions), your data remains in the AWS network and doesn't traverse the public internet.
Important
You pay for data transferred between AWS Regions. This is billed as data
transfer OUT from your source Region to your destination Region. For more
information, see Data transfer
pricing
Transferring between cloud storage systems and AWS storage services
With DataSync, you can transfer data between other cloud storage systems and AWS services. In this context, cloud storage systems can include:
-
Self-managed storage systems, such as an NFS file server in your virtual private cloud (VPC) within AWS.
-
Storage systems or services hosted by another cloud provider. For more information, see Transferring to or from other cloud storage with AWS DataSync.
The following diagram shows a high-level overview of DataSync transferring data between AWS storage services and another cloud provider.
Concepts and terminology
Familiarize yourself with DataSync transfer features.
Agent
An agent is a virtual machine (VM) appliance that DataSync uses to read from and write to storage during a transfer.
You can deploy an agent in your storage environment on VMware ESXi, Linux Kernel-based Virtual Machine (KVM), or Microsoft Hyper-V hypervisors. For storage in a virtual private cloud (VPC) in AWS, you can deploy an agent as an Amazon EC2 instance.
A DataSync transfer agent is no different than an agent that you can use for DataSync Discovery, but we don't recommend using the same agent for these scenarios.
To get started, see Do I need an AWS DataSync agent?
Location
A location describes where you're copying data from or to. Each DataSync transfer (also known as a task) has a source and destination location. For more information, see Where can I transfer my data with AWS DataSync?
Task
A task describes a DataSync transfer. It identifies a source and destination location along with details about how to copy data between those locations. You also can specify how a task treats metadata, deleted files, and permissions.
Task execution
A task execution is an individual run of a DataSync transfer task. There are several phases involved in a task execution. For more information, see Task execution statuses.
How DataSync transfers files, objects, and directories
When you start a task, DataSync prepares your transfer by examining your source and destination locations to determine what to transfer. This is done by recursively scanning the contents and metadata of both locations to identify differences between the two. This process can take just minutes or a few hours depending on the number of files, objects, or directories in both locations and the performance of your storage systems or services.
During preparation, the number of files, objects, or directories that DataSync takes inventory of in your source and destination counts towards your task quotas. The quotas aren't based on the number of items that DataSync transfers during each task execution.
Once DataSync is done preparing your transfer, it copies your data (including metadata) from the source to the destination based on your task settings. For example, you can specify what metadata gets copied, exclude certain files, limit how much bandwidth DataSync uses, among other options.
At the end of the transfer, DataSync can verify the integrity of your data.
For information on the specific steps that take place during a task execution, see DataSync task statuses.
Open and locked files
Keep in mind the following when trying to transfer files that are open (in use) or locked:
-
In general, DataSync can transfer open files without any limitations.
-
If a file is open and being written to during a transfer, DataSync can detect this kind of inconsistency during the transfer task's verification phase. To get the latest version of the file, you must run the task again.
-
If a file is locked and the server prevents DataSync from opening it, DataSync skips the file during the transfer and logs an error.
-
DataSync can't lock or unlock files.
Data integrity
DataSync always performs data-integrity checks during a transfer. When your transfer's complete, DataSync can also verify just the data copied or the entire dataset in the source and destination locations. Depending on how you configure data verification, this can take a significant amount of time on large datasets.
Tip
In most cases, we recommend verifying only the data that gets transferred.
DataSync checks data integrity by calculating and comparing the checksum and
metadata of every file or object in both locations. If DataSync notices differences
between locations, task verification fails with an error that specifies what
failed.
For
example, you might see errors such as Checksum failure
,
Metadata failure
, Files were added
, Files
were removed
, and so on.
Recurring transfers
In addition to one-time transfers, DataSync can copy data on a recurring basis. Some of the options for these situations include:
-
Scheduling when your task executes.
-
Transferring only the data that's changed since the previous task execution.
-
Deleting data in the destination location that's no longer present in the source.