AWS DataSync, Moved and Verified

AWS DataSync, Moved and Verified

A mechanics-first walkthrough of how AWS DataSync actually moves petabytes of data between on-premises storage, edge locations, and AWS — for engineers who already know "it copies files" and want the real internals of how it moves that data fast, safely, and verifiably.

Picture moving an entire library’s worth of books to a new building across town — not by hand, but by a fleet of trucks that each know exactly which shelf every book belongs on at the destination, can tell instantly if a box was damaged in transit, and can make a second trip automatically for anything that changed after the first trip left. That’s the job AWS DataSync does for data instead of books: it moves enormous volumes of files and objects between on-premises storage systems, other clouds, and AWS storage services, while continuously verifying that what arrived matches exactly what left, and without you having to write and babysit a custom copy script that inevitably breaks on the one edge case nobody tested.

1Problem & Motivation

Before DataSync, moving large volumes of data into AWS meant either shipping physical storage devices, or running general-purpose tools like rsync over the open internet — tools that were never designed for the scale, reliability, or security requirements of enterprise data migration. A single rsync process is fundamentally single-threaded in its file-comparison logic, doesn’t natively encrypt data in flight unless wrapped in additional tooling, and offers no built-in mechanism to verify that a multi-terabyte transfer completed with byte-for-byte integrity rather than silently corrupting a handful of files along the way. At petabyte scale, over links that may span thousands of miles and pass through unreliable networks, these gaps stop being theoretical and start being the actual cause of failed migrations.

Analogy

Think of the difference between mailing important documents in a single envelope with no tracking, versus using a courier service that scans every package at pickup, mid-route, and at delivery, automatically re-routes around a closed road, and gives you a receipt proving every single page arrived intact. Ad hoc copy scripts are the untracked envelope. DataSync is the courier service — purpose-built for the specific job of moving large amounts of data reliably, with verification built in rather than bolted on.

Production example: media and entertainment companies migrating petabyte-scale video archives to AWS have cited DataSync’s parallel, multi-threaded transfer architecture as the difference between a migration measured in weeks versus one measured in months, because moving that volume of large media files with single-threaded tools simply cannot saturate available network bandwidth the way a purpose-built parallel transfer engine can.

2Core Concepts (Intermediate Layer)

This section assumes you already know DataSync “transfers data into and out of AWS.” It focuses on the architecture and vocabulary that matter once you’re actually configuring and operating transfer tasks.

Agents, Locations, and Tasks — the Three Building Blocks

Every DataSync transfer is built from three distinct objects. An Agent is the software component (deployed as a VM image or, for AWS-to-AWS transfers, not needed at all) that performs the actual data movement on the source or destination side when that side isn’t natively reachable by the DataSync service directly — for example, an on-premises NFS share needs an agent deployed in that data center to read from it. A Location represents a specific storage endpoint — an S3 bucket, an EFS file system, an on-premises NFS or SMB share, or a supported third-party or other-cloud object store — configured with the connection details DataSync needs to read or write there. A Task ties a source Location to a destination Location, along with the transfer configuration: what to include or exclude, how to handle deletions, and how verification should run.

Agentless vs. Agent-Required Transfers

A subtlety that trips up teams designing their architecture: transfers between AWS-native locations that DataSync can reach directly (S3 to EFS, for instance) don’t require an agent at all — DataSync’s managed service infrastructure handles the movement. Transfers involving on-premises storage, or self-managed storage in another cloud, require deploying at least one DataSync Agent inside that environment, because the agent is what actually establishes the connection to the storage protocol (NFS, SMB, or a self-managed object storage API) that DataSync’s managed service has no direct network path to reach.

Task Execution and Incremental Transfers

A Task can be run once or on a recurring schedule. Critically, DataSync doesn’t re-copy everything on every run — after the initial full transfer, subsequent executions perform an incremental sync by comparing file metadata (size, modification time, and optionally content checksums) between source and destination, transferring only what’s new or changed. This is what makes DataSync practical for ongoing replication scenarios, not just one-time migrations — a nightly task can keep a destination continuously synchronized with a constantly changing source without re-transferring unchanged data every night.

