この記事では、Azure Files を使用したアプリケーション開発の概要について説明し、アプリのニーズに基づいて最適なアプローチを決定するのに役立ちます。
対象
管理モデル | 課金モデル | メディア レベル | 冗長性 | 中小企業 | ネットワークファイルシステム (NFS) |
---|---|---|---|---|---|
Microsoft.Storage | プロビジョニング済み v2 | HDD (標準) | ローカル (LRS) |
![]() |
![]() |
Microsoft.Storage | プロビジョニング済み v2 | HDD (標準) | ゾーン (ZRS) |
![]() |
![]() |
Microsoft.Storage | プロビジョニング済み v2 | HDD (標準) | geo (GRS) |
![]() |
![]() |
Microsoft.Storage | プロビジョニング済み v2 | HDD (標準) | ジオゾーン (GZRS) |
![]() |
![]() |
Microsoft.Storage | プロビジョニング済み v1 | SSD (プレミアム) | ローカル (LRS) |
![]() |
![]() |
Microsoft.Storage | プロビジョニング済み v1 | SSD (プレミアム) | ゾーン (ZRS) |
![]() |
![]() |
Microsoft.Storage | 従量課金制 | HDD (標準) | ローカル (LRS) |
![]() |
![]() |
Microsoft.Storage | 従量課金制 | HDD (標準) | ゾーン (ZRS) |
![]() |
![]() |
Microsoft.Storage | 従量課金制 | HDD (標準) | geo (GRS) |
![]() |
![]() |
Microsoft.Storage | 従量課金制 | HDD (標準) | ジオゾーン (GZRS) |
![]() |
![]() |
Azure Files を使用したアプリ開発について
Azure Files には、開発者が Azure ファイル共有内のデータにアクセスしてリソースを管理するためのいくつかの方法が用意されています。 次の表に、アプローチの一覧を示し、その動作を要約し、各アプローチを使用するタイミングに関するガイダンスを示します。
方法 | しくみ | いつ使用するか |
---|---|---|
標準ファイル I/O ライブラリ | 業界標準のサーバー メッセージ ブロック (SMB) プロトコルとネットワーク ファイル システム (NFS) プロトコルを使用してマウントされた Azure ファイル共有を介して OS レベルの API 呼び出しを使用します。 SMB/NFS を使用してファイル共有をマウントする場合は、.NET の System.IO 、Python の os と io 、Java の java.io と java.nio 、JavaScript (Node.js) の fs など、プログラミング言語またはフレームワークにファイル I/O ライブラリを使用できます。 |
標準ファイル I/O を使用する既存のコードを含む基幹業務アプリがあり、アプリが Azure ファイル共有で動作するようにコードを書き換える必要はありません。 |
FileREST API | HTTPS エンドポイントを直接呼び出して、Azure Files に格納されているデータと対話します。 ファイル共有リソースをプログラムで制御できます。 Azure SDK には、FileREST API 上に構築されたクライアント ライブラリが用意されており、使い慣れたプログラミング言語パラダイムを使用して FileREST API 操作を操作できます。 | お客様向けに付加価値の高いクラウド サービスとアプリを構築しており、ネイティブ プロトコルでは利用できない高度な機能を使用したいと考えています。 |
ストレージ リソース プロバイダー REST API | Azure Resource Manager (ARM) を使用して、ストレージ アカウントとファイル共有を管理します。 さまざまなリソース管理操作のために REST API エンドポイントを呼び出します。 | アプリまたはサービスは、ストレージ アカウントやファイル共有の作成、削除、更新などのリソース管理タスクを実行する必要があります。 |
標準ファイル I/O ライブラリ
ファイル I/O ライブラリは、Azure Files リソースにアクセスして操作する最も一般的な方法です。 SMB または NFS を使用してファイル共有をマウントすると、オペレーティング システムによってローカル ファイル システムの API 要求がリダイレクトされます。 この方法では、.NET の System.IO
、Python の os
と io
、Java の java.io
と java.nio
、JavaScript の fs
(Node.js) など、好みのプログラミング言語またはフレームワークに標準のファイル I/O ライブラリを使用できます。
アプリで必要な場合は、ファイル I/O ライブラリの使用を検討してください。
- アプリの互換性: 標準ファイル I/O を既に使用している既存のコードを使用する基幹業務アプリに最適です。 アプリが Azure ファイル共有を操作するためにコードを書き換える必要はありません。
- 使いやすさ: 標準ファイル I/O ライブラリは、開発者によってよく知られており、使いやすいライブラリです。 Azure Files の重要な価値提案は、SMB と NFS を介してネイティブ ファイル システム API を公開することです。
その他の考慮事項:
- ネットワーク アクセス: SMB はポート 445 経由で通信し、NFS はポート 2049 経由で通信します。 これらのポートがクライアント コンピューターからブロックされていないことを確認します。 詳細については、「 Azure Files のネットワークに関する考慮事項」を参照してください。
FileREST API
FileREST API は、Azure Files へのプログラムによるアクセスを提供します。 これにより、HTTPS エンドポイントを呼び出して、ファイル共有、ディレクトリ、ファイルに対する操作を実行できます。 FileREST API は、ネイティブ プロトコルでは使用できない可能性がある高いスケーラビリティと高度な機能のために設計されています。 Azure SDK には、FileREST API 上に構築されたクライアント ライブラリが用意されています。
アプリケーションで次のものが必要な場合は、FileREST API とファイル共有クライアント ライブラリの使用を検討してください。
- 高度な機能: ネイティブ プロトコルでは使用できない操作と機能にアクセスします。
- カスタム クラウド統合: Azure Files と直接やり取りする、バックアップ、ウイルス対策、データ管理などのカスタム付加価値サービスを構築します。
- パフォーマンスの最適化: データ プレーン操作を使用する大規模なシナリオでは、パフォーマンスの利点を活用できます。
FileREST API は、Azure Files をリソースの階層としてモデル化し、 ディレクトリ または ファイル レベルで実行される操作に推奨されます。 FileREST API 上に構築される言語固有のクライアント ライブラリの詳細については、 データ アクセス用のライブラリを参照してください。
ストレージ リソース プロバイダー REST API
Azure Storage リソース プロバイダーは、 Azure Resource Manager に基づくサービスであり、宣言型 (テンプレート) メソッドと命令型 (ダイレクト API 呼び出し) メソッドの両方をサポートします。 Azure Storage リソース プロバイダー REST API は、ファイル共有を含む Azure Storage リソースへのプログラムによるアクセスを提供します。 Azure SDK には、Azure Storage リソース プロバイダー REST API 上に構築された管理ライブラリが用意されています。
ストレージ リソース プロバイダーは、 ファイル サービス または ファイル共有 レベルで実行される操作に推奨されます。 Azure Storage リソース プロバイダー REST API 上に構築される言語固有の管理ライブラリの詳細については、 リソース管理用のライブラリを参照してください。
Azure Files 用の Azure SDK ライブラリ
Azure SDK には、Azure Files リソースを操作するための 2 つのライブラリ セットが用意されています。 1 つのライブラリ セットは FileREST API 上に構築され、 ディレクトリ または ファイル レベルでデータ アクセス操作を処理するように設計されています。 これらのライブラリは、 データ プレーンと呼ばれることもあります。 別のライブラリ セットは、Azure Storage リソース プロバイダー REST API の上に構築され、 ファイル サービス または ファイル共有 レベルでリソース管理操作を処理するように設計されています。 これらのライブラリは、 コントロール プレーン (または管理プレーン) と呼ばれることもあります。
データ アクセス用のライブラリ
データ プレーン ライブラリは、 ディレクトリ または ファイル レベルでデータ アクセス操作を処理するように設計されています。 次のセクションでは、.NET、Java、Python、JavaScript、Go 用のファイル共有クライアント ライブラリを示します。
次の表に、データ アクセス用のファイル共有クライアント ライブラリを示します。
図書館 | リファレンス | パッケージ | 情報源 |
---|---|---|---|
Azure.Storage.Files.Shares | リファレンス | NuGet | GitHubの |
特定のデータ アクセス シナリオでファイル共有クライアント ライブラリを使用する方法の詳細については、「.NET を使用した Azure Files の開発」を参照してください。
リソース管理のためのライブラリ
コントロール プレーン ライブラリは、Azure Storage リソース プロバイダー REST API の上に構築されているため、Azure Storage リソースを管理できます。 Azure Storage リソース プロバイダーは、 Azure Resource Manager に基づくサービスであり、宣言型 (テンプレート) メソッドと命令型 (ダイレクト API 呼び出し) メソッドの両方をサポートします。
リソース管理ライブラリは、 ファイル サービス または ファイル共有 レベルでリソース管理操作を処理するように設計されています。 操作の詳細については、「 ファイル サービス または ファイル共有」を参照してください。 次のセクションでは、.NET、Java、Python、JavaScript、Go 用の Azure Storage 管理ライブラリを示します。
次の表は、リソース管理用の Azure Storage クライアント ライブラリを示しています。
図書館 | リファレンス | パッケージ | 情報源 |
---|---|---|---|
Azure.ResourceManager.Storage | リファレンス | NuGet | GitHubの |
特定のリソース管理シナリオに Azure Storage 管理ライブラリを使用する方法の詳細については、.NET の Azure Storage 開発者ガイドを参照してください。