ローカルファイルサーバー上で単純な Windows のファイル共有を使用することで都合がいいのは、ファイルの転送をサポートする機能が Windows に組み込まれていることです。共有は SMB 用に作成されているため、Windows ドライブをマップしたり、UNC パスに移動したりできます。Microsoft Azure などのクラウドサービスが登場してストレージオプションが大幅に増え、クラウドストレージアカウントにファイルを保存できるようになりましたが、オンプレミスの SMB 共有のようには簡単ではありませんでした。
Azure ファイル共有で、Azure ストレージアカウントとの間のファイル転送がはるかに簡単になりました。Azure ファイル共有を使用すると、オンプレミスの SMB 共有と同じようなファイル共有ができますが、ローカルストレージではなく、Azure ストレージによってバックアップされます。
どのように設定するかをチェックしましょう。まず、Azure サブスクリプションがあることを確認し、Install-Module AzureRm を実行して AzureRm PowerShell モジュールをダウンロードしてインストールしてください。そして、PowerShell コンソールで Connect-AzureRmAccount を実行し、適切な権限を持つユーザーで認証を得ておきます。
最初に、このブログで使うものすべて保持するためにリソースグループを作成します。コマンド New-AzureRmResourceGroup を使用して、IpswitchDemo という新しいリソースグループを作成することができます。
リソースグループを作成したら、ファイルをやり取りするためにストレージアカウントが必要になります。既存のものがあればそれを使用することもできますが、まだ持っていない場合は、New-StorageAccount コマンドを使用してストレージアカウントを作成できます。ここでは、IpswitchDemo というストレージアカウントを作成しておき、作成したリソースグループ内に配置します。
>PS> New-AzureRmStorageAccount -Name 'ipswitchdemo' -ResourceGroupName 'IpswitchDemo' -Location 'East US' -Type 'Standard_LRS'
ストレージアカウントが用意できれば、ファイル共有を作成できます。まず、Get-AzureRmStorageAccount を使用してストレージアカウントの出力を変数に割り当てる必要があります。
PS> $storageAccount = Get-AzureRmStorageAccount -ResourceGroupName 'IpswitchDemo' -Name 'ipswitchdemo'
次に、ストレージアカウントのコンテキストオブジェクトを作成する必要があります。そのためには、ストレージアカウントのストレージキーを取得してから、ストレージコンテキストを変数に割り当てて、ファイル共有の作成時に使用できるようにします。
PS> $storageKey = (Get-AzureRmStorageAccountKey -ResourceGroupName $storageAccount.ResourceGroupName -Name $storageAccount.StorageAccountName | select -first 1).Value
PS> $storageContext = New-AzureStorageContext -StorageAccountName $storageAccount.StorageAccountName -StorageAccountKey $storageKey
これで、ファイル共有を作成する準備が整いました。New-AzureStorageShare コマンドを使用して Azure ファイル共有を作成し、ファイル共有の名前と、取得したストレージコンテキストを渡します。
PS> New-AzureStorageShare -Name ipswitchfileshare -Context $storageContext
File End Point: https://ipswitchdemo.file.core.windows.net/
Name LastModified IsSnapshot SnapshotTime
---- ------------ ---------- ------------
ipswitchfileshare 9/22/18 3:57:49 PM +00:00 False
エラーが受信されず、上記のような出力が表示されたら、Azure ファイル共有は正しく作成されています。この時点で、さらに一歩進んで、ファイル共有をローカルドライブレターにマップすることもできます。
ローカルドライブを作成するには、作成されたストレージアカウントのストレージキーを Azure\ipswitchdemo というユーザーアカウントのパスワードとして使用して、Azure の資格情報を収集する必要があります。
PS> $secKey = ConvertTo-SecureString -String $storageKey -AsPlainText -Force
PS> $credential = New-Object System.Management.Automation.PSCredential -ArgumentList "Azure\$($storageAccount.StorageAccountName)", $secKey
オブジェクトを作成したら、PowerShell ドライブを作成できるようになります。作成した PSCredential オブジェクトとオプションの Persist パラメータを使用して、UNC パスをルートの値として提供することにより、以下のように PowerShell ドライブを作成できます。
New-PSDrive -Name X -PSProvider FileSystem -Root "\\$($storageAccount.StorageAccountName).file.core.windows.net\ipswitchfileshare" -Credential $credential -Persist
すべてうまくいった場合は、新しいドライブレター、X、が利用可能になっているはずです。
Subscribe to get all the news, info and tutorials you need to build better business apps and sites