はじめに
こんにちは、kanazawaです。
今回はEC2 Windows Serverで構築したファイルサーバーをFSx for Windows File Serverに移行してみます。
1. 概要・構成
- FSx for Windows File Serverはフルマネージドサービスのため、OSパッチ適用などが不要になり、運用負荷の軽減が期待できます。
- 本記事では実施していませんが、AWS Backupとの連携によって自動バックアップにも対応可能です。
- FSx for Windows File ServerはActive Directoryとの連携が必須です。
- Active DirectoryはEC2上にセルフマネージドADとして構築し、robocopyを使ってデータを移行します。
- ※ADの構成方法には、他にMSAD(AWS Managed Microsoft AD)がありますが、今回はコスト面を考慮して採用しません。AWSが提供するマネージドADのため、今回のようにEC2を構築・管理する必要がなくなります。
移行前の構成
- EC2 Windows Serverをファイルサーバーとして使用し、同じVPC内のEC2クライアントからSMBで共有フォルダにアクセスする構成です。
- Active DirectoryはEC2上にセルフマネージドADとして構築しています。

移行後の構成
- ファイルサーバーをFSx for Windows File Serverに置き換えます。クライアントからの接続はSMBのままで変わらないため、移行後もクライアント側の設定変更は不要です。
- ドメインコントローラーはそのまま流用します。
- 移行完了後はクライアントの接続先をFSxに切り替えて動作確認を行います。

2. 事前準備
- VPCやEC2の作成、AD関連のセットアップ手順については省略します。
- セキュリティグループのインバウンドルールは以下で作成します。
EC2 (ドメインコントローラー) 用 SG
| ポート | ソース | 用途 |
|---|---|---|
88 |
ファイルサーバー用SG | Kerberos |
88 |
クライアントSG | Kerberos |
88 |
FSx用SG | Kerberos |
389 |
ファイルサーバーSG | LDAP |
389 |
クライアントSG | LDAP |
389 |
FSx用SG | LDAP |
445 |
ファイルサーバーSG | SMB |
445 |
クライアントSG | SMB |
445 |
FSx用SG | SMB |
3389 |
作業端末IP | RDP |
EC2 (ファイルサーバー) 用 SG
| ポート | ソース | 用途 |
|---|---|---|
445 |
クライアントSG | SMB |
3389 |
作業端末IP | RDP |
EC2 (クライアント) 用 SG
| ポート | ソース | 用途 |
|---|---|---|
3389 |
作業端末IP | RDP |
FSx 用 SG
| ポート | ソース | 用途 |
|---|---|---|
445 |
ファイルサーバーSG | SMB (robocopyによるデータ移行) |
445 |
クライアントSG | SMB |
- AD DSをインストールし、ファイルサーバー用EC2とクライアント用EC2をドメインに参加させます。
C:\shareに、テスト用の画像ファイルを2つ保存します。このフォルダが移行元フォルダになります。
3. FSx for Windows File Serverの作成
- 以下のパラメータでFSx for Windows File Serverを作成します。
| パラメータ | 値 |
|---|---|
| デプロイタイプ | シングルAZ |
| ストレージタイプ | SSD |
| ストレージ容量 | 32GB |
| スループット | 8 MB/s |
| VPC | 作成済みのVPC |
| サブネット | 作成済みのPrivate Subnet |
| セキュリティグループ | FSx用SG |
- Active Directoryの設定は以下の通りです。
| パラメータ | 値 |
|---|---|
| ディレクトリタイプ | セルフマネージドAD |
| ドメイン名 | hoge.example.com |
| DNSサーバーIP | DCのプライベートIP |
| サービスアカウント | ドメイン参加用ユーザー |
- 「ステータス」が「利用可能」になっていれば作成完了です。
- 作成に失敗した場合はADの認証情報やネットワーク設定を確認してください。

4. データ移行
- まずファイルサーバー用EC2にRDPで接続し、FSxをマウントして、移行先フォルダを作成します。
- PowerShellを開き、以下のコマンドを実行します。
# FSxをマウント net use Z: \\<FSxのDNS名>\share # 移行先フォルダ作成 mkdir Z:\share
- 移行元のEC2に接続し、robocopyでデータをコピーします。
robocopy C:\share \\<FSxのDNS名>\share /E /COPYALL /ZB /LOG:C:\robocopy.log /NP
| オプション | 説明 | 補足 |
|---|---|---|
/E |
サブフォルダも含めてコピー | |
/COPYALL |
ACL・タイムスタンプ等すべてのファイル属性をコピー | |
/LOG |
ログをファイルに出力 | |
/ZB |
再起動可能モードを有効 | アクセスが拒否された場合に自動でバックアップモードに切り替える |
/NP |
コピーの完了率を非表示にする | 進捗0%などの完了率が無数に出力されることを防ぐ |
- 実行したログを確認します。以下のように出力されます。
-------------------------------------------------------------------------------
ROBOCOPY :: Windows の堅牢性の高いファイル コピー
-------------------------------------------------------------------------------
開始: 2026年8月20日 15:06:51
コピー元 : C:\share\
コピー先 -
ファイル: *.*
オプション: *.* /S /E /COPYALL /ZB /NP /R:1000000 /W:30
------------------------------------------------------------------------------
2 C:\share\
新しいファイル 169966 TestFile01.png
新しいファイル 251627 TestFile02.png
------------------------------------------------------------------------------
合計 コピー済み スキップ 不一致 失敗 Extras
ディレクトリ: 1 0 1 0 0 0
ファイル: 2 2 0 0 0 0
バイト: 411.7 k 411.7 k 0 0 0 0
時刻: 0:00:00 0:00:00 0:00:00 0:00:00
速度: 7,268,844 バイト/秒
速度: 415.927 MB/分
終了: 2026年8月20日 15:06:51
- robocopyが問題なく完了したことを確認したら、クライアント用EC2にRDPで接続し、以下の手順でFSxの共有フォルダにアクセスします。
# FSxをマウント net use Z: \\<FSxのDNS名>\share # ファイルの存在確認 dir Z:\
- 以下が確認できれば動作確認完了です。
- FSxの共有フォルダにアクセスできること
- robocopyでコピーしたファイルが存在すること
5. robocopy以外の移行方法
- AWSから推奨されているもう1つのデータ移行方法として、AWS DataSyncを利用することもできます。
- 自動で差分が転送されるほか、コンソール画面でスケジュールの設定も可能です。
- 転送データの暗号化・整合性チェックが自動で行われます。
- データの転送量に応じた課金が発生します。
- DataSyncエージェントの導入が必要です。
- robocopyでは、移行対象のフォルダーが多数存在する場合、全てのフォルダーに対して個別にコマンドを実行する必要があり、それに応じてログも生成されます。一方でAWS DataSyncはDataSyncタスクをコンソール画面で一覧で確認できるため、大規模な移行に適しています。
6. まとめ
今回は小規模なデータ移行を想定し、robocopyを利用してEC2のファイルサーバーからFSxへの移行を試しました。
robocopyはWindows標準搭載のツールであるため、環境構築さえ終わってしまえば導入は容易で、実行結果のログも見やすいものでした。
ただ、コスト面やEC2の管理・運用など、要件によってはAWS DataSyncが適している場合もあるかと思います。
小規模であったり、定期的な差分同期が不要な場合にはrobocopyの利用を検討してみてください。
次回はFSx for WindowsのバックアップをAWS Backupで管理してみたいと思います。