Filters, Deletion Handling, and Verification Modes

Tasks support include/exclude filters based on file path patterns, letting you scope a transfer to a specific subdirectory tree or exclude temporary files without needing a separate staging step. Deletion handling is configurable: by default a task does not delete files at the destination that were removed at the source, but this can be explicitly enabled for scenarios where the destination should mirror the source exactly, including deletions. Verification runs at one of several levels — from a lightweight metadata-only check up to a full data verification that recomputes and compares checksums for every transferred file — and the deeper verification level you choose trades transfer speed for stronger integrity guarantees.

i
Intermediate Insight

A common trap is enabling destination-deletion mirroring on a task without fully understanding the filter scope first. If a filter is misconfigured and excludes files that should have been included, running a task with deletion mirroring enabled will delete those excluded-but-actually-wanted files from the destination on the very next sync, because from the task’s perspective they simply don’t exist at the source within its filtered view.

Bandwidth Throttling

Configurable Transfer Limits

Tasks can be capped to a maximum bandwidth, letting a migration run during business hours without saturating a shared corporate internet link.

Task Reporting

Per-Execution Detail Logs

Each task execution generates a detailed report of files transferred, skipped, and failed, exportable for audit and troubleshooting purposes.

Storage Class Awareness

S3 Storage Class Targeting

When writing to S3, a task can target a specific storage class directly (Standard, Infrequent Access, Glacier tiers), avoiding an unnecessary lifecycle-transition delay after transfer.

Object Tagging

Metadata Preservation

File system metadata such as ownership, permissions, and timestamps can be preserved across the transfer depending on the source and destination location types involved.

3Architecture & Components

The architecture cleanly separates control plane from data plane. The DataSync control plane — task scheduling, configuration, reporting — runs entirely as an AWS-managed service, meaning you never patch, scale, or manage the orchestration layer yourself. The data plane, where the actual bytes move, runs either entirely within AWS-managed infrastructure (for AWS-to-AWS transfers) or partially through a customer-deployed Agent (for any transfer touching on-premises or self-managed storage), which is the piece of the architecture you’re actually responsible for provisioning and keeping healthy.

