クイックスタート: SMB Azure ファイル共有を作成して使用する
[アーティクル] 08/29/2024
17 人の共同作成者
フィードバック
この記事の内容
Azure Files は、Microsoft の使いやすいクラウド ファイル システムです。 Windows、Linux、macOS オペレーティング システムで SMB Azure ファイル共有をマウントできます。 この記事では、Azure portal、Azure CLI、または Azure PowerShell のいずれかを使用して Azure ファイル共有を作成する方法について説明します。
適用対象
このクイックスタートは SMB Azure ファイル共有にのみ適用されます。 Standard SMB ファイル共有および Premium SMB ファイル共有では、ローカル冗長ストレージ (LRS) とゾーン冗長ストレージ (ZRS) がサポートされます。 Standard ファイル共有では、geo 冗長ストレージ (GRS) オプションと geo ゾーン冗長ストレージ (GZRS) オプションもサポートされます。 詳細については、「Azure Files の冗長性 」を参照してください。
ファイル共有の種類
SMB
NFS
Standard ファイル共有 (GPv2)、LRS/ZRS
Standard ファイル共有 (GPv2)、GRS/GZRS
Premium ファイル共有 (FileStorage)、LRS/ZRS
作業の開始
Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
Azure Cloud Shell
Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。
Azure Cloud Shell を開始するには、以下のようにします。
オプション
例とリンク
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。
Azure Cloud Shell を使用するには、以下のようにします。
Cloud Shell を開始します。
コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。
Windows と Linux では Ctrl +Shift +V キーを選択し、macOS では Cmd +Shift +V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。
Enter キーを選択して、コードまたはコマンドを実行します。
PowerShell をローカルにインストールして使用する場合は、Azure PowerShell モジュール Az バージョン 7.0.0 以降が必要になります。 使用可能な最新バージョンをインストールすることをお勧めします。 実行中の Azure PowerShell モジュールのバージョンを確認するには、Get-InstalledModule Az
を実行します。 アップグレードする必要がある場合は、Azure PowerShell モジュールのインストール に関するページを参照してください。 PowerShell をローカルで実行している場合は、Login-AzAccount
を実行して Azure アカウントにログインする必要もあります。 多要素認証を使用するには、Login-AzAccount -TenantId <TenantId>
のような Azure テナント ID を指定する必要があります。
前提条件
この記事では、Azure CLI のバージョン 2.0.4 以降が必要です。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。
既定では、Azure CLI コマンドは JavaScript Object Notation (JSON) を返します。これは、REST API からメッセージを送受信する標準的な方法です。 JSON 応答を操作しやすくするために、この記事のいくつかの例では、Azure CLI コマンドで query パラメーターを使用しています。 このパラメーターでは、JSON を解析するために JMESPath クエリ言語 が使用されます。 JMESPath クエリ言語に従って Azure CLI コマンドの結果を使用する方法の詳細については、JMESPath のチュートリアル を参照してください。
ストレージ アカウントの作成
ストレージ アカウントは、Azure ファイル共有またはその他のストレージ リソース (BLOB やキューなど) をデプロイできるストレージの共有プールです。 1 つのストレージ アカウントに格納できる共有の数に制限はありません。 1 つの共有に格納できるファイルの数に制限はなく、ストレージ アカウントの容量の上限までファイルを格納できます。
Azure portal を使ってストレージ アカウントを作成するには:
[Azure サービス] で、 [ストレージ アカウント] を選択します。
[+ Create] を選択してストレージ アカウントを作成します。
[プロジェクトの詳細] で、ストレージ アカウントを作成する Azure サブスクリプションを選びます。 利用しているサブスクリプションが 1 つだけの場合は、それが既定値となります。
新しいリソース グループを作成する場合は、[新規作成] を選択し、「myexamplegroup 」などの名前を入力します。
[インスタンスの詳細] で、ストレージ アカウントの名前を指定します。 グローバルに一意の名前にするために、いくつかの乱数を追加する必要がある場合があります。 ストレージ アカウント名は、すべて小文字と数字で、3 から 24 文字にする必要があります。 ストレージ アカウント名をメモしておきます。 これは後で使用します。
[リージョン] で、ストレージ アカウントを作成するリージョンを選択します。
[Primary サービス] で、[Azure Files] を選択します。
[パフォーマンス] では、既定値の [Standard] を選択したままにします。
[冗長] では [ローカル冗長ストレージ (LRS)] を選びます。
[確認 + 作成] を選んで、設定を確認します。 Azure で最終的な検証が実行されます。
検証が完了したら、[作成] を選択します。 デプロイが進行中であることを示す通知が表示されます。
デプロイが完了したことを示す通知が表示されたら、[リソースに移動] を選びます。
PowerShell - リソース グループの作成
リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 まだ Azure リソース グループがない場合は、New-AzResourceGroup コマンドレットを使って新しいものを作成します。 ストレージ アカウントを作成するにはリソース グループが必要です。
次の例では、myResourceGroup という名前のリソース グループを米国西部 2 リージョンに作成します。
$resourceGroupName = "myResourceGroup"
$region = "westus2"
New-AzResourceGroup `
-Name $resourceGroupName `
-Location $region | Out-Null
PowerShell - ストレージ アカウンの作成
ストレージ アカウントは、Azure ファイル共有のデプロイに使用できるストレージの共有プールです。
この例では、New-AzStorageAccount コマンドレットを使用してストレージ アカウントを作成します。 ストレージ アカウントの名前は mystorageaccount<random number> で、そのストレージ アカウントへの参照は変数 $storageAcct に格納されます。 ストレージ アカウント名は一意である必要があります。そのため、Get-Random
を使用し、名前にランダムな数字を追加して一意にします。
$storageAccountName = "mystorageacct$(Get-Random)"
$storageAcct = New-AzStorageAccount `
-ResourceGroupName $resourceGroupName `
-Name $storageAccountName `
-Location $region `
-Kind StorageV2 `
-SkuName Standard_LRS `
-EnableLargeFileShare
CLI - リソース グループの作成
リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 まだ Azure リソース グループがない場合は、az group create コマンドを使用して作成できます。 ストレージ アカウントを作成するにはリソース グループが必要です。
次の例では、myResourceGroup という名前のリソース グループを米国西部 2 に作成します。
export resourceGroupName="myResourceGroup"
region="westus2"
az group create \
--name $resourceGroupName \
--location $region \
--output none
CLI - ストレージ アカウンの作成
ストレージ アカウントは、Azure ファイル共有のデプロイに使用できるストレージの共有プールです。
次の例では、az storage account create コマンドを使用してストレージ アカウントを作成します。 ストレージ アカウント名は一意である必要があります。そのため、$RANDOM
を使用し、名前にランダムな数字を追加して一意にします。
export storageAccountName="mystorageacct$RANDOM"
az storage account create \
--resource-group $resourceGroupName \
--name $storageAccountName \
--location $region \
--kind StorageV2 \
--sku Standard_LRS \
--enable-large-file-share \
--output none
Azure ファイル共有を作成する
Azure ファイル共有を作成するには:
ダッシュボードからストレージ アカウントを選択します。
サービス メニューの [データ ストレージ] で [ファイル共有] を選びます。
[ファイル共有] ページの上部にあるメニューで [+ ファイル共有] を選びます。 [新しいファイル共有] ページが表示されます。
[名前] で「myshare 」と入力します。 ファイル共有名の文字は小文字、数字、シングル ハイフンである必要があり、先頭と末尾は小文字または数字にする必要があります。 名前に 2 つの連続するハイフンを含めることはできません。 ファイル共有とファイルの名前付けの詳細については、「共有、ディレクトリ、ファイル、およびメタデータの名前付けおよび参照 」を参照してください。
[アクセス層] には [トランザクションが最適化されました] をオンのままにします。
[バックアップ] タブを選択します。既定では、Azure portal を使用して Azure ファイル共有を作成すると、バックアップが有効になります 。 ファイル共有のバックアップを無効にする場合は、[バックアップの有効化] チェックボックスをオフにします。 バックアップを有効にする場合は、既定値のままにするか、ストレージ アカウントと同じリージョンとサブスクリプションで新しい Recovery Services コンテナーを作成します。 新しいバックアップ ポリシーを作成するには、[新しいポリシーの作成] を選択します。
[確認と作成] を選択し、[作成] を選択して Azure ファイル共有を作成します。
ストレージ アカウントを作成したので、最初の Azure ファイル共有を作成できます。ファイル共有は、New-AzRmStorageShare コマンドレットを使用して作成します。 この例では、1024 GiB のクォータを使用して、myshare という名前の共有を作成します。 クォータは最大 100 TiB にすることができます。
$shareName = "myshare"
New-AzRmStorageShare `
-StorageAccount $storageAcct `
-Name $shareName `
-EnabledProtocol SMB `
-QuotaGiB 1024 | Out-Null
ストレージ アカウントを作成したので、最初の Azure ファイル共有を作成できます。ファイル共有は、az storage share-rm create コマンドを使用して作成します。 この例では、1024 GiB のクォータを使用して、myshare という名前の共有を作成します。 クォータは最大 100 TiB にすることができます。
shareName="myshare"
az storage share-rm create \
--resource-group $resourceGroupName \
--storage-account $storageAccountName \
--name $shareName \
--quota 1024 \
--enabled-protocols SMB \
--output none
ディレクトリを作成する
Azure ファイル共有のルートで myDirectory という名前の新しいディレクトリを作成するには:
[ファイル共有の設定] ページで、myshare ファイル共有を選びます。 ファイル共有のページが開き、"ファイルが見つからない" ことが示されます。
ページ上部のメニューで、[+ ディレクトリの追加] を選択します。 [新しいディレクトリ] ページが表示されます。
「myDirectory 」と入力し、[OK] を選択します。
Azure ファイル共有のルートで myDirectory という名前の新しいディレクトリを作成するには、New-AzStorageDirectory コマンドレットを使用します。
New-AzStorageDirectory `
-Context $storageAcct.Context `
-ShareName $shareName `
-Path "myDirectory"
Azure ファイル共有のルートに myDirectory という名前の新しいディレクトリを作成するには、az storage directory create
コマンドを使用します。
Note
コマンドで資格情報を指定しない場合、Azure CLI によってストレージ アカウント キーのクエリが実行されます。 --account-key $storageAccountKey
などの変数を使用するか、--account-key "your-storage-account-key-here"
などのプレーン テキストでコマンドでストレージ アカウント キーを指定することもできます。
az storage directory create \
--account-name $storageAccountName \
--share-name $shareName \
--name "myDirectory" \
--output none
ファイルをアップロードする
まず、アップロードするファイルを作成または選択する必要があります。 これは、必要に応じた方法で実行します。 アップロードするファイルを決定したら、次の手順に従います。
myDirectory ディレクトリを選択します。 myDirectory パネルが開きます。
上部のメニューで、[アップロード] を選択します。 [ファイルのアップロード] パネルが開きます。
フォルダー アイコンを選択して、ローカル ファイルを参照するためのウィンドウを開きます。
ファイルを選択して、 [開く] を選択します。
[ファイルのアップロード] ページで、ファイル名を確認して [アップロード] を選択します。
完了したら、ファイルが myDirectory ページの一覧に表示されます。
Set-AzStorageFileContent コマンドレットを使用してファイルをアップロードする方法を示すには、最初に PowerShell Cloud Shell のスクラッチ ドライブ内に、アップロードするファイルを作成する必要があります。
この例では、スクラッチ ドライブ上の新しいファイルに現在の日付と時間を挿入してから、そのファイルをファイル共有にアップロードします。
# this expression will put the current date and time into a new file on your scratch drive
cd "~/CloudDrive/"
Get-Date | Out-File -FilePath "SampleUpload.txt" -Force
# this expression will upload that newly created file to your Azure file share
Set-AzStorageFileContent `
-Context $storageAcct.Context `
-ShareName $shareName `
-Source "SampleUpload.txt" `
-Path "myDirectory\SampleUpload.txt"
PowerShell をローカルで実行している場合、~/CloudDrive/
を実際のマシンに存在するパスに置き換えます。
ファイルのアップロード後、Get-AzStorageFile コマンドレットを使用して、ファイルが Azure ファイル共有にアップロードされたことを確認できます。
Get-AzStorageFile `
-Context $storageAcct.Context `
-ShareName $shareName `
-Path "myDirectory\" | Get-AzStorageFile
az storage file upload
コマンドを使用してファイルをアップロードする方法を示すために、最初に Cloud Shell のスクラッチ ドライブ上に、アップロードするファイルを作成します。 次の例では、ファイルを作成してアップロードします。
cd ~/clouddrive/
date > SampleUpload.txt
az storage file upload \
--account-name $storageAccountName \
--share-name $shareName \
--source "SampleUpload.txt" \
--path "myDirectory/SampleUpload.txt"
Azure CLI をローカルで実行している場合は、~/clouddrive
を実際のマシンに存在するパスに置き換えてください。
ファイルのアップロード後、az storage file list
コマンドを使用して、ファイルが Azure ファイル共有にアップロードされたことを確認できます。
az storage file list \
--account-name $storageAccountName \
--share-name $shareName \
--path "myDirectory" \
--output table
ファイルをダウンロードする
ファイルを右クリックして [ダウンロード] を選ぶと、アップロードしたファイルのコピーをダウンロードできます。 正確なエクスペリエンスは、使用しているオペレーティング システムとブラウザーによって異なります。
Get-AzStorageFileContent コマンドレットを使用して、アップロードしたファイルのコピーを Cloud Shell のスクラッチ ドライブにダウンロードできます。
# Delete an existing file by the same name as SampleDownload.txt, if it exists because you've run this example before.
Remove-Item `
-Path "SampleDownload.txt" `
-Force `
-ErrorAction SilentlyContinue
Get-AzStorageFileContent `
-Context $storageAcct.Context `
-ShareName $shareName `
-Path "myDirectory\SampleUpload.txt" `
-Destination "SampleDownload.txt"
ファイルのダウンロード後、Get-ChildItem
コマンドレットを使用して、ファイルが PowerShell Cloud Shell のスクラッチ ドライブにダウンロードされたことを確認できます。
Get-ChildItem | Where-Object { $_.Name -eq "SampleDownload.txt" }
az storage file download
コマンドを使用して、アップロードしたファイルのコピーを Cloud Shell のスクラッチ ドライブにダウンロードできます。
# Delete an existing file by the same name as SampleDownload.txt, if it exists, because you've run this example before
rm -f SampleDownload.txt
az storage file download \
--account-name $storageAccountName \
--share-name $shareName \
--path "myDirectory/SampleUpload.txt" \
--dest "./SampleDownload.txt" \
--output none
リソースをクリーンアップする
作業が終わったら、リソース グループを削除できます。 リソース グループを削除すると、ストレージ アカウント、Auzre ファイル共有、およびリソース グループ内にデプロイしたリソースがすべて削除されます。
ストレージ アカウントにロックがある場合は、まずそれらを削除する必要があります。 ストレージ アカウントに移動し、[設定] >[ロック] を選びます。 一覧にロックが表示されている場合は削除します。
リソース グループの削除を許可する前に、Azure Backup Recovery Services コンテナーの削除 が必要になる場合もあります。
[ホーム] を選択し、[リソース グループ] を選択します。
削除するリソース グループを選択します。
[リソース グループの削除] を選択します。 ウィンドウが開き、リソース グループと共に削除されるリソースに関する警告が表示されます。
リソース グループの名前を入力し、[削除] を選択します。
完了したら、Remove-AzResourceGroup コマンドレットを使用して、リソース グループと、リソース グループに含まれているすべてのリソースを削除できます。
Remove-AzResourceGroup -Name myResourceGroup
完了したら、az group delete
コマンドを使用して、リソース グループと、リソース グループに含まれているすべてのリソースを削除できます。
az group delete --name $resourceGroupName
次のステップ