AWS DataSyncを利用したファイルサーバーからAmazon FSx for Windows File Serverへデータ移行

AWS

2023.10.25

Topics

はじめに

こんにちは、第三SAチームのamaebiです。
今回は、AWS DataSyncを利用したWindows File ServerからFSx for Windows File Serverへのデータ移行について紹介します。
なお、ファイルサーバー移行後の切替については、以下の記事をご覧ください。

関連記事
Amazon FSx for Windows File Serverへいこう!クライアントは気づかないレベル?!

なぜAWS DataSyncを使うのか

では、なぜWindows File ServerからFSx for Windows File Serverへの移行にAWS DataSyncを使う必要があるのかについて説明します。
通常Windows File Server間のデータ移行には主にrobocopyコマンドを使用します。

概要

ある場所から別の場所にファイル データをコピーします。
出典:robocopy

robocopyコマンドを使用することで、移行元から移行先への堅牢性の高いデータ移行を行うことができます。
更に、オプションを用いることで状況に応じたデータ移行も実現できます。
しかし、robocopyにもいくつかの問題がございます。

  • 移行したいフォルダーが無数に存在する場合、全てのフォルダーに対してコマンドを作成、管理しなければならない。
  • データ移行をスケジューリングしたい場合、そのプロセスごとにbatファイルを作成し、タスクスケジューラを設定、管理しなければならない。
  • 整合性チェックを行う場合、一つ一つ手動でログファイルを確認しなければならない。

小規模のデータ移行の場合、上記の問題点を考慮する必要がありません。
ですが、大規模なデータ移行や複数のファイルサーバーの統合などになりますと上記の問題点が浮き彫りになっていきます。そこで、その問題点を解決するためにAWS DataSyncを活用します。

AWS DataSync

そもそもAWS DataSyncとは何かについて説明しますと、オンプレミスからクラウドストレージ、クラウドストレージ間のデータ移行を迅速、簡単、安全に転送できるフルマネージドサービスになっております。
今回は、AWS DataSyncを利用したWindows File ServerからFSx for Windows File Serverへの移行のプロセスについて説明します。(今回の検証環境では、オンプレミスサーバーを使用することが困難なため、代わりにEC2を使用します。さらにオンプレミスからクラウドへの移行を考えておりますので、FSx for Windows File ServerはセルフマネージドMicrosoft Active Directoryを使用して作成しております。)

上の構成図のようにオンプレミス(EC2)とクラウドストレージサービス、それぞれのロケーションを作成します。その後、そのロケーションを元にデータ移行を行うためのタスクを作成、実行します。

AWS DataSyncを使用することで、robocopyでの問題点を解消することができます。

コマンド作成が不要になり、管理が容易に

移行したいフォルダーごとにDataSyncタスクを作成するため、面倒な長いrobocopyコマンドをいちいち作成する手間を削減できます。
更にDataSyncのマネジメントコンソール上でタスクを一覧表示ができ、必要に応じて個別のタスクの検索なども行えますので、管理が容易になります。

スケジューリング設定の簡素化

DataSyncタスクには、スケジューリング機能が備わっております。ですので、自分が定期的に実行したいタスクをスケジューリングすることで、自動的にデータ移行を実行します。

整合性チェックを自動化

DataSyncタスクには、タスク実行設定という機能が備わっております。その機能を利用することで、データ移行と整合性確認を自動で行います。
整合性確認には、以下の3つがございます。

  • 転送中の整合性を確認する
  • 転送されたデータのみを確認する
  • 送信先のすべてのデータを確認する

NTFSアクセス許可の同期

AWS DataSyncを使用することで、移行元(Windows File Server)の共有フォルダーのNTFSアクセス許可設定を移行先(FSx for Windows File Server)の共有フォルダーに同期させることができます。
※ただし、SMB設定は同期されませんので、別途設定が必要です。
AWS DataSync を使用して、既存のファイルを FSx for Windows File Server に移行する

その他にも、以下のようなメリットがございます。

利点

  • 移行計画の簡略化
  • データ移動の自動化
  • データの安全な転送
  • データの高速移動
  • 運用コストの削減

出典:AWS DataSync の概要

では、実際にAWS DataSyncを利用したデータ移行の手順について、具体的に確認していきましょう。

対応ストレージシステムとサービス

余談ではありますが、AWS DataSyncが対応しているストレージシステムとクラウドストレージサービスについては、以下のようになっております。

