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 アカウントに同期されます。
Adam Bertram is a 20-year veteran of IT. He’s currently an automation engineer, blogger, independent consultant, freelance writer, author, and trainer. Adam focuses on DevOps, system management, and automation technologies as well as various cloud platforms. He is a Microsoft Cloud and Datacenter Management MVP and efficiency nerd that enjoys teaching others a better way to leverage automation.
より優れた業務アプリケーションやウェブサイトの開発に役立つ、ニュース、情報、チュートリアルをご案内します。