この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
いわさです。
以前、Azure App ServiceへAzureストレージをマウントさせる機能を紹介させて頂きました。
本日時点では、Microsoft LearnなどでもApp Service on Linuxでのみマウント可能である旨記載がされていたのですが、App Service on Windowsでもパブリックプレビューで利用出来ることに気づきました。
本日は実際にマウントして使ってみました。
ためしてみた
以下のドキュメントでも手順については記載されています。
Linux ContainerとWindows ContainerがGAとなっていて、Windows Codeはプレビューという状態のようです。
Windowsの.NET 6で環境を作成します。
また、Azureストレージアカウントにファイル共有を作成しておきます。
App Serviceの構成メニューから、パスマッピングを選択します。
「ストレージのマウント(プレビュー)」メニューで「新しいAzure Storage マウント」から追加を行います。
マウントパスは、/mounts/
配下に作成する必要があり、固定となっています。
WindowsのドライブとしてはCドライブ直下にmounts
が存在し、このマウントパスで指定したディレクトリにマウントされます。
このマウントパスは少し制限があって、/mounts/hoge
形式で設定が出来ます。
/mounts
のみだったり、/mounts/hoge/fuga
のようにレベルが深くなったパスはサポートされていません。
余談ですが、マウント設定の追加後に「保存」操作を忘れないようにしましょう。いつも忘れてしまいます。
設定を保存後、コンソール機能を使ってApp Service内からマウントされたディレクトリにアクセスしてみます。
_ _____ _ ___ ___
/_\ |_ / | | | _ \ __|
_ ___/ _ \__/ /| |_| | / _|___ _ _
(___ /_/ \_\/___|\___/|_|_\___| _____)
(_______ _ _) _ ______ _)_ _
(______________ _ ) (___ _ _)
一般コマンド ('mkdir'、ディレクトリを変更する 'cd' など) を実行して、Web アプリ環境を管理します。これはサンドボックス環境であるため、管理者特権を必要とするコマンドは機能しません。
C:\home\site\wwwroot>cd /mounts/hoge
C:\mounts\hoge>touch hoge.txt
C:\mounts\hoge>ls
hoge.txt
マウントしたストレージアカウントのファイル共有から確認することが出来ました。
今回はシンプルにストレージをひとつマウントしましたが、アプリごとに最大5つまでマウントポイントの設定が可能です。
また、プライベートエンドポイントを有効化したストレージでも利用可能です。
さいごに
本日はApp Service on Windowsでのストレージマウントを使ってみました。
注意事項の多くはLinux時のストレージマウントと同じで、レイテンシー問題に対処するためにApp ServiceとAzureストレージを同じリージョンにしたり、App Serviceのバックアップ機能ではバックアップされない領域になるのでAzureストレージのバージョニングやスナップショット機能を必要に応じて併用します。
他にも注意事項や推奨事項が多いです。
ローカルDBなどの用途での利用は非推奨となっていますが、知らないと無意識に設定してしまいそうです。
以下のベストプラクティスには目を通しておきましょう。
Mount Azure Storage as a local share - Azure App Service | Microsoft Docs