DataSyncは以下のストレージシステムとサービスと連携します。

  • Network File System (NFS) ファイルサーバー
  • サーバーメッセージブロック (SMB) ファイルサーバー
  • Hadoop Distributed File System (HDFS)
  • オブジェクトストレージシステム
  • Amazon S3 バケット
  • アマゾン EFS ファイルシステム
  • Amazon FSx for Windows File Server ファイルシステム
  • Amazon FSx for Lustre ファイルシステム
  • Amazon FSx for OpenZFS ファイルシステム
  • NetAppONTAP ファイルシステム用 Amazon FSx
  • Google Cloud Storage バケット
  • Microsoft Azure Blob ストレージ( プレビュー)
  • マイクロソフト Azure ファイル
  • AWS Snowball Edgeデバイス上の Amazon S3 互換ストレージ
  • AWS Snowcone デバイス

出典:AWS DataSync の概要

手順

AWS DataSyncを使用したデータ移行の手順は以下になります。

  1. AWS DataSync Agentの作成
  2. 移行元、移行先のロケーションを作成
  3. タスクの作成
  4. タスクの実行、確認

今回のテストデータにつきましては、以下のようになっております。

ではより具体的に見ていきましょう。

AWS DataSync Agentの作成

マネジメントコンソール > EC2 > インスタンス > インスタンスの起動 を選択し、DataSync Agent用のEC2を作成していきます。

EC2に任意の名前を入力します。

その他のAMIを閲覧するからAMIを選択します。

検索欄からaws-datasyncと検索し、コミュニティAMIを選択します。
そこから、該当するdatasync用のAMIを選択してください。

インスタンスタイプにつきましては、以下の推奨事項がございます。

Amazon EC2 インスタンスの要件

DataSyncエージェントを Amazon EC2 インスタンスとしてデプロイする場合、インスタンスサイズは少なくとも 2xlarge である必要があります。

次のいずれかのインスタンスサイズを使用することをお勧めします。
今回は、m5.2xlargeを選択します。

  • m5.2xlarge 2,000万個以下のファイルを転送するタスクの場合。
  • m5.4xlarge 2,000万個を超えるファイルを転送するタスクの場合。

出典:AWS DataSyncエージェント要件

自分が作成したキーペアを選択してください。
キーペアを持っていない場合は、新しいキーペアの作成から作成できます。

検証環境のVPCとサブネット、DataSync Agent用のセキュリティグループを選択します。
その際に、パブリックIPの自動割り当て有効化にしておいてください。
DataSync Agent用のセキュリティグループのインバウンドルールに、ポート範囲をHTTP(80ポート)に、IPアドレスをマイ IPに指定しております。

ストレージサイズは必ず80GiB以上を選択してください。
AWS DataSyncエージェント要件

他のデフォルトのままにしておきます。
上記の設定事項をすべて設定しましたら、インスタンスの起動をクリックします。

次に、マネジメントコンソール > DataSync > エージェント > エージェントを作成する を選択します。

エージェントのデプロイ先をAmazon EC2に指定します。
サービスエンドポイントにつきましては、公開サービスエンドポイントを指定します。

アクティベーションキーは、エージェントからアクティベーションキーを自動的に取得するを選択します。
エージェントのアドレスは、先ほど作成したEC2のパブリックIPアドレスを指定します。

パブリックIPアドレスは、EC2インスタンスの詳細から確認できます。

上記の設定事項をすべて設定しましたら、キーを取得するをクリックします。

無事、アクティベーションキーが取得できましたら、エージェント名を記載してエージェントを作成をクリックします。
その際に、アクティベーションキーは必ずメモしてください。

作成したエージェントのステータスオンラインになりましたら、AWS DataSync Agentの作成は完了です。

移行元、移行先のロケーションを作成

ロケーションを作成する前に、移行元(EC2で作成したWindows File Server)と移行先(FSx for Windows File Server)の操作権限のあるユーザーを作成します。

移行元(EC2で作成したWindows File Server)と移行先(FSx for Windows File Server)で使用ユーザー”migration“を作成します。

ユーザー”migration”に対して、Enterprise AdminsとFSx for Windows File Serverの操作権限のあるグループに所属させます。
FSx for Windows File Serverの操作権限のあるグループにつきましては、下記のドキュメントを参照してください。
セルフマネージド Microsoft Active Directory を使用するための前提条件

