Azure File Sync 虎の巻 ー 其ノ参

はじめに

データを異なるサイトに同期したい場合に有効かつ便利な「Azure File Sync」の設計、構築、運用、トラブルシュートまでお役立ちな情報を全5回に渡りご紹介して参ります。

第3回目の本記事では、サーバーエンドポイントにフォーカスしたサイジングやネットワークの設計についてご説明いたします。

過去の記事は下記の通りです。

第1回目:

blog.jbs.co.jp

第2回目:

blog.jbs.co.jp

サーバーエンドポイントのサイジング

サーバーエンドポイントに必要なスペックは、データの更新量とファイル数に左右されます。

以下公開情報に、推奨されるCPUコア数とメモリが掲載されています。

learn.microsoft.com

ファイル・フォルダの数が多いとメモリを、データ更新が多いとCPUを消費します。

初期同期中は大きめのサイズとし、初期同期以降はスケールダウンすることがお奨めです。

名前空間データはサーバー側のメモリに格納するため、サーバーのサイジングは名前空間データのサイズに基づきます。名前空間とは即ちファイルとフォルダのことです。

公開情報にある「サーバーエンドポイント Aが1000 万オブジェクト、サーバー エンドポイント B が1000 万オブジェクト = 2000 万オブジェクト(同期するファイル・フォルダの合計数)」を例とした場合、名前空間データサイズは20,000,000 x 512 KiBで、約 9.53 TiBのため「8 個の CPU と16 GiB メモリ、初期移行時は 48 GiB のメモリ」が推奨されます。

そのため、名前空間のサイズが表内の中間値の場合は、1段階大きいサイズを選択する方が無難です。不安であれば、大きめのサイズを意識して選択することをお勧めします。Storage Sync Agentの動作として、同期データがあればあるほど頑張って動いて、ありったけのCPUとメモリを喰らいます。

エージェント導入で気を付けること

さて、第1回目の記事ではStorage Sync Agentを導入する流れをご紹介いたしました。こちらでは、エージェント導入においてつまずかないように注意する点をご説明します。

「検証用の環境では上手く行ったのに、何故エラーに?!」と陥ってしまった場合は、これらの設定を順に確認してください。

Webブラウザに関する設定

サーバーエンドポイントのOS設定として、Internet Explorerの「セキュリティ強化の構成」、Edgeの「Webでのセキュリティの強化」を無効化が必須です。

エージェントを導入しサーバーエンドポイントとして構成した後は、設定を有効化しても問題ありません。

Windows Firewallの設定

デフォルトでは意識しなくて良いのですが、OSのWindows Defender Firewallでインターネットへの送信を開放する必要があります。NSGで送信先を制御している場合も然りです。

通信経路と認証の制御

エージェントを導入する先がAzureの仮想マシンであり、かつAzure仮想ネットワークの設定がデフォルトであれば問題はありません。

一方、エージェントを導入する先がオンプレミス環境のサーバーであったり、Azureの仮想マシンであってもオンプレミス環境に寄せて作りこまれている場合は、通信経路と認証の制御にご注意下さい。

具体的には以下3点が挙げられます。

  • プロキシを利用している
  • Firewallを利用している
  • Azure ADで条件付きアクセスの制御をしている

インターネットへの通信がプロキシ経由の場合やFirewallを間に挟む場合は、送信必須のエンドポイントへの宛先を許可する必要があります。また、プロキシ経由の場合はエージェント導入時にプロキシサーバーを指定する必要があります。

また、エージェントが正常に動作するためには、エージェントを導入したサーバー上でAzure ADテナントへの認証が必要になります。

よって、条件付きアクセスを通信元で制御している場合は、対象のAzure VMにPublic IPアドレスを割り当て、Azure ADの条件付きアクセスで該当IPを許可する等の操作が必要となります。

一方、オンプレミスであれば、インターネットへ出る際のPublic IPに対して、条件付きアクセスの許可設定が必要となります。

エージェント導入の際には、サーバーエンドポイントからインターネット経由でAzure ADへ認証し、Azure File Syncのエンドポイントにアクセスをする通信が通るように準備、確認をしておくことが重要です。

マルウェア対策ソフト

OSにマルウェア対策ソフトが導入されておりStorage Sync Agentが見事に引っ掛かったケースも考えられます。

該当する場合は、Storage Sync Agentサービスないしエージェントの実行フォルダを除外対象に追加してください。

エージェントが通信するエンドポイント

エージェントが送信先として利用する必須エンドポイントは通常は下記の通りです*1。全てTCP80もしくは443で特殊なポートは使用しません。

■Storage Sync Agentから通信する必須エンドポイント

