AWS DataSync アクティベーションキーによるエージェント登録からデータ転送までをやってみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
AWS DataSync は、オンプレミスストレージと AWS ストレージサービス間、または AWS ストレージサービス間でデータを転送できるサービスです。この記事では、DataSync Agent のセットアップから、アクティベーションキーを使用して DataSync Agent をアクティベートする方法までをやってみます。
本検証ではオンプレミス環境で DataSync Agent を利用することを想定しています。
DataSync Agent のアクティベーション方法
DataSync Agent のアクティベート方法は大きく分けて 2 つあります。
マネージメントコンソールへ接続可能な端末が、DataSync Agent(仮想マシン)にも 80 番ポートでアクセスできる状況
- DataSync のエージェント登録画面から DataSync Agent の DNS名または、プライベートIP を指定して登録
DataSync Agent(仮想マシン)へローカル接続が可能な状況
- DataSync Agent のローカルコンソールからアクティベーションキー(文字列)を発行
- インターネット接続可能な端末でマネージメントコンソールを開く
- DataSync のエージェント登録画面でアクティベーションキーを入力してエージェント登録
検証環境
今回はローカルコンソール接続からアクティベーションキー発行からのアクティベーションまでの作業内容を把握するために試してみました。自宅にハイパーバイザーを動かす環境がないため、残念ですが EC2 を利用してで検証します。
構成図

DataSync Agent の準備
DataSync Agent のセットアップを始めるには、まず最新の AMI を確認します。以下の AWS CLI コマンドで、最新の AMI ID を取得できます。
aws ssm get-parameter --name /aws/service/datasync/ami --region ap-northeast-1
{
    "Parameter": {
        "Name": "/aws/service/datasync/ami",
        "Type": "String",
        "Value": "ami-069046d9db78be45c",
        "Version": 103,
        "LastModifiedDate": "2024-10-20T23:57:13.047000+09:00",
        "ARN": "arn:aws:ssm:ap-northeast-1::parameter/aws/service/datasync/ami",
        "DataType": "text"
    }
}
確認した DataSync Agent の AMI を使用し、以下の設定でインスタンスを起動します。
| 設定項目 | 値 | 備考 | 
|---|---|---|
| インスタンスタイプ | m5.2xlarge | 最低のメモリサイズ 32GB 確保 | 
| EBS | gp3 | デフォルトの gp2 から変更 | 
| IAM ロール | - | セッションマネージャーでアクセス可能なIAMロールをアタッチ | 

DataSync Agent へのアクセスと各種テスト
セッションマネージャーからアクセス
EC2 インスタンスへのアクセスにはセッションマネージャーを使用します。ログイン後、adminユーザーに切り替えます。
sudo su - admin
KVM や VMware で VM(DataSync Agent) を起動した場合、ユーザーはadmin、パスワードはpasswordでアクセスできます。
ログインすると、DataSync Agent 設定画面を確認できます。
        AWS DataSync Activation - Configuration
        #######################################################################
        ##  Currently connected network adapters:
        ##
        ##  eth0: 10.0.17.69
        #######################################################################
        1: Network Configuration
        2: Test Network Connectivity
        3: Test Connectivity to Self-Managed Storage
        4: View System Resource Check (0 Errors)
        5: Command Prompt
        6: Upload agent logs via pre-signed S3 URL
        0: Get activation key
        Press "x" to exit session
        Enter command:
DataSync Agent の動作を確認するために、ネットワーク接続とストレージ接続テストをします。これらのテストはオンプレミス環境で DataSync Agent 起動時に有用なテスト項目です。
ネットワーク接続テスト
DataSync Agent の設定画面から2: Test Network Connectivityを実行します。
パブリックエンドポイントを選択し、ap-northeast-1リージョンを指定してテストしました。
        AWS DataSync Activation - Test Network Connectivity
        Choose the service endpoint type that this agent will connect to:
        1: Public endpoints
        2: FIPS endpoints
        3: VPC Endpoints using AWS PrivateLink
        Press "x" to exit
        Select service endpoint type or exit: 1
        Enter AWS Region (e.g. us-east-1): ap-northeast-1
        Connectivity Test Results - PUBLIC endpoints
        > d3dvvaliwoko8h.cloudfront.net:443
         [ SSL TEST: PASSED ]
         [ NETWORK TEST: PASSED ]
        > activation.datasync.ap-northeast-1.amazonaws.com:443
         [ SSL TEST: PASSED ]
         [ NETWORK TEST: PASSED ]
        > cp.datasync.ap-northeast-1.amazonaws.com:443
         [ SSL TEST: PASSED ]
         [ NETWORK TEST: PASSED ]
        > datasync.ap-northeast-1.amazonaws.com:443
         [ SSL TEST: PASSED ]
         [ NETWORK TEST: PASSED ]
        > datasync-updates-ap-northeast-1.s3.ap-northeast-1.amazonaws.com:443
         [ SSL TEST: PASSED ]
         [ NETWORK TEST: PASSED ]
        > amazonlinux-2-repos-ap-northeast-1.s3.ap-northeast-1.amazonaws.com:443
         [ SSL TEST: PASSED ]
         [ NETWORK TEST: PASSED ]
        > amazonlinux-2-repos-ap-northeast-1.s3.dualstack.ap-northeast-1.amazonaws.com:443
         [ SSL TEST: PASSED ]
         [ NETWORK TEST: PASSED ]
        > 54.201.223.107(SUPPORT_CHANNEL_ENDPOINT):22
         [ NETWORK TEST: PASSED ]
        Press return to continue
