目次
AWS DataSync 完全ガイド 2026
初心者から実務者向けの包括的解説
ドキュメントの目的
本ガイドは以下を対象としています:
- 初心者向け: DataSync とは何か、なぜオンプレとクラウドのファイル転送に必要かを学びたい方
- 開発者・SRE向け: エージェント設定、タスク作成、帯域幅制御を実装したい方
- インフラエンジニア向け: オンプレミス移行、クロスリージョンレプリケーション、AWS 内コピー戦略を設計したい方
- 意思決定者向け: 大容量データ移行のコスト計算、所要時間予測を行いたい方
2026年の DataSync エコシステム
- Enhanced Mode(クロスクラウド): Google Cloud Storage、Azure Blob Storage、Oracle Cloud Object Storage に直接接続。エージェント不要
- 全リージョン対応: オンプレ → AWS、AWS 内、AWS → 他クラウド のシームレス転送
- agentless 転送: AWS Storage 間(S3、EFS、FSx)の転送で agent 不要。最大並列化で高速化
- Transfer Verification: チェックサム自動検証で データ破損検知
- Bandwidth Throttling: CloudWatch Events + Lambda で 時間帯別に帯域幅制御
概要
AWS DataSync は、オンプレミス・AWS Storage・他クラウド間のデータ転送を自動化・最適化するマネージドサービス です。NFS/SMB/HDFS/S3 API からのデータ取り込み、S3/EFS/FSx への直接転送、クロスリージョン・クロスアカウント同期を、並列化・帯域幅最適化・整合性検証を組み込みで提供します。
初心者向けメモ: DataSync は「賢い rsync」です。自動的に帯域幅を最大活用し、転送エラーを検証し、定期同期をスケジュール実行します。手動 rsync の数倍高速で、エラー検知が確実です。
DataSync が解決する課題
DataSync は以下の課題に対応します:
- 転送速度の限界: rsync では帯域幅を完全活用できず。DataSync は並列化・マルチパートで数倍高速化
- 転送エラーの検知困難: ファイルコピー後に整合性チェック必須。DataSync は自動チェックサム検証
- 長時間転送の中断リスク: オンプレ NAS → AWS への数日かかる転送で中断時の再開が複雑。DataSync は再開可能
- 複数拠点の定期同期: 複数データセンターのバックアップを AWS に集約。DataSync は スケジュール実行で自動化
- クロスリージョン・クロスアカウント同期: EFS → EFS、S3 → S3 の複製が複雑。DataSync は ウィザード完全サポート
主な特徴
- ✅ 自動帯域幅最適化: 並列化、マルチパート、ネットワーク最適化で数倍高速化
- ✅ 転送検証: チェックサム自動検証で データ破損検知
- ✅ マルチプロトコル対応: NFS、SMB、HDFS、S3 API、Azure Blob、Google Cloud Storage
- ✅ クロスリージョン・クロスアカウント: EFS↔EFS、S3↔S3、FSx↔FSx の転送
- ✅ 定期同期スケジュール: cron 式で 増分同期を自動化
- ✅ 帯域幅制御: 営業時間は 10MB/s、夜間は無制限 など時間帯別制御
- ✅ agentless 転送: AWS Storage 間は エージェント不要
- ✅ Enhanced Mode(2025): 他クラウド Storage への直接転送、エージェント不要
アーキテクチャ
graph TB
subgraph OnPrem["On-Premises"]
NAS["NAS Server<br/>NFS/SMB<br/>192.168.1.100"]
AGENT["DataSync Agent<br/>VMware/Hyper-V<br/>IP: 192.168.1.50"]
end
subgraph AWS_Region1["AWS Region 1 (ap-northeast-1)"]
S3A["S3 Bucket<br/>my-migration-bucket"]
EFS_A["EFS<br/>fs-xxxxx<br/>Regional"]
FSx_A["FSx for Windows<br/>fs-yyyyyy"]
end
subgraph AWS_Region2["AWS Region 2 (ap-northeast-3)"]
S3B["S3 Bucket<br/>backup-bucket"]
EFS_B["EFS<br/>fs-zzzzz<br/>Regional"]
end
subgraph CloudProviders["Other Cloud Providers"]
GCS["Google Cloud Storage"]
AZURE["Azure Blob Storage"]
OCI["Oracle Cloud Object"]
end
subgraph Control["DataSync Control Plane"]
TASK1["Task 1<br/>NAS → S3"]
TASK2["Task 2<br/>S3 → EFS"]
TASK3["Task 3<br/>EFS1 → EFS2<br/>Cross-Region"]
VERIFY["Verification<br/>Checksum<br/>Filtering"]
end
NAS -->|iSCSI/NFS| AGENT
AGENT -->|TLS 1.2<br/>Port 443| TASK1
TASK1 -->|transfer| S3A
TASK2 -->|transfer| EFS_A
TASK3 -->|transfer| EFS_B
TASK1 -->|verify| VERIFY
TASK2 -->|verify| VERIFY
EFS_A -->|replicate| EFS_B
S3A -->|copy| S3B
AGENT -->|Enhanced Mode| GCS
AGENT -->|Enhanced Mode| AZURE
AGENT -->|Enhanced Mode| OCI
データフロー(オンプレ → AWS)
- Agent 起動: VMware/Hyper-V/EC2 に DataSync Agent VM をデプロイ
- Agent Activation: Agent が AWS DataSync サービスに登録
- Location 作成: ソース(オンプレ NAS)、宛先(S3/EFS/FSx)ロケーション定義
- Task 作成: ソース・宛先・オプション(検証、帯域幅、フィルタ)を定義
- Task 実行: 並列化・マルチパート転送で最大帯域幅活用
- Verification: チェックサム検証で整合性確認
- Scheduling: 定期実行で増分同期を自動化
コアコンポーネント詳細
1. DataSync Agent
オンプレミス側のストレージ(NFS/SMB/HDFS)に接続し、AWS DataSync サービスと通信する VM:
Agent デプロイメント方式
| 環境 | 対応 | 仕様 | 推奨 |
|---|---|---|---|
| VMware vSphere | ✅ | OVA テンプレート | 大規模オンプレ |
| Hyper-V | ✅ | VHD イメージ | Windows環境 |
| KVM | ✅ | QEMU イメージ | Linux 環境 |
| EC2 | ✅ | AMI | AWS Outpost / ハイブリッド |
| AWS Snowball Edge | ✅ | 内蔵 | 物理輸送(超大容量) |
Agent 仕様
- CPU: 4-8 vCPU 推奨(パフォーマンス依存)
- Memory: 32-64 GB 推奨
- Network: 1 Gbps(E5 往復時間<100ms 推奨)
- ストレージ: 32 GB SSD(メタデータキャッシュ)
2. Location(ソース・宛先)
サポートロケーション
| ロケーションタイプ | プロトコル | 認証 | クロスアカウント |
|---|---|---|---|
| NFS | NFSv3/4.1 | Agent 必須 | ✅ |
| SMB | SMB 2.1/3.x | Agent + 資格情報 | ✅ |
| HDFS | Hadoop API | Agent + Kerberos | ❌ |
| S3 | S3 API | IAM Role | ✅ |
| EFS | NFS v4.1 | IAM + 認可ポリシー | ✅ |
| FSx for Windows | SMB | 資格情報 | ✅ |
| FSx for Lustre | Lustre | IAM Role | ✅ |
| FSx for NetApp ONTAP | NFS/SMB | IAM + 認可ポリシー | ✅ |
| FSx for OpenZFS | NFS | IAM Role | ✅ |
| Google Cloud Storage | GCS API | Enhanced Mode | ✅(2025) |
| Azure Blob Storage | Azure API | Enhanced Mode | ✅(2025) |
| Oracle Cloud Storage | OCS API | Enhanced Mode | ✅(2025) |
3. Task(転送タスク)
転送ジョブを定義し、実行・スケジュール管理:
Task 構成:
├─ Source Location: arn:aws:datasync:...:location/nfs/...
├─ Destination Location: arn:aws:datasync:...:location/s3/...
├─ Options:
│ ├─ VerifyMode: ONLY_FILES_TRANSFERRED (転送ファイルのみ検証)
│ ├─ OverwriteMode: ALWAYS (既存ファイル上書き) / NEVER
│ ├─ PreserveDeletedFiles: PRESERVE (削除ファイル保持) / REMOVE
│ ├─ TaskQueueing: ENABLED (順序保証)
│ ├─ LogLevel: TRANSFER (ログレベル)
│ ├─ Atime: BEST_EFFORT (アクセス時刻)
│ └─ BytesPerSecond: 104857600 (100 MB/s に制限)
└─ Schedule:
└─ ScheduleExpression: cron(0 2 * * ? *) (毎日 2:00 AM)
4. Task Execution(実行)
タスクを即時実行、または スケジュール実行:
# 即時実行
aws datasync start-task-execution \
--task-arn arn:aws:datasync:ap-northeast-1:...:task/xxxxx
# 実行状態を監視
aws datasync describe-task-execution \
--task-arn ... \
--execution-arn arn:aws:datasync:...:execution/xxxxx
# 結果例
{
"Status": "SUCCESS",
"BytesTransferred": 1073741824, # 1 GB
"FilesTransferred": 10000,
"BytesSkipped": 0,
"FilesSkipped": 0,
"StartTime": "2026-04-26T02:00:00Z",
"EndTime": "2026-04-26T02:05:30Z"
}
主要ユースケース(10パターン)
1. 大規模オンプレミス NAS → S3 移行
シナリオ:
オンプレミス: Dell EMC Isilon NAS(50TB)
転送先: S3 Standard Tier
ネットワーク: 1 Gbps(往復時間 50ms)
構成:
Agent: 8 vCPU, 64GB メモリ VM(VMware)
転送スレッド数: 64 並列
チェックサム検証: ONLY_FILES_TRANSFERRED
帯域幅: 制限なし(夜間バッチ)
所要時間:
理論値: 50TB ÷ 1Gbps = 400秒 = 6.7分
実測値: ~10分(オーバーヘッド含む)
コスト:
Agent VM: $0.3/時間 × 1時間 = $0.30
DataSync 転送料金: 50,000GB × $0.0125 = $625
合計: $625.30
メリット:
- 手動 rsync なら 1-2日かかる → DataSync なら 10分
- 検証・フィルタリングが自動
2. AWS オンボーディング(複数ファイルサーバー統約)
シナリオ:
3 つのオンプレミス拠点(各 10TB)→ AWS EFS 1 つに統約
ステップ:
拠点A: /data → EFS:/site-a へ DataSync Task
拠点B: /data → EFS:/site-b へ DataSync Task
拠点C: /data → EFS:/site-c へ DataSync Task
定期同期: 毎日深夜 01:00 実行(増分のみ)
構成:
EFS: Regional, Elastic Throughput
各タスク: 独立実行, 1 つずつ順序実行
検証: POINT_IN_TIME_CONSISTENT
月間コスト:
EFS ストレージ: 30TB × $0.30 = $9,000
DataSync 転送: (10TB + 5TB + 5TB) × $0.0125 = $250/月
合計: ~$9,250
メリット:
- 3 拠点の ファイルを EC2/ECS クラスター全体で共有可能
- 定期同期で オンプレミス更新を自動反映
3. クロスリージョン EFS 複製(DR)
シナリオ:
Primary EFS: ap-northeast-1(東京)5TB
Replica EFS: ap-northeast-3(大阪)
RPO: 1時間以内(定期同期)
構成:
Task: EFS-1a(Tokyo) → EFS-1(Osaka)
Schedule: cron(0 * * * ? *) (毎時実行)
Verification: POINT_IN_TIME_CONSISTENT
TransferMode: CHANGED (変更ファイルのみ)
所要時間:
初回: 5TB ÷ 5Gbps (EFS同期最大) = ~8分
以降毎時: 変更分のみ(通常 100MB 未満なら 1-2秒)
コスト:
Primary EFS: 5TB × $0.30 = $1,500/月
Replica EFS: 5TB × $0.30 = $1,500/月
DataSync 転送: (5TB 初回 + 月間差分 30TB) × $0.0125 = $375
合計: ~$3,375
メリット:
- AZ/リージョン障害時に 秒単位でフェイルオーバー可能
- EFS Replication より 細粒度制御可能
4. 医療機関の PACS バックアップ(FSx for Windows)
シナリオ:
PACS(画像ストレージシステム): 500TB, SMB プロトコル
転送先: FSx for Windows(AWS)
バックアップ周期: 日次(夜間)
構成:
Agent: Hyper-V VM(Windows Server)
Location Source: SMB /pacs-01
Location Dest: FSx for Windows smb://fs-xxxxx/backup
Schedule: cron(0 22 * * ? *) (毎日 22:00)
Verification: POINT_IN_TIME_CONSISTENT
BytesPerSecond: 52428800 (50MB/s に制御)
実行パターン:
初回バックアップ: 500TB ÷ 50MB/s = ~116時間(5日)
以降: 差分のみ(平均 10TB/日)→ ~3時間
コスト:
FSx for Windows: 500TB × $0.25 = $125,000/月
DataSync 転送: (500TB 初回 + 300TB 月間差分) × $0.0125 = $10,000
Agent VM: $0.5/時間 × 730時間 = $365
合計: ~$135,365
メリット:
- HIPAA/GDPR コンプライアンス対応
- 医療画像データの 整合性検証が自動
- RPO 1日以内で DR 環境構築
5. メディア・映像ファイル AWS 処理への転送
シナリオ:
オンプレミス: 4K 映像ストレージ 100TB
AWS 処理: MediaConvert, Elemental Live など
構成:
Agent: 高性能(16 vCPU, 128GB メモリ)
Location: NFS /media/master
Destination: S3 + EFS(処理用)
Transfer Mode: CHANGED (新ファイルのみ)
Verification: COPY_WITH_SKIP_VERIFY (速度優先)
Bandwidth: 無制限(オンプレミス network 余裕あり)
月間フロー:
新規映像: 50TB/月 → DataSync で AWS へ
処理結果: 100TB(エンコード後) → S3 Glacier に自動アーカイブ
コスト:
S3 Intelligent-Tiering: 150TB × $0.023 = $3,450/月
DataSync 転送: 50TB × $0.0125 = $625
MediaConvert: プロパティ別
合計: ~$4,075+
メリット:
- Global Creative Cloud ワークフロー対応
- AWS AI/ML でコンテンツ分析・自動編集
6. Hadoop クラスター → AWS 移行
シナリオ:
Hadoop HDFS: 200TB(Parquet フォーマット)
→ AWS S3 + Athena クエリ環境へ
構成:
Agent: Hadoop クラスター内に デプロイ
Location Source: HDFS hdfs://namenode:9000/data
Location Dest: S3 s3://data-lake-bucket/parquet/
Verification: ONLY_FILES_TRANSFERRED
Overwrite Mode: ALWAYS (スキーマ更新対応)
段階化:
Phase 1: Historical Data 100TB → S3
Phase 2: Incremental Sync 毎週 5TB → S3
Phase 3: Decommission オンプレミス Hadoop
コスト:
S3 Standard: 200TB × $0.023 = $4,600
DataSync: (100TB 初回 + 20TB 月間) × $0.0125 = $1,500
合計: ~$6,100
メリット:
- Athena で SQL クエリ可能(Hadoop より柔軟)
- Spark on AWS EMR で 自動スケーリング
- Data Lake Foundation 構築
7. エンタープライズ NAS → AWS(複数リージョン)
シナリオ:
NetApp OnCommand(NAS): 1PB → AWS Global デプロイ
構成:
Primary Region: ap-northeast-1(東京)EFS 500TB
Secondary Region: ap-northeast-3(大阪)EFS 500TB
Tertiary Region: us-east-1(N.Virginia)S3 500TB
パイプライン:
東京 NAS →(Task1)→ 東京 EFS
東京 EFS →(Task2 CHANGED)→ 大阪 EFS
東京 EFS →(Task3)→ N.Virginia S3
スケジュール:
初回: 全ファイル転送(1-2週間かけて)
以降: 毎日深夜 差分同期(CHANGED)
月間コスト:
EFS × 2: 1000TB × $0.30 = $300
S3: 500TB × $0.023 = $11,500
DataSync: (1PB 初回 + 100TB 月間差分) × $0.0125 = $13,750
合計: ~$25,550
メリット:
- グローバル市場での Local Compliance
- 各リージョンで ローカル処理・アナリティクス
- ハイブリッド DR 環境
8. AWS 内 S3 → EFS コピー(分析用)
シナリオ:
Data Lake(S3): 10TB Parquet
→ Machine Learning pipeline 用 EFS へ
構成:
Source: S3 s3://datalake/ml-input/
Destination: EFS fs-xxxxx:/ml-workspace/
Agent: agentless (AWS 内転送)
Verification: COPY_WITH_SKIP_VERIFY(高速)
Transfer Mode: CHANGED
Schedule: cron(0 1 * * ? *) (毎日 1:00 AM)
実行例:
初回: 10TB → ~2-3分(agentless で高速)
以降: 差分 100GB → ~10秒
コスト:
EFS: 10TB × $0.30 = $3,000
DataSync: 10TB × $0.0125 = $125
合計: ~$3,125
メリット:
- S3 Select/Athena より低遅延アクセス
- ML training データセット高速ロード
9. クロスアカウント EFS 同期(監視・ロギング用)
シナリオ:
本社アカウント: EFS(本店データ)→ 監査アカウントへ複製
構成:
Source Account: 123456789012
EFS: fs-prod-xxxxx
Audit Account: 987654321098
EFS: fs-audit-xxxxx
Task (Audit Account で実行):
Source: EFS (本社)
Destination: EFS (監査)
Cross-Account IAM Role: arn:aws:iam::123456789012:role/DataSyncCrossAccount
月間:
初回: 全ファイル複製
以降: 毎日深夜 差分同期
コスト:
EFS × 2 リージョン: ~$6,000
DataSync: ~$200
合計: ~$6,200
メリット:
- Compliance・監査ログの分離環境
- データセキュリティ強化
10. Snowball Edge + DataSync ハイブリッド(超大容量)
シナリオ:
オンプレミス: 100PB NAS
AWS へ の移行(物理輸送 + オンライン同期)
フロー:
Step 1: Snowball Edge(100 個)で 物理的に輸送
各 100TB × 100 = 10PB × 10 回転
Step 2: AWS に到着後、Snowball から S3 へ自動ロード
Step 3: DataSync で 残りファイル・差分を オンライン同期
帯域幅: 100Mbps(低速接続対応)
所要時間:
物理輸送: 2-3週間 × 10回転 = 20-30週
オンライン同期: 残り 10% × 100PB ÷ 100Mbps = ~1年
コスト:
Snowball Edge: $300/日 × 30日 × 10回転 = $90,000
S3 保存: 100PB × $0.023 = $2,300,000/月
DataSync: (10PB 段階的) × $0.0125 = $125,000
合計: ~$2,515,000
メリット:
- 物理ネットワーク制限下での 超大容量移行
- Snowball + DataSync で 完全自動化
- 5年で エンタープライズ全体 AWS 化実現
設定・操作の具体例
AWS CLI でタスク作成・実行
# 1. Agent を起動し、アクティベーション
aws datasync create-agent \
--agent-name my-onprem-agent \
--activation-key xxxxxxxxxxxxx \
--region ap-northeast-1
# 結果: AgentArn: arn:aws:datasync:ap-northeast-1:...:agent/agent-xxxxx
# 2. NFS Location(ソース)を作成
aws datasync create-location-nfs \
--subdirectory /data/exports \
--server-hostname 192.168.1.100 \
--on-prem-config AgentArns=arn:aws:datasync:ap-northeast-1:...:agent/agent-xxxxx
# 結果: LocationArn: arn:aws:datasync:...:location/nfs/...
# 3. S3 Location(宛先)を作成
aws datasync create-location-s3 \
--s3-bucket-arn arn:aws:s3:::my-migration-bucket \
--subdirectory /migrated-data \
--s3-config BucketAccessRoleArn=arn:aws:iam::123456789012:role/DataSyncS3Role
# 結果: LocationArn: arn:aws:datasync:...:location/s3/...
# 4. Task を作成
aws datasync create-task \
--source-location-arn arn:aws:datasync:ap-northeast-1:...:location/nfs/... \
--destination-location-arn arn:aws:datasync:ap-northeast-1:...:location/s3/... \
--name nfs-to-s3-migration \
--options '{
"VerifyMode": "ONLY_FILES_TRANSFERRED",
"OverwriteMode": "ALWAYS",
"PreserveDeletedFiles": "PRESERVE",
"TaskQueueing": "ENABLED",
"LogLevel": "TRANSFER",
"TransferMode": "CHANGED",
"BytesPerSecond": 104857600
}' \
--schedule 'ScheduleExpression=cron(0 2 * * ? *)'
# 結果: TaskArn: arn:aws:datasync:ap-northeast-1:...:task/task-xxxxx
# 5. Task を即座に実行
aws datasync start-task-execution \
--task-arn arn:aws:datasync:ap-northeast-1:...:task/task-xxxxx
# 6. 実行状況をモニタリング
aws datasync describe-task-execution \
--task-arn arn:aws:datasync:ap-northeast-1:...:task/task-xxxxx \
--execution-arn arn:aws:datasync:ap-northeast-1:...:execution/exec-xxxxx \
--query '[Status,BytesTransferred,FilesTransferred,StartTime,EndTime]' \
--output table
帯域幅制御(時間帯別)
# CloudWatch Events + Lambda で 帯域幅を動的に制御
# 営業時間(09:00-18:00): 10 MB/s に制限
aws datasync update-task \
--task-arn arn:aws:datasync:ap-northeast-1:...:task/task-xxxxx \
--options '{
"BytesPerSecond": 10485760
}'
# 夜間(22:00-06:00): 無制限
aws datasync update-task \
--task-arn arn:aws:datasync:ap-northeast-1:...:task/task-xxxxx \
--options '{
"BytesPerSecond": -1
}'
# Lambda 関数(cron で実行)
import boto3
import json
datasync = boto3.client('datasync')
def lambda_handler(event, context):
task_arn = 'arn:aws:datasync:ap-northeast-1:...:task/task-xxxxx'
# 現在時刻を取得
from datetime import datetime
hour = datetime.now().hour
# 営業時間: 09:00-18:00
if 9 <= hour < 18:
bytes_per_second = 10485760 # 10 MB/s
else:
bytes_per_second = -1 # 無制限
# Task を更新
response = datasync.update_task(
TaskArn=task_arn,
Options={
'BytesPerSecond': bytes_per_second
}
)
return {
'statusCode': 200,
'body': json.dumps(f'Updated bandwidth to {bytes_per_second} bytes/sec')
}
Terraform での DataSync Task 設定
# Agent の作成
resource "aws_datasync_agent" "onprem" {
ip_address = "192.168.1.50"
security_group_arns = [aws_security_group.datasync.arn]
subnet_id = aws_subnet.onprem.id
tags = {
Name = "onprem-datasync-agent"
}
}
# NFS Location(ソース)
resource "aws_datasync_location_nfs" "onprem_nfs" {
subdirectory = "/data/exports"
server_hostname = "192.168.1.100"
on_prem_config {
agent_arns = [aws_datasync_agent.onprem.arn]
}
}
# S3 Location(宛先)
resource "aws_datasync_location_s3" "aws_s3" {
s3_bucket_arn = "arn:aws:s3:::my-migration-bucket"
subdirectory = "/migrated-data"
s3_config {
bucket_access_role_arn = aws_iam_role.datasync_s3.arn
}
}
# Task
resource "aws_datasync_task" "nfs_to_s3" {
source_location_arn = aws_datasync_location_nfs.onprem_nfs.arn
destination_location_arn = aws_datasync_location_s3.aws_s3.arn
name = "nfs-to-s3-migration"
options {
atime = "BEST_EFFORT"
bytes_per_second = 104857600 # 100 MB/s
gid = "BOTH"
log_level = "TRANSFER"
mtime = "PRESERVE"
overwrite_mode = "ALWAYS"
preserve_deleted_files = "PRESERVE"
posix_permissions = "BEST_EFFORT"
task_queueing = "ENABLED"
transfer_mode = "CHANGED"
verify_mode = "ONLY_FILES_TRANSFERRED"
}
schedule {
schedule_expression = "cron(0 2 * * ? *)"
}
tags = {
Environment = "production"
}
}
# CloudWatch イベント(自動実行)
resource "aws_cloudwatch_event_rule" "datasync_schedule" {
name = "datasync-daily-sync"
schedule_expression = "cron(0 2 * * ? *)"
}
resource "aws_cloudwatch_event_target" "datasync_task" {
rule = aws_cloudwatch_event_rule.datasync_schedule.name
target_id = "DataSyncTask"
arn = "arn:aws:datasync:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:task/${aws_datasync_task.nfs_to_s3.id}"
role_arn = aws_iam_role.eventbridge_datasync.arn
}
他の類似ツール・サービスとの比較
| 観点 | DataSync | Storage Gateway | S3 Transfer Accel | rsync | Snowball |
|---|---|---|---|---|---|
| 用途 | オンライン転送・同期 | ハイブリッド統合 | S3 高速化 | ファイル同期 | 物理輸送 |
| 対応プロトコル | NFS/SMB/HDFS/S3 | NFS/SMB/iSCSI | HTTP | SSH | - |
| 自動検証 | ✅ チェックサム | ❌ 手動 | ✅ | ❌ 別途スクリプト | ✅ |
| 定期同期 | ✅ スケジュール | △ ファイルゲートウェイ | ❌ | ✅ cron | ❌ |
| 帯域幅制限 | ✅ | ✅ | ❌ | △ rsync --bwlimit | - |
| スケーラビリティ | 並列化・マルチパート | エッジ マシン依存 | S3 の制限 | シングルスレッド | 物理容量依存 |
| コスト | `0.0125/GB 転送 | キャパ購入制 | 転送料金高い | 無料 | `300/日 × 期間 |
| 適用最小容量 | GB 単位 | TB 単位 | GB 単位 | 可変 | 100TB 以上推奨 |
| 適用最大容量 | PB(段階的) | TB | 実質無制限 | PB(時間要) | 数 PB(複数 Snowball) |
| 2026年推奨判断 | オンライン移行・同期 | レガシー環境 | 全部 AWS 環境 | シンプルなら可 | 超大容量(>100TB) |
ベストプラクティス(✅ / ❌)
✅ DO
- Agent の高性能化: 4+ vCPU, 32+ GB メモリ で 並列化活用
- VerifyMode を有効化: チェックサムで データ破損検知
- Transfer Mode = CHANGED: 初回移行後は差分のみで時間短縮
- 帯域幅制御: 営業時間は制限、夜間は無制限で ネットワーク最適化
- 定期同期スケジュール: CloudWatch Events + Lambda で自動化
- CloudWatch で監視: 転送速度、エラー、検証失敗を追跡
- 段階的移行: 部分テスト後に全体へ拡張
- Cross-Account Task: Audit/Security アカウントでの複製で compliance 対応
❌ DON’T
- Agent 低スペック: CPU 不足で 並列化が活かせず、速度低下
- VerifyMode = NONE: データ破損検知できない。初回移行では必須
- 制限なし帯域幅で常時実行: ネットワーク飽和で 本番業務に支障
- Transfer Mode = ALWAYS: 既存ファイル常に比較チェックで 遅い
- 手動タスク実行: 定期同期が漏れるリスク。スケジュール必須
- エラーハンドリングなし: 転送失敗を検知しない。アラーム設定必須
- Task ログを削除: トラブルシューティング時に 原因追跡困難
- 単一 Agent に依存: Agent 障害で 全転送が停止。冗長化検討
トラブルシューティング
| 症状 | 原因 | 対策 |
|---|---|---|
| Agent がアクティベート不可 | セキュリティグループで https(443)遮断 | Agent SG のアウトバウンドルール確認(TCP/443 許可) |
| NFS マウント接続エラー | Agent が NAS に アクセス不可 | NAS ファイアウォール確認、NFS ポート(2049)許可 |
| 転送速度が遅い(<10 MB/s) | Agent CPU 不足、または ネットワーク輻輳 | Agent リソース増加、または 時間帯ずらし |
| 検証失敗(Verification failed) | ネットワーク転送エラー、またはファイル権限変更 | 再実行、ファイル権限確認 |
| Task 実行途中で 中断 | Agent 接続切断、または オンプレミス側ファイルシステム エラー | Agent 再起動、NAS 診断実行 |
| スケジュール実行されない | CloudWatch Events ルールが OFF、または IAM ロール不足 | EventBridge ルール確認、IAM ロール権限確認 |
| Overwrite モード で 上書き失敗 | 宛先 S3/EFS 権限不足 | IAM ロール(s3:PutObject等)権限追加 |
| Cost が予想外に高い | 予定以上のファイル転送実行 | Transfer Mode を CHANGED に変更、帯域幅制限検討 |
| ログが CloudWatch に 出現しない | Log Group が作成されていない | Task 作成時に ログレベル = TRANSFER 指定し再実行 |
2025-2026 最新動向
1. Enhanced Mode(クロスクラウド対応 2025)
- Google Cloud Storage、Azure Blob Storage、Oracle Cloud Object Storage に直接接続
- エージェント不要で エージェント管理の複雑性軽減
- マルチクラウド環境で 統一転送プラットフォーム実現
2. agentless 転送(AWS Storage 間)
- S3 ↔ S3、EFS ↔ EFS、FSx ↔ FSx で エージェント不要
- 最大並列化で 転送速度大幅向上(従来比 50-100倍)
3. Bandwidth Throttling の自動化
- CloudWatch Metrics + Lambda で 時間帯別制御が容易に
- ネットワーク効率化で コスト削減・業務影響最小化
4. Transfer Verification 強化
- チェックサム種別選択可(MD5, SHA256)
- データ改ざん検知精度向上
学習リソース
AWS 公式
テックブログ
- AWS Storage Blog - DataSync Updates
- DataSync Cross-Region Replication Patterns
- DataSync Cross-Cloud Transfers
実装例
小規模(1-10 TB)
構成:
Agent: VM(4 vCPU, 16GB メモリ)
Location: NAS (NFS)→ S3
Transfer: 1 回限りの移行
所要時間: 10TB ÷ 100MB/s = ~28時間(1日)
コスト: $125(転送料金)
用途: 小規模ファイルサーバー移行
中規模(10-100 TB)
構成:
Agent: 高性能 VM(8 vCPU, 64GB メモリ)
Location: NetApp NAS → EFS + S3
定期同期: 毎日深夜 差分のみ
初回: 50TB → 5-10時間
以降: 月間差分 5TB × 12回 × $0.0125 = $750/月
用途: エンタープライズ NAS AWS 統合
大規模(100 TB - PB)
構成:
Agent: 複数(分散実行)
Snowball Edge: 物理輸送 + DataSync オンライン同期
Location: HDFS → S3 Intelligent-Tiering
初回: Snowball 10回 × 100TB + DataSync 差分
月間: DataSync 差分 100TB × $0.0125 = $1,250
用途: 大規模データセンター統合・クラウド移行
導入ロードマップ
Phase 1: 計画・評価(1-2週間)
- ファイルサーバー・NAS の容量、プロトコル調査
- ネットワーク帯域幅・遅延測定
- AWS ターゲット選定(S3/EFS/FSx)
- 移行スケジュール・コスト見積もり
Phase 2: PoC(1-2週間)
- Agent VM デプロイ
- Location テスト設定
- Task 作成・実行
- 転送速度・検証精度 ベンチマーク
Phase 3: 本番移行(4-12週間)
- 本番 Agent デプロイ
- Location 本番設定
- 段階的転送実行
- CloudWatch 監視・アラーム設定
Phase 4: 最適化・運用(継続)
- 帯域幅制御の調整
- 定期同期スケジュール最適化
- コスト削減施策(Snapshots Archive 等)
- ディザスタリカバリー テスト
実装チェックリスト
- [ ] Agent の要件スペック確認(vCPU, メモリ, ネットワーク)
- [ ] オンプレミス側ファイアウォール設定(https 443)
- [ ] NAS/ファイルサーバーの認証方式確認(NFS Kerberos など)
- [ ] AWS Target の 権限設定(IAM Role で s3:PutObject 等)
- [ ] VerifyMode を ONLY_FILES_TRANSFERRED 以上に設定
- [ ] Transfer Mode を CHANGED に設定(差分転送で効率化)
- [ ] CloudWatch ログ出力を有効化(TRANSFER レベル)
- [ ] 帯域幅制限設定(営業時間は 10-50 MB/s)
- [ ] スケジュール実行設定(cron 式)
- [ ] CloudWatch アラーム設定(転送失敗、検証失敗)
- [ ] 定期的に 転送ログ確認(月1回レビュー)
- [ ] ディザスタリカバリー テスト実施(年2回)
まとめ
AWS DataSync は オンプレミス・AWS・他クラウド間の大容量ファイル転送を自動化・最適化するマネージドサービス です。2026年では Enhanced Mode でクロスクラウド対応、agentless 転送で AWS Storage 間を高速化、自動チェックサム検証でデータ品質保証 を実現します。
並列化・マルチパート・帯域幅最適化により、手動 rsync より数倍高速で、エラー検知が確実。定期同期スケジュール・CloudWatch 監視で、完全に自動化されたデータ同期基盤を構築できます。
参考文献
AWS 公式(10+)
- AWS DataSync ユーザーガイド
- DataSync Agent 設定
- DataSync Location 設定
- DataSync Task 作成
- DataSync Transfer Verification
- DataSync スケジューリング
- DataSync Bandwidth Control
- DataSync プライシング
- AWS Prescriptive Guidance - DataSync Patterns
テックブログ・OSS(5+)
- AWS Storage Blog - DataSync Latest
- AWS What’s New - DataSync Cross-Cloud 2025
- CloudThat: DataSync Cross-Region Transfers
- OneUptime: DataSync S3-to-S3 Transfers
最終更新: 2026-04-26
バージョン: v2.0