Azure File Sync は、オンプレミスファイルを Azure Storage に同期することを可能にする、新しいサービスです。(Skype for Business のように) DropBox for Business と考えると理解しやすいかもしれません。ファイルをオンプレミスサーバーのフォルダにドロップするだけで、自動的に Azure にアップロードできます。
最初に、すべての前提条件を満たしていることを確認しましょう。以下が必要になります。
準備が整ったら、Azure File Sync を初めてセットアップするための手順を実行しましょう。
最初のステップは、[IE セキュリティ強化の構成] を無効にすることです。これは初期登録のために必要であり、あとから有効にできます。GUIを介して実行できますが、それではつまらないので、簡単な PowerShell スクリプトを使って次のようにやってみましょう。
$AdminKey = 'HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}'
$UserKey = 'HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}'
Set-ItemProperty -Path $AdminKey -Name 'IsInstalled' -Value 0
Set-ItemProperty -Path $UserKey -Name 'IsInstalled' -Value 0
Stop-Process -Name Explorer
これも Azure Portal を介して実行できますが、Webページでクリックしながら進めるより、数行のコードを実行するほうがはるかに簡単です。このコードを実行するには、ファイルを同期するストレージアカウント名とそれが存在するリソースグループ名を知っておく必要があります。ここで使うストレージアカウントは techsnips、リソースグループは TechSnipsBackEnd です。
ストレージアカウント情報を変数に格納したら、次にファイル共有を作成し、下に示すように ipswitchfileshare という名前をつけます。すべて小文字であることを確認してください。
$resourceGroup = 'TechSnipsBackEnd'
$storageAccountName = 'techsnips'
$storageAccount = Get-AzureRmStorageAccount -ResourceGroupName $resourceGroup -Name $storageAccountName
$storageKey = (Get-AzureRmStorageAccountKey -ResourceGroupName $storageAccount.ResourceGroupName -Name $storageAccount.StorageAccountName | select -first 1).Value
$storageContext = New-AzureStorageContext -StorageAccountName $storageAccount.StorageAccountName -StorageAccountKey $storageKey
$share = New-AzureStorageShare -Name ipswitchfileshare -Context $storageContext
次は、サーバーにエージェントをインストールします。PowerShell コンソールに入っていますから、またショートカットとして、PowerShell でダウンロードとインストールを行います。下のように、Microsoft のインストーラをダウンロードし、インストールウィザードを起動するためにそれを呼び出します。
$downloadUri = 'https://download.microsoft.com/download/1/8/D/18DC8184-E7E2-45EF-823F-F8A36B9FF240/StorageSyncAgent_V3_WS2016.EXE'
Invoke-WebRequest -Uri $downloadUri -OutFile 'C:\filesyncagent.exe'
Invoke-Item 'C:\filesyncagent.exe'
インストールウィザードが起動されるので、指示の通りに進んで、デフォルトを使ってすべてのステップをたどってください。最後に、ウィザードは開いている PowerShell コンソールを閉じるように求めてきます。PowerShell コンソールを閉じて、[インストール] をクリックするとインストールが始まります。
次に、Storage Sync サービスをデプロイする必要があります。これにも PowerShell を使用することができますが、Azure サブスクリプションが複数ある場合は Azure サブスクリプションの名前を知っている必要があります。サブスクリプションの名前は Azure ポータルにあります。
また、サービスをデプロイする地域とリソースグループについても知っておく必要があります。地域はストレージアカウントと同じ地域である必要があり、ここでは、”East US 2” を使います。リソースグループは SharedLab とします。
$agentPath = 'C:\Program Files\Azure\StorageSyncAgent'
$region = 'East US 2' ## This needs to be in the same region as the storage account
$resourceGroup = 'SharedLab'
$storageSyncName = 'TechSnipsStorageSync'
Import-Module "$agentPath\StorageSync.Management.PowerShell.Cmdlets.dll"
$subscription = Get-AzureRmSubscription -SubscriptionName 'TechSnips'
Login-AzureRmStorageSync –SubscriptionId $subscription.Id -ResourceGroupName $resourceGroup -TenantId $subscription.TenantID -Location $region
New-AzureRmStorageSyncService -StorageSyncServiceName $storageSyncName
Storage Syncサービスを作成したら、次に Storage Sync サーバーを登録する必要があります。Register-AzureRmStorageSyncServer コマンドを使用します。
$registeredServer = Register-AzureRmStorageSyncServer -StorageSyncServiceName $storageSyncName
次のステップは同期グループを作成することです。同期グループで、一連のファイルの同期トポロジを定義します。同期グループ内のエンドポイントは互いに同期するよう設定されます。次のように、New-AzureRmStorageSyncGroup コマンドを使用してこの同期グループを作成します。
$syncGroupName = 'TechSnipsSyncGroup'
New-AzureRmStorageSyncGroup -SyncGroupName $syncGroupName -StorageSyncService $storageSyncName
すべての同期グループはクラウドのエンドポイントを必要とするので、それを作成する必要があります。PowerShell で、New-AzureRmStorageSyncCloudEndpoint コマンドを使用して、これを行うことができます。前に作成したリソースの名前を再利用します。
$parameters = @{
StorageSyncServiceName = $storageSyncName
SyncGroupName = $syncGroupName
StorageAccountResourceId = $storageAccount.Id
StorageAccountShareName = 'ipswitchfileshare'
}
New-AzureRmStorageSyncCloudEndpoint @parameters
クラウドのエンドポイントを作成したら、最後にサーバーのエンドポイントを作成します。これは、ファイルの同期元となる登録済みサーバー上の場所を指定するリソースです。以下では、サーバーのエンドポイントを作成するのに、これまで作成したものと同じ変数を使用しています。ファイルの同期元となるフォルダーパスを ServerLocalPath パラメータで指定します。
New-AzureRmStorageSyncServerEndpoint -StorageSyncServiceName $storageSyncName -SyncGroupName $syncGroupName -ServerId $registeredServer.Id -ServerLocalPath 'C:\FileSyncDemo'
ここまで来たら、ファイルを “C:” のフォルダに配置すると、それらのファイルは自動的に Azure Storage アカウントに同期されます。
Subscribe to get all the news, info and tutorials you need to build better business apps and sites