結果はすべてパスしました。NAT Gateway 経由で DataSync のパブリックエンドポイントまでの疎通は問題ないことが確認できました。
ストレージ接続テスト
DataSync Agent の設定画面から3: Test Connectivity to Self-Managed Storageを実行します。
NFS サーバーを指定し、EFS の DNS 名を入力してテストしました。この際、EFS を EC2 はマウントしていません。
	AWS DataSync - Test Connectivity to Self-Managed Storage
	Choose the location type for the connectivity test:
	1: NFS server
	2: SMB server
	3: Object storage
	4: HDFS
	5: Azure Blob
	Press "x" to exit
	Select location type or exit: 1
	IPv4 or NFS server name:
	Invalid location address. Please try again.
	Select location type or exit: 1
	IPv4 or NFS server name: fs-0c1f163ca89a2b390.efs.ap-northeast-1.amazonaws.com
	Connectivity Test Results
	> fs-0c1f163ca89a2b390.efs.ap-northeast-1.amazonaws.com:2049
	 [ PASSED ]
	Press return to continue
結果は成功でした。EC2 と NFS サーバー(EFS)間の通信も問題ないことが確認できました。失敗する場合は NFS サーバのエクスポート設定や、必要ポートが空いているか(ファイアウォール、セキュリティグループ)などを疑ってください。
DataSync Agent のアクティベーション
アクティベーションキーの取得
DataSync Agent の設定画面から、0: Get activation keyを実行します。
リージョン名ap-northeast-1と、パブリックエンドポイント指定してアクティベーションキーを発行しました。キーの有効期限がは 30 分ですので次の作業へ速やかに取り掛かります。
        Get activation key
        Enter AWS Region (e.g. us-east-1): ap-northeast-1
        Choose the service endpoint type that this agent will connect to:
        1: Public endpoints
        2: FIPS endpoints
        3: VPC Endpoints using AWS PrivateLink
        Press "x" to exit
        Select service endpoint type or exit: 1
        Activation key: THV1L-1H7RV-IV00G-T6NJE-9CFNC
        Press return to continue
マネージメントコンソールでエージェント登録
DataSync エージェント作成画面から、発行したアクティベーションキーを入力しエージェントを登録します。

無事 DataSync Agent の登録に成功しました。

データ転送動作確認
DataSync Agent のアクティベーションが完了したので、実際のデータ転送プロセスを通じて DataSync の動作確認を行います。
(EFS マウント)
データソースとなる NFS サーバを用意するのが手間だったので EFS を利用しました。 EFS を DataSync Agent の EC2 インスタンスにマウントします。セッションマネージャーを使用して以下のコマンドを実行しました。EFS ヘルパーは利用せず、一般的な方法でマウントしました。
$ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-0c1f163ca89a2b390.efs.ap-northeast-1.amazonaws.com:/ /mnt/efs
2 つのファイルで約 8GB ほどのデータが保存されていました。こちらを DataSync Agent 経由で S3 バケットに転送してみます。
$ ls -lh /mnt/efs/trinity-work
total 7.8G
-rw-r--r-- 1 ssm-user ssm-user 163M Oct 16 00:49 chuanwen+cowsay.sqsh
-rw-r--r-- 1 ssm-user ssm-user 7.7G Oct 16 00:00 trinityrnaseq+trinityrnaseq+2.15.2.sqsh
DataSync タスクの設定
DataSync コンソールでソースとデスティネーションのロケーションを作成します。
ソースロケーションの設定はエージェントを選択し、NFS サーバーとして EFS の DNS 名を指定します。

デスティネーションロケーションは既存の設定を流用しました。

すべてのデータを転送するデフォルトの設定です。

タスク設定完了です。DataSync の設定自体は大変シンプルです。

データ転送結果の確認
タスクが正常に完了したことを DataSync コンソールで確認できました。

S3 バケットを確認し、EFS から全てのファイルが正しく転送されたことを確認できました。

DataSync Agent のセットアップからアクティベーションプロセスまでのすべてのステップは問題なく、データ転送も成功したことが確認できました。
まとめ
これらのステップを通じて、DataSync のアクティベーションからデータ転送の基本的なワークフローを実行しました。
- DataSync Agent の AMI を使用した EC2 インスタンスの準備
- セッションマネージャーを使用した DataSync Agent へのアクセス
- ネットワークとストレージの接続テスト
- アクティベーションキーの発行と DataSync Agent のアクティベーション
- EFS から S3 へのデータ転送タスクの設定と実行
おわりに
DataSync のパブリックエンドポイントまで疎通できていれば、エージェントの登録は簡単でした。