Azure Resource Manager         https://management.azure.com
Azure Active Directory  https://login.windows.net
https://login.microsoftonline.com
https://graph.microsoft.com/
https://secure.aadcdn.microsoftonline-p.com
Azure ストレージ        *.core.windows.net
Azure File Sync         *.one.microsoft.com
*.afs.azure.net
Microsoft PKI https://www.microsoft.com/pki/mscorp/cps
http://crl.microsoft.com/pki/mscorp/crl/
http://mscrl.microsoft.com/pki/mscorp/crl/
http://ocsp.msocsp.com
http://ocsp.digicert.com/
http://crl3.digicert.com/
Microsoft Update  *.update.microsoft.com
*.download.windowsupdate.com
*.ctldl.windowsupdate.com
*.dl.delivery.mp.microsoft.com
*.emdl.ws.microsoft.com

(引用元)

learn.microsoft.com

どちらを通るか通信経路

データ同期の通信プロトコルは2種類あります。

  • ACLやタイムスタンプの情報を同期するAzure File Sync同期プロトコル
  • 実データを同期するFileRESTプロトコル

いずれもTCP443ポートを利用し、Azure Filesをサーバーエンドポイントにマウントする必要はありません。

また、データ同期の経路も2種類あります。

  • インターネット経由
  • プライベートエンドポイント経由

デフォルトはインターネット経由でアクセスします。

もし、Express RouteやVPN経由でオンプレミスのサーバーエンドポイントからクラウドエンドポイントへデータ同期をする場合は、ストレージアカウントとストレージ同期サービスのプライベートエンドポイントを設定する必要があります。

ストレージ同期サービスのプライベートエンドポイント化はエージェントが10.1以降が必須ですが、古いバージョンですので気にせず良いです。(2023年1月時点で15.2が最新です)

ストレージアカウントはネットワークの例外「信頼されたサービスの一覧にあるAzureサービスがこのストレージアカウントにアクセスすることを許可します」をチェックオンにすることでAzure File Syncからアクセスできるようになります。

ただし、プライベートエンドポイントを設定しても対象はデータ同期の通信のみが対象となります。前述した「Storage Sync Agentから通信する必須エンドポイント」にある表の殆どはインターネット経由の通信となるためご注意下さい。

ネットワーク制限について

データ同期の帯域利用を曜日、時間帯で制限することが可能です。例えば、初回同期で営業時間内は帯域を制限し、夜間、非営業日は制限をかけない、といった運用が実現可能です。

設定確認、変更はPowershell実行のみです。

例)月~金 9:00-18:00は100Mbpsを上限とする場合

Import-Module “[Storage Sync Agentインストールフォルダ]\StorageSync.Management.ServerCmdlets.dll"

New-StorageSyncNetworkLimit -Day Monday, Tuesday, Wednesday, Thursday, Friday -StartHour 9 -EndHour 18 -LimitKbps 100000

24時間指定の場合は、 -StartHourと-EndHourを0に指定します。

設定した制限を確認するには下記のPowershellを実行します。(設定に同じく実行前にStorageSync.Management.ServerCmdlets.dllのインポートをお忘れなく。)

Get-StorageSyncNetworkLimit

設定毎にUUID形式のIDが出力されますので、設定を削除する場合は下記のPowershellを実行します。

Remove-StorageSyncNetworkLimit -Id [UUID]

まとめ

長文になってしまい恐縮ですが、本記事でご紹介した各確認項目について表形式で整理しました。

導入前の設計段階で検討、現調の際にお役に立てれば幸いです。

■導入前に確認するポイント

サーバーエンドポイント  サイジング VMであれば初回同期期間はスケールアップで大き目のサイズを選び運用ではスケールダウンする(推奨)
インターネットへの通信 ファイアウォール、プロキシを経由するか、NSG制御有無、OSのDefenderFirewall制御有無、エージェントがウイルス対策の除外対象である
必要エンドポイントへの通信 各エンドポイントへの通信 必要なエンドポイントへの通信が可能である
エージェント インストール時はIEのセキュリティ強化設定、EdgeのWebセキュリティ強化設定を一時的に解除すること
データ同期の通信 通信経路 インターネット経由か、オンプレミスからExpressRouteもしくはVPNなど内部通信か
帯域制御 ネットワーク制限を設定するか
AzureAD 条件付きアクセス サーバーエンドポイントからアクセス可能か

*1:Governmentは除く

執筆担当者プロフィール
熊田 沙代

熊田 沙代(日本ビジネスシステムズ株式会社)

かれこれサーバーエンジニア歴10数年。WindowsServer/Linux/OSS/vSphere/Hyper-Vと器用貧乏に経験し、現在はAzure IaaS/PaaSをメインとしたアーキテクトを担当してます。TEAM NACSのファンです。

担当記事一覧