Azure ストレージ サービスについて

完了

Azure Storage には、Azure ストレージ アカウントを使用してアクセスできる 4 つのデータ サービスが用意されています。

  • Azure Blob Storage (コンテナー): テキストとバイナリ データのための非常にスケーラブルなオブジェクト ストア。

  • Azure Files:クラウドまたはオンプレミスのデプロイ用のマネージド ファイル共有。

  • Azure Queue Storage: アプリケーション コンポーネント間の信頼性の高いメッセージングのためのメッセージング ストア。

  • Azure Table Storage: 非リレーショナル構造化データ (構造化 NoSQL データとも呼ばれます) を格納するサービス。

これらのサービスの詳細を調べてみましょう。

Azure Blob Storage

Azure Blob Storage は、Microsoft のクラウド用オブジェクト ストレージ ソリューションです。 Blob Storage は、テキストやバイナリ データなど、大量の非構造化データまたは "非リレーショナル" データの格納用に最適化されています。 Blob Storage は、次の目的に最適です。

  • 画像またはドキュメントをブラウザーに直接配信する。
  • 分散アクセス用にファイルを格納する。
  • ビデオおよびオーディオをストリーミング配信する。
  • バックアップと復元、ディザスター リカバリー、アーカイブのためのデータを格納する。
  • オンプレミス サービスまたは Azure ホステッド サービスで分析するデータを格納する。

BLOB ストレージ内のオブジェクトには、世界中どこからでも HTTP または HTTPS 経由でアクセスできます。 ユーザーまたはクライアント アプリケーションは、URL、Azure Storage REST API、Azure PowerShell、Azure CLI、または Azure Storage クライアント ライブラリを使用して BLOB にアクセスできます。 ストレージ クライアント ライブラリは、.NET、Java、Node.js、Python、PHP、Ruby など、さまざまな言語で利用できます。

Note

NFS プロトコルを使って Azure Blob Storage からデータにアクセスできます。

Azure Files

Azure Files を使うと、可用性の高いネットワーク ファイル共有を設定できます。 共有には、サーバー メッセージ ブロック (SMB) プロトコルとネットワーク ファイル システム (NFS) プロトコルを使ってアクセスできます。 複数の仮想マシンが、読み取りアクセス権と書き込みアクセス権の両方を使用して同じファイルを共有できます。 また、REST インターフェイスまたはストレージ クライアント ライブラリを使用してファイルを読み取ることもできます。

ファイル共有は、多くの一般的なシナリオで使用できます。

  • 多くのオンプレミスのアプリケーションでファイル共有が使用されます。 この機能により、データを共有するそれらのアプリケーションを Azure に簡単に移行できます。 オンプレミスのアプリケーションで使用されているのと同じドライブ文字にファイル共有をマウントすることにより、ファイル共有にアクセスするアプリケーションの部分は、(変更があっても) 最小限の変更で動作します。
  • 構成ファイルをファイル共有に格納し、複数の仮想マシンからアクセスすることができます。 グループ内の複数の開発者によって使用されるツールやユーティリティをファイル共有に格納できるため、だれでもそれらを見つけ、同じバージョンを使用することができます。
  • ファイル共有に書き込んだ後で処理または分析できるデータの例として、診断ログ、メトリック、およびクラッシュ ダンプの 3 つが挙げられます。

ファイル共有へのアクセスの認証を提供するために、ストレージ アカウントの資格情報が使用されます。 共有がマウントされているすべてのユーザーは、共有への完全な読み取りおよび書き込みアクセス権を持っている必要があります。

Azure Queue Storage

Azure Queue Storage は、メッセージの格納と取得に使用されます。 キューに許容されるメッセージ サイズは最大 64 KB で、1 つのキューに数百万件のメッセージを格納することができます。 キューは、非同期的に処理するメッセージ一覧を格納するために使用します。

顧客が画像をアップロードできるようにし、画像ごとにサムネイルを作成するシナリオを考えてみます。 もちろん画像のアップロードの際、サムネイルを作成するまでユーザーに待ってもらうことはできます。 代わりの方法は、キューを使うことです。 顧客がアップロードが完了したら、キューにメッセージを書き込むことができます。 その後、Azure 関数を使って、キューからメッセージを取得してサムネイルを作成できます。 処理の各部分を個別にスケーリングできるため、構成をチューニングするときに、より詳細に制御できます。

Azure Table Storage

Azure Table Storage は、非リレーショナル構造化データ (別名、構造化 NoSQL データ) をクラウドに保存するサービスであり、スキーマレスな設計をもつキー/属性ストアを提供します。 Table Storage はスキーマがないため、アプリケーションの進化のニーズに合わせてデータを容易に修正できます。 Table Storage のデータ アクセスは、多くの種類のアプリケーションにとって高速でコスト効率に優れ、また一般に、従来の SQL と比較して、同様の容量のデータを低コストで保存することができます。 既存の Azure Table Storage サービスに加えて、スループット最適化テーブル、グローバル分散、自動セカンダリ インデックスを提供する Azure Cosmos DB Table API が新しく用意されています。

Azure Storage サービスを選ぶときに考慮すべきこと

Azure Storage の構成計画について考える際には、Azure Storage の種類の特徴と、どのオプションが自分のアプリケーションのニーズをサポートするかを考慮してください。

  • 大量のデータに対するストレージの最適化を検討してください。 Azure Blob Storage は、大量の非構造化データを格納するために最適化されています。 BLOB ストレージ内のオブジェクトには、世界中どこからでも HTTP または HTTPS 経由でアクセスできます。 Blob Storage は、ブラウザーに直接データを提供したり、データをストリーミングしたり、バックアップと復元のためにデータを格納したりするのに最適です。

  • 高可用性を備えたストレージを検討してください。 Azure Files では、高可用性ネットワーク ファイル共有がサポートされています。 オンプレミス アプリは、簡単な移行のためにファイル共有を使用します。 Azure Files を使用すると、すべてのユーザーが共有データとツールにアクセスできます。 ファイル共有がマウントされているすべてのユーザーが正しい読み取りおよび書き込みアクセス権を持つように、ストレージ アカウントの資格情報によってファイル共有の認証が提供されます。

  • メッセージ用のストレージを検討してください。 多数のメッセージを格納するには、Azure Queue Storage を使います。 Queue Storage は、通常、作業のバックログを作成して非同期的に処理するために使われます。

  • 構造化データ用のストレージを検討してください。 Azure Table Storage は、構造化された非リレーショナル データを格納する場合に最適です。 スループット最適化テーブル、グローバル分散、自動セカンダリ インデックスが用意されています。 Azure Table Storage は Azure Cosmos DB の一部であるため、最新のアプリ開発のためのフル マネージドの NoSQL データベース サービスにアクセスできます。