移行元(EC2で作成したWindows File Server)の共有フォルダーの共有アクセス許可に対して、”migration”への読み取り権限を付与します。
NTFSアクセス許可も同様に読み取り権限を付与します。

移行先ロケーションを作成する前に、移行先(FSx for Windows File Server)にもD$配下に空のフォルダーを作成する、又はそのフォルダーを共有化する必要がございます。
fsmgmt.mscを使用して、移行先(FSx for Windows File Server)の共有フォルダーの共有アクセス許可に対して、”migration”へのフルアクセス権限を付与します。
NTFSアクセス許可はつきましては、”migration”が所属するFSx for Windows File Serverの操作権限のあるグループがデフォルトでフルアクセスになっているため、設定は不要です。

次に、マネジメントコンソール > DataSync > ロケーション > ロケーションを作成する を選択します。

移行元ロケーションの作成

設定“に、以下の内容を設定します。

ロケーションタイプ サーバーメッセージブロック(SMB)
エージェント 先程作成したDataSync Agent
SMB サーバー 移行元(EC2で作成したWindows File Server)のプライベートIPアドレス
共有名 移行元サーバーの共有フォルダー名

設定完了後、次にいきます。

ユーザー設定“に、以下の内容を設定します。

ユーザー 先程作成したユーザー”migration”
パスワード 指定したユーザーのパスワード
ドメイン ADサーバーのドメイン

設定が完了後、ロケーションを作成するを選択します。

移行先ロケーションの作成

設定“に、以下の内容を設定します。

ロケーションタイプ Amazon FSx
FSx file system 移行先(FSx for Windows File Server)
共有名 移行先サーバーのD$配下のフォルダー名、又は移行先サーバーの共有フォルダー名
セキュリティグループ FSx for Windows File Serverに必要なセキュリティグループ

設定完了後、次にいきます。

ユーザー設定“に、以下の内容を設定します。

ユーザー 先程作成したユーザー”migration”
パスワード 指定したユーザーのパスワード
ドメイン ADサーバーのドメイン

設定が完了後、ロケーションを作成するを選択します。

両方のロケーションが作成できましたら、移行元、移行先のロケーションを作成は完了です。

タスクの作成

マネジメントコンソール > DataSync > タスク > タスクを作成する を選択します。

タスクを作成していきます。

送信元のロケーションを設定する“に、以下の内容を設定します。

送信元のロケーションのオプション 既存のロケーションを選択する
リージョン Asia Pacific(Tokyo)
既存のロケーション 先程作成した移行元ロケーション

設定が完了後、次へを選択します。


送信先のロケーションを設定する“に、以下の内容を設定します。

送信元のロケーションのオプション 既存のロケーションを選択する
既存のロケーション 先程作成した移行先ロケーション

設定が完了後、次へを選択します。

次に任意のタスク名を設定します。
その他にも設定項目はございますが、とりあえず全てデフォルトのままタスクを作成します。

最終確認がすべて完了いたしましたら、タスクを作成します。問題なくタスクが作成されましたら、完了です。

余談ですが、切替完了後などで移行不要となった共有フォルダーについては、タスクの検索欄から”不要となった共有フォルダー名”と検索し、該当のタスクを下記のような手順で削除することによって簡単に管理することができます。

タスクの実行、確認

では、実際にタスクを実行していきましょう。

先程作成したタスクを選択し、アクション > 開始 でタスクを実行します。

しばらくすると、実行したタスクが完了しますので、DataSync > 履歴からステータス成功になっていることを確認します。

それでは、実際に移行元(EC2で作成したWindows File Server)と移行先(FSx for Windows File Server)のテストデータを比較します。
メインディレクトリ、サブディレクトリ、ファイルの中身が全て移行されていることが確認できます。全ての移行の確認が完了しましたら、タスクの実行、確認は完了です。

まとめ

DataSyncを使用することで、シンプルにデータ移行を行えます。
さらに、タスクのスケジュール機能を使用することで、手動でタスクを実行せずとも自動的に決まったタイミングでデータ移行も行えます。
FSx for Windows File ServerやWindows File Server以外のストレージサービスやファイルサーバーに対応しておりますので、幅広いシチュエーションで活用できます。

テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!

amaebi

amaebiと申します。平日は技術を学び、休日にゲームセンターに足を運ぶエンジニアです。クラウドエンジニアとしてまだまだ未熟ですが、これから精進していきたいです。

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら