Azureでファイルサーバーを構築する方法

システムが複数のサーバーから構成される場合、ファイル共有サービスが役に立つことがあります。
ファイル共有サービスはサービスの提供側であるサーバーとサービスの利用側であるクライアントから構成され、サービスの提供側であるサーバーは「ファイルサーバー」と呼ばれます。
Microsoft Azure(以下「Azure」と呼びます)はファイル共有サービスとして「Azure Files」を提供しており、Azureが管理するファイルサーバーを利用することができます。
このコラムではAzure Filesの概要について解説すると共に、基本的な使い方を紹介します。

Azure Filesについて

Azure Filesとは何か

Azure FilesはAzureのファイル共有サービスであり、Azure Filesを利用することによって複数の仮想マシンなどの間で同じファイルシステムをネットワーク経由で共有することができます。
このサービスの利用形態はPaaSであり、ファイルサーバーのハードウェアやソフトウェアの保守・管理はAzureの責任において行われるため、ファイルサーバーの構築・運用に要する負荷を軽減することができます。
また、Azure Filesが提供するファイルサーバーはServer Message Block (SMB)プロトコルに対応していて、WindowsやLinuxなどのOSからファイルシステムとしてマウントすることができるため、通常のファイルを扱うときと同様の操作感でファイルを読み書きすることができます。
さらに、Azure FilesはHTTP/HTTPSによるアクセスが可能なREST APIを備えており、プログラムなどからAzure Filesのデータにアクセスすることが容易になっています。

他のストレージサービスとの比較

Azureはストレージサービスとして「Azure Storage」サービスを提供しており、Azure StorageはAzure Filesを含む4つのストレージサービスから構成されます。
これらの4つのストレージサービスの中でも、メッセージストレージの「Azure Queue Storage」やNoSQLデータベースの「Azure Table Storage」はAzure Filesと明らかに用途が異なるので使い分けも容易ですが、オブジェクトストレージの「Azure Blob Storage」はAzure Filesとよく似ているので使い分けに迷うことがあります。
通常、Azure Blob Storageを含むオブジェクトストレージはHTTP/HTTPSによるデータへのアクセスが可能なREST APIを備えていることを特徴としていますが、Azure Filesも同じくREST APIを備えているため、両者の違いはさらに少なくなっています。
どちらを選べば良いかはユースケースによりますが、ファイルシステムによるアクセスが中心であればAzure Filesを利用し、APIによるアクセスが中心であればAzure Blob Storageを選ぶことを、一つの目安として考えることができます。

Azure Filesの使い方

前段では、Azure Filesの概要について解説しました。
先に述べたようにAzureは様々なストレージサービスを提供しており、「習うより慣れろ」の考え方で実際にサービスを利用し違いを体感するほうが早く理解できるかもしれません。
以下、Azure Filesの基本的な使い方として、Azureの仮想マシンサービスの「Azure Virtual Machines」が提供する複数の仮想マシンの間でAzure Filesを利用してファイルを共有する方法を紹介します。

ファイルシステムの作成

まず、Azure Filesを利用するために必要となるストレージアカウントに加え、Azure Filesにおいてファイルサーバーに該当するリソースである「Azureファイル共有」を作成する必要があります。
ストレージアカウントを作成するには、Azure Portalの上側に表示される検索窓に「ストレージ アカウント」と入力するなどしてストレージアカウントの一覧ページへ移動します。

また、Azureファイル共有を作成するためには、ストレージアカウントの詳細ページ内に表示される「ファイル共有」をクリックしてAzureファイル共有の一覧ページへ移動します。

なお、ストレージアカウントの作成方法についての詳しい手順については「Azure Storageとは何か」で紹介しているので、必要に応じて参照してください。

Azureファイル共有を作成した後、Azureファイル共有の詳細ページの上側に表示される「接続」ボタンをクリックすると、接続のためのPowerShellコマンドが表示されるので内容を控えます。

$connectTestResult = Test-NetConnection -ComputerName azurefilestestntteast.file.core.windows.net -Port 445
if ($connectTestResult.TcpTestSucceeded) {
    # 再起動時にドライブが維持されるように、パスワードを保存する
    cmd.exe /C "cmdkey /add:`"azurefilestestntteast.file.core.windows.net`" /user:`"Azure\azurefilestestntteast`" /pass:`"MLScNbwhMk3z+6lOCh4gL5LGs2BJz5VP2ihJIvsuVLA1JtkGPCREAmMG1xxQ11vgt+ThhXP7UHwjQ6ZfAFN5aw==`""
    # ドライブをマウントする
    New-PSDrive -Name Z -PSProvider FileSystem -Root "\\azurefilestestntteast.file.core.windows.net\my-file-share"-Persist
} else {
    Write-Error -Message "Unable to reach the Azure storage account via port 445. Check to make sure your organization or ISP is not blocking port 445, or use Azure P2S VPN, Azure S2S VPN, or Express Route to tunnel SMB traffic over a different port."
}

1台目の仮想マシンからファイルを書き込み

次に、1台目の仮想マシンを起動してリモートデスクトップ接続した後、ファイルシステムをマウントしてテストファイルを書き込みます。
仮想マシンを起動するには、Azure Portalの上側に表示される検索窓に「Virtual Machines」と入力するなどして仮想マシンの一覧ページへ移動します。

仮想マシンの起動時、仮想マシンを作成するリージョンはストレージアカウントを作成したリージョンと同じにするように留意します。

仮想マシンへリモートデスクトップ接続した後、前の手順で控えたPowerShellのコマンドを実行してファイルシステムをマウントします。

マウントが完了した後、エクスプローラを起動してナビゲーションに含まれる「This PC」を展開し、Zドライブを選んでクリックします。

Zドライブへ移動した後、コンテキストメニューを使用するなどしてテストファイルを作成します。

この例ではファイル名を「test.txt」とし、ファイルの内容を「Hello Azure Files」としました。

2台目の仮想マシンからファイルを読み込み

最後に、2台目の仮想マシンを起動してリモートデスクトップ接続した後、ファイルシステムをマウントしてテストファイルを読み込みます。
1台目のときと同様の手順で仮想マシンを起動してファイルシステムをマウントし、エクスプローラを起動してZドライブへ移動します。

Zドライブにテストファイルが存在することを確認し、また、テストファイルを開いてファイルの内容を確認します。

クリーンアップ

作成したストレージアカウントと2台の仮想マシンを削除します。
これらのリソースを同じリソースグループに含めた場合、リソースグループを削除するだけで全てのリソースを一括で削除することができます。
なお、これらのリソースを別々のリソースグループに含めた場合、それぞれのリソースグループを一つ一つ削除します。

おわりに

AzureではAzure Filesを利用して手軽にファイルサーバーを構築・運用することができます。
複数のマシンでファイルを共有したい場合、Azure Filesを利用してみると良いでしょう。

移行準備段階で知っておくべきMicrosoft Azureの
サービスを学び、具体的にクラウド検討を考える!

ネットワークからクラウドまでトータルサポート!!
NTT東日本のクラウド導入・運用サービスを確認してください!!

Amazon Web Services(AWS)、Microsoft Azureの
導入支援サービスのご相談、お問い合わせをお待ちしております。

ページ上部へ戻る