graph LR
    subgraph OnPrem["On-Premises Data Center"]
        NFS["NFS / SMB
File Share"] AGENT["DataSync Agent
(VM Appliance)"] end subgraph AWSCloud["AWS Cloud"] CP["DataSync Control Plane
(Managed Service)"] S3["Amazon S3"] EFS["Amazon EFS"] FSX["Amazon FSx"] end NFS --> AGENT AGENT -->|"Encrypted
Data Transfer"| CP CP --> S3 CP --> EFS CP --> FSX CP -.->|"Schedule, Filters,
Verification Config"| AGENT

Fig. 1 — The Agent handles protocol-level access to on-premises storage, while the managed control plane orchestrates scheduling, filtering, and verification independent of where the data physically lives.

This separation is what allows DataSync to scale a single task’s throughput by deploying multiple agents against the same source and letting the control plane parallelize work across them, without customers needing to build that orchestration logic themselves — the control plane already knows how to fan work out across however many agents are available and healthy.

4Internal Working

When a task executes, DataSync’s control plane first performs a listing and comparison pass — enumerating files at both source and destination and identifying, based on metadata (and optionally content hashes), exactly which files need to be transferred, updated, or deleted. This comparison pass is what enables the incremental sync behavior described earlier: on a re-run against an unchanged dataset, DataSync can determine that little or nothing needs to move without re-transferring any actual file content.

For files that do need transferring, DataSync breaks large files into chunks and moves them in parallel across multiple concurrent streams, rather than transferring one file start-to-finish before beginning the next. This parallelism, combined with a proprietary network transfer protocol optimized for high-throughput links (rather than relying on standard TCP file-copy semantics the way a basic rsync-over-SSH transfer would), is the primary mechanism behind DataSync’s throughput advantage over generic copy tools — it’s specifically engineered to fill available bandwidth on high-latency, high-bandwidth links where a naive single-stream copy would leave most of that bandwidth unused due to TCP window-size limitations over long round-trip times.

Analogy

It’s the difference between moving a house by carrying boxes through one door, one at a time, versus opening every door and window and having ten people carrying boxes simultaneously through all of them. The second approach doesn’t just feel faster — it genuinely moves more volume per minute because it isn’t bottlenecked by a single narrow pathway. DataSync’s chunked, parallel-stream transfer is architecturally the second approach, while a naive single-threaded copy tool is architecturally the first.

After transfer, if verification is enabled, DataSync recomputes checksums on the destination copy and compares them against source checksums computed during the read phase, flagging any mismatch as a failed file in the task’s execution report rather than silently completing with a corrupted destination copy.

5Data Flow & Lifecycle

Trace a typical enterprise migration scenario. An organization deploys a DataSync Agent as a VM inside their data center, pointed at an existing NFS file share containing years of accumulated engineering documents. They create a source Location referencing that NFS share through the agent, and a destination Location referencing an S3 bucket in their target AWS account. A Task links the two, configured to preserve file timestamps and run an initial full verification pass given the one-time, high-stakes nature of this migration.

The first task execution transfers the full dataset — potentially terabytes — over days, parallelized across as many concurrent streams as the agent and network allow, throttled to a configured bandwidth cap so it doesn’t compete with production traffic during business hours. Once the bulk transfer completes and verification confirms integrity, the team schedules the same task to run nightly for the following two weeks, transferring only newly modified files each night, so that by the time they’re ready to fully cut over, the S3 destination is only minutes behind the live source rather than days stale. On cutover night, they run the task once more to capture any final changes, then redirect applications to read from S3 instead of the original NFS share.

Why the Incremental Phase Matters

Without incremental syncing, a large migration would require freezing writes to the source for the entire duration of a full data transfer — often impossible for systems that can’t tolerate multi-day downtime. Incremental sync lets the bulk of the transfer happen while the source stays live, with only a much shorter final delta transfer needing a genuine cutover window.

6Advantages, Disadvantages & Trade-offs

Advantages

  • Purpose-built parallel transfer engine substantially outperforms generic copy tools on large-scale transfers, especially over high-latency links.
  • Built-in encryption in transit and configurable data verification remove the need to build and maintain custom integrity-checking logic.
  • Native incremental sync makes DataSync suitable for both one-time migrations and ongoing replication without separate tooling.
  • Managed control plane means no orchestration infrastructure to operate — only the lightweight agent for non-AWS-native sources.

Disadvantages & Trade-offs

  • Transfers touching on-premises or self-managed storage require deploying and maintaining at least one agent, adding operational surface area compared to fully AWS-native transfers.
  • Deeper verification levels meaningfully slow down transfer throughput, forcing a real trade-off between speed and integrity confidence on very large datasets.
  • Pricing is based on data transferred per task execution, which means poorly scoped filters or unnecessary full re-syncs can produce unexpectedly high cost on very large recurring transfers.
  • Not designed as a continuous real-time replication tool — it’s scheduled and batch-oriented, not a live streaming sync mechanism for sub-second consistency needs.

7Performance & Scalability

DataSync’s throughput scales along two independent axes: the number of concurrent streams a single agent can drive against the source storage system, and the number of agents deployed in parallel against the same source when a single agent’s network interface becomes the bottleneck. For very large migrations, deploying multiple agents against different subsets of the source dataset — each handling its own task against the same destination — is the standard pattern for pushing total throughput beyond what any single agent’s network capacity allows.

Analogy

It’s similar to widening a highway by adding more lanes rather than trying to make cars drive faster in a single lane. A single agent is one lane, however well-optimized. Adding more agents adds more lanes running in parallel, and total throughput scales with lane count up to the limits of the source storage system’s own ability to serve that many simultaneous readers.

On the destination side, writing to S3 benefits from S3’s own effectively unlimited horizontal write scalability, meaning the destination is rarely the bottleneck in an on-premises-to-S3 migration — the constraint is almost always the source storage system’s read throughput and the network path’s available bandwidth, not anything on the AWS side.

8High Availability & Reliability

The DataSync control plane is a fully managed, multi-AZ AWS service, meaning task scheduling and orchestration itself is resilient to the loss of a single Availability Zone without customer intervention. The reliability consideration that actually falls to the customer is the agent — since the agent is a customer-deployed VM, a single agent represents a single point of failure for any task that depends on it, and enterprises running critical, time-sensitive migrations commonly deploy redundant agents specifically so a task can continue, or be quickly redirected, if one agent instance becomes unavailable mid-transfer.

!
Reliability Caveat

A task execution interrupted mid-transfer — by an agent crash, a network outage, or a manual cancellation — does not leave the destination in a guaranteed-consistent intermediate state across all files; some files may have completed transfer while others are partial or missing. Re-running the task resumes correctly by re-evaluating what’s actually present at the destination, but any process consuming the destination data during that interrupted window should not assume it’s looking at a complete, point-in-time-consistent dataset.

9Security

Data is encrypted in transit by default between the agent and AWS, and data at rest inherits the encryption configuration of the destination storage service (S3 server-side encryption, EFS encryption, and so on). IAM policies control which principals can create, modify, or execute tasks, and separately, resource-based policies on the destination storage (like an S3 bucket policy) control what the DataSync service role itself is permitted to write, giving two independent layers of access control over who can configure a transfer and what that transfer is actually allowed to touch.

Encryption in Transit

TLS-Protected Transfer

All data moving between the agent and AWS is encrypted by default, without requiring separate VPN or tunnel configuration for that protection specifically.

VPC Endpoints

Private Network Path

DataSync supports transferring over a VPC endpoint rather than the public internet, keeping traffic on private AWS network paths for sensitive migrations.

Least Privilege

Task-Scoped IAM Roles

The IAM role DataSync assumes to write to a destination can be scoped to only the specific bucket or path the task needs, limiting blast radius from a misconfigured task.

Audit Trail

CloudTrail Logging

Task creation, execution, and configuration changes are recorded as CloudTrail events, supporting compliance review of exactly what data movement occurred and when.

10Deployment & Cloud Integration

Agent deployment is typically automated through the organization’s existing VM provisioning pipeline — the agent ships as a standard VM image importable into VMware, Hyper-V, or KVM environments, or as an EC2 AMI for transfers originating from another cloud’s compute. Task definitions, like most production AWS resources, are commonly managed as infrastructure-as-code so that recurring migration or replication tasks are version-controlled and reproducible rather than clicked together manually and undocumented.

1

Agent Provisioning

Agent VM deployed into the source environment’s hypervisor or compute platform, activated against the target AWS account.

2

Location & Task Definition

Source and destination Locations configured, Task created linking them with filters, bandwidth limits, and verification level.

3

Initial Bulk Transfer

First task execution moves the full dataset, typically throttled and scheduled around production network usage windows.

4

Recurring Incremental Sync

Scheduled task executions keep the destination synchronized with ongoing source changes until final cutover.

11Design Patterns & Anti-Patterns

PATTERN-01 Recommended
Pattern

Phased migration with a bulk initial transfer followed by scheduled incremental syncs, culminating in a short final delta transfer at actual cutover — minimizing both total downtime and the risk window where source and destination diverge.

Why It Works

It decouples the bulk of the data movement (which can safely happen while the source stays fully live) from the cutover moment itself (which only needs to handle a small, recent delta), dramatically shrinking the actual downtime window compared to a single-shot transfer approach.

ANTI-PATTERN-01 Avoid
Anti-Pattern

Running full, unfiltered, always-maximum-verification tasks on every scheduled execution against a large, mostly-unchanged dataset.

Why It Fails

It wastes both time and transfer cost re-verifying data that hasn’t changed since the last run, when a lighter verification level combined with proper incremental comparison would achieve equivalent practical integrity confidence at a fraction of the ongoing cost.

12Best Practices & Common Mistakes

Best PracticeCommon Mistake It Prevents
Deploy multiple agents for very large source datasetsBottlenecking an entire migration through a single agent’s network interface
Use full verification only on the final cutover transferPaying the throughput cost of maximum verification on every routine incremental sync
Scope filters carefully before enabling destination-deletion mirroringAccidentally deleting valid destination files excluded by a misconfigured filter
Throttle bandwidth during business hours for on-premises sourcesSaturating a shared corporate network link and degrading unrelated production traffic
Target the correct S3 storage class directly during transferPaying for an unnecessary post-transfer lifecycle transition delay and duplicate storage cost

13Real-World & Industry Examples

Media companies migrating large video and post-production archives have described using DataSync’s parallel, multi-agent transfer capability to move multi-petabyte on-premises storage libraries into S3 within timeframes that would have been impractical with generic file-copy tooling, given the sheer volume of large binary media files involved. Life sciences and genomics organizations, dealing with large sequencing datasets generated continuously by lab instruments, have used scheduled DataSync tasks to keep an S3-based analysis pipeline continuously synchronized with on-premises instrument storage, rather than manually staging and uploading new data batches. Enterprises undergoing data-center consolidation projects have used DataSync as the core transfer mechanism for their broader migration programs, relying on its built-in verification specifically because the cost of silently corrupting even a small percentage of files across a multi-petabyte transfer would be far more expensive to discover and remediate after the fact than to prevent during transfer.

14FAQ

Q1Do I need an agent for an S3-to-S3 or S3-to-EFS transfer?
No — transfers between AWS-native locations that DataSync’s managed service can reach directly don’t require an agent. Agents are only needed when one side of the transfer is on-premises storage or a self-managed object store DataSync can’t reach natively.
Q2How does DataSync avoid re-transferring unchanged files on every scheduled run?
Each task execution first compares file metadata (and optionally checksums) between source and destination before transferring anything, and only files identified as new or changed are actually moved — this comparison pass is what makes incremental, scheduled sync practical at scale.
Q3What happens if a task execution is interrupted partway through?
The destination can end up with a mix of fully transferred and partial or missing files for that execution. Re-running the task resolves this correctly by re-evaluating actual destination state, but anything consuming the destination mid-interruption should not assume a complete, consistent snapshot.
Q4Can DataSync be used for ongoing, not just one-time, replication?
Yes — scheduled tasks with incremental sync are a standard pattern for ongoing replication, though DataSync is batch-oriented and scheduled rather than a continuous, sub-second real-time streaming replication mechanism.

15Summary & Key Takeaways

Key Takeaways

  • DataSync is built from three objects — Agents, Locations, and Tasks — with agents required only when a side of the transfer isn’t AWS-native.
  • Its throughput advantage comes from chunked, parallel-stream transfer purpose-built for high-bandwidth, high-latency links, unlike generic single-threaded copy tools.
  • Incremental sync, driven by a metadata (and optional checksum) comparison pass, is what makes DataSync suitable for both one-time migrations and ongoing scheduled replication.
  • Verification level is a genuine trade-off dial between transfer speed and integrity confidence — use full verification selectively, not on every routine run.
  • Scaling throughput further means deploying additional agents in parallel against the source, since the destination (especially S3) is rarely the bottleneck.
  • The agent is the customer’s operational responsibility and single point of failure risk in the architecture; the control plane itself is fully managed and multi-AZ resilient.
  • A phased pattern — bulk transfer, scheduled incremental syncs, short final delta at cutover — minimizes downtime far more effectively than a single-shot full transfer approach.