どうも、フリーランスエンジニアのMakotoです。
今回は、Azure File Syncを利用してAzureにファイルを同期する手順をハンズオン形式でご紹介します。Azure File Syncの概要はこちらの記事で紹介しています。
全体像と用語を確認
今回作成する構成はこんな感じ。

Windows ServerはAzureの仮想マシンでも代用できますが、今回はローカルPCのHyper-V上の仮想マシン(Windows Server 2022)を使います。
Azure File Syncで登場する用語(コンポーネント)の意味は次の通りです。
用語 | 意味 |
---|---|
ストレージ同期サービス | Azure File Syncを利用するために最初に作成するリソース |
同期グループ | どことどこを同期させるのかを定義するもの |
クラウドエンドポイント | Fileストレージのファイル共有を指定する |
サーバーエンドポイント | オンプレミスのサーバのパスを指定する |
Azure File Syncエージェント | オンプレミスのサーバにインストールが必要 |
今回実践する内容は公式のチュートリアルをベースにしています。それでは、実際に作成していきましょう!
ファイル共有の作成
ストレージアカウントは作成済みの前提で進めます。まず、Azure側の同期先となるファイル共有を作成します。

shareという名前のファイル共有を作成しました。そこに「CloudFile.txt」という名前でファイルをアップロードしておきます。

仮想マシンに同期フォルダを作成
SV01には D:\FilesToSync というフォルダを作成して「LocalFile.txt」を作成しておきます。
SV02は C:\FilesToSync というフォルダのみ作成して空っぽにしておきます。

ストレージ同期サービスの作成
続いて、ストレージ同期サービスを作成します。

Windows Serverの登録
そして、登録済みサーバーのメニューを開いて「Azure File Syncエージェント」のリンクからエージェントをダウンロードします。URLをコピーして仮想マシン上でダウンロードしたほうが早いです。

エージェントのインストール自体は簡単で「次へ」で進めるだけです。

インストールが完了すると、自動的にサーバを登録するための画面が起動します。まずは、Azureにサインイン。

サインインできたら、サブスクリプション、リソースグループ、ストレージ同期サービスを選択して登録します。(プルダウンで選ぶだけ)

2台ともエージェントのインストール、サーバの登録が完了すると「登録済みサーバー」に登録されます。

同期グループの作成
次に同期グループを作成します。

この時、クラウドエンドポイントとなるファイル共有を指定します。

サーバーエンドポイントの作成
最後にサーバーエンドポイントを作成します。
エージェントをインストールした登録済みサーバーと、同期対象とするフォルダのパスを指定します(デプロイに少し時間がかかります)

デプロイが完了すると「ヘルス」の箇所がグリーンのチェックに変わります。

動作確認
Azure側のファイル共有を見てみると、SV01のファイルが同期されていることがわかります。「.SystemShareInformation」はAzureによって自動的に作成されるフォルダで、重要な同期メタデータが含まれます(削除しないように注意)

SV01、SV02を見てみると、こちらも同期されていることがわかります。

例えば、SV02でファイルを追加したり、既存ファイルをリネームすると、10~20秒くらいでファイル共有、SV01に反映されます。
注意点として、ファイル共有(Azure側)にファイルを追加するなどの変更を加えた場合は即時反映されません。
即時で反映させたい場合は「Invoke-AzStorageSyncChangeDetection」コマンドを実行する必要があります。詳細はこちらの記事をご覧ください。
まとめ
今回は、Azure File Syncを試してみました。
登場する用語の意味がわかると、構成する手順はそれほど難しくなかったです。Windows Serverのみサポートされているサービスですが、簡単にオンプレミスのファイルをクラウドに同期できるのは便利ですね。
それでは、また。