[Q]
Azure Filesの課金対象の操作の具体的な内容について教えてください。
https://azure.microsoft.com/ja-jp/pricing/details/storage/files/
[A]
まず概要として大まかに申し上げますと、Azure Files に対するトランザクションは以下のような分類になります。
■ Put、Create Container 操作
⇒ ファイルやフォルダーの書き込みおよび新規作成操作。
■ List 操作
⇒ ファイルやフォルダーの一覧操作 (例えば dir コマンドの実行など)。
■ Delete (無料) 以外のその他すべての操作
⇒ ファイルの読み取りやプロパティ取得など、上記のいずれにも分類されない操作。
より詳細に申し上げますと、Azure Files に対するリクエストはネットワーク上を流れる SMB プロトコル上で発行された SMB コマンドの数に基づいて集計がなされます。
Windows の Explorer などからの共有フォルダーアクセスによるファイル操作は、ネットワーク上でSMB プロトコルに変換されてファイルサーバーや Azure Files に送信されます。
SMB コマンドには、例えば共有フォルダーへの接続、資格情報の認証、ディレクトリ内の一覧、Write、Read、ファイルプロパティの操作、といった低レベルの I/O コマンドが定義されています。
このうち、書き込み系の操作、および一覧系の操作に該当しない操作はすべて、「Delete (無料) 以外のその他すべての操作」に分類されることになります。
厳密にはこの SMB コマンドは必ずしも Explorer などアプリケーションレベルの高レベルのファイル操作の内容とは 1:1 で対応しておらず、例えば 1000 件のファイルコピーの際に、必ず 1000 回のWrite リクエストが呼び出されるというわけではございません。
例えば、大きなファイルをコピーするような場合に複数回の Write が呼び出される場合もあり得ます、また、途中の進行状況の把握のために Read が呼び出される場合もございます。
Windows の Explorer で共有フォルダーを開いている場合に、画面のリフレッシュのために内部的に SMB におけるList 操作が実行される、という状況もございます。
従いまして、操作の部分については計算をもとに事前の見積もりを立てるというアプローチが率直なところ難しい部分はございます。