Azure Storageの種類(Blob, File)を比較
- 2024.07.01
- Azure

Azure Storageで利用可能なストレージタイプは、BLOB、ファイル、テーブルです。これらのサービスには、保存コストのほか、読み取り・書き込みのリクエスト数と容量に対しても費用がかかります。コピーされたデータは少なくとも3つのコピーが自動的に保持されます。データ操作は、GUIで操作できるAzure Storage ExplorerやCUIで操作できるAzCopyを利用できます。
Azure Blob Storage
Azure Blob Storageは、テキストやバイナリデータなどの大量の非構造化データを格納するために使用できるオブジェクトストレージソリューションです。ストレージコストが低く、ファイル形式に制限がないため、BLOBストレージはバックアップとアーカイブを格納するのに適しています。インターネット接続を使用してどこからでもアクセス可能です。
以下の3種類のBLOBタイプがサポートされています。
- ブロックBLOB: 一般的な非構造化データを保存するために使用され、主にドキュメント、画像、動画ファイルなどが対象です。大規模なデータを管理しやすいように複数のブロックに分割して保存することができます。
- ページBLOB: ランダムな読み取りおよび書き込み操作をサポートするように最適化されており、仮想マシンのディスクやデータベースなど、頻繁に読み書きが発生するデータに適しています。
- 追加BLOB: 追加操作に特化したBLOBで、ログデータのように一貫してデータを追加していくケースに適しています。
保存コストはリージョンごとに異なります。BLOBストレージには次の3つのアクセス層があります:
- ホットアクセス層:頻繁にアクセスされるデータを格納するために最適化されています。
- クールアクセス層:わずかに低い可用性を許容できますが、ホットデータと同様の高い耐久性、取得待ち時間、およびスループット特性が必要です。
- アーカイブアクセス層:データをオフラインで保存し、ストレージコストが最も低くなりますが、データの復元とアクセスのコストが最も高くなります。既定のアクセス層に設定することはできません。
Azure Disk StorageはAzure仮想マシン用のディスクを提供します。Azure Filesは、ファイルストレージ共有のマウントをサポートしています。
Azure Files
Azure Filesは、業界標準のサーバーメッセージブロック (SMB) およびネットワークファイルシステム (NFS) プロトコルを介してアクセスできるクラウド内の完全に管理されたファイル共有を提供します。Azure File Syncは、Azure StorageのFileに保存しているデータをオンプレミスなどのWindows Serverにキャッシュして利用できるサービスです。
Azure Table Storage
Azure Table Storageは、NoSQL型のデータベースサービスで、構造化されたキーと値のペアでデータを保存します。
- 複数の読み取りレプリカはサポートされませんが、複数の書き込みリージョンをサポートしており、高い可用性を実現します。
- このサービスは、特に大規模なスケーラブルなデータセットを扱うのに適しています。
Azure Data Lake Storage Gen2
Azure Data Lake Storage Gen2は、大規模なデータ分析に最適化されたストレージソリューションで、分散型ファイルシステムに基づいています。
- POSIX準拠のアクセス制御リスト(ACL)をサポートしており、セキュアなアクセス管理が可能です。
- POSIXとは、異なるコンピュータシステム間でソフトウェアの互換性を保つための標準インターフェースで、システム間でのデータ移植性が高まります。
Azure Cosmos DB
Azure Cosmos DBは、グローバルに分散したマルチモデルデータベースサービスであり、様々なデータモデルを統一的に扱えることが特徴です。
- 必要なすべてのデータベース(ドキュメント、グラフ、列ファミリデータベース)を処理できます。これにより、異なるデータ形式を一つのプラットフォームで効率的に扱うことが可能です。
- JSONファイルに格納されたデータを分析レポートで利用するために追加の開発作業を行わずに集約できる点も、開発者にとって大きな利点です。
- ただし、Azure Cosmos DBはストリーミングデータの処理には対応していません。
Azure Cosmos DB の API
Azure Cosmos DBは、グローバルに分散されたマルチモデルデータベースであり、複数のAPIを通じて様々なデータモデルにアクセスできる柔軟なプラットフォームを提供しています。それぞれのAPIは異なるデータモデルやクエリ言語に対応しており、ユースケースに応じた最適な選択肢が用意されています。ここでは、各APIの特徴について解説します。
Azure Cosmos DB for Core (SQL)
- 特徴: SQLに似たクエリ言語を使用して、JSONドキュメントに対してクエリを実行します。
- ユースケース: 構造化されたデータを扱うアプリケーションに最適で、従来のSQLの経験がある開発者が使いやすいAPIです。
- メリット: JSON形式でデータを保存し、既存のSQLの知識を活かしてデータを操作できます。
Azure Cosmos DB for PostgreSQL
- 特徴: PostgreSQLのデータベース機能をグローバルに分散されたスケーラブルなプラットフォーム上で提供します。
- ユースケース: オープンソースのPostgreSQLを活用している場合、既存のコードやアプリケーションを簡単に移行できます。
- メリット: PostgreSQLの柔軟な機能を、Azure Cosmos DBのスケーラビリティと結びつけて活用できます。
Azure Cosmos DB for NoSQL
- 特徴: Azure Cosmos DBのマルチモデル機能を活用し、スケーラブルなNoSQLデータストアとして利用可能です。
- ユースケース: 様々な形式のデータ(JSONなど)を扱い、従来のNoSQLデータベースと同様の使い方をしたい場合に最適です。
Azure Cosmos DB for MongoDB
- 特徴: JSON(BSON)ドキュメント形式でデータを格納し、MongoDBクエリ言語(MQL)を使用してクエリを実行します。
- ユースケース: MongoDBの互換性が求められるアプリケーションや既存のMongoDBデータベースを使用している場合に最適です。
- メリット: 開発者は既存のMongoDBのスキルセットを活かしながら、Azure Cosmos DBのグローバルスケーリングの恩恵を受けることができます。
Azure Cosmos DB for Table
- 特徴: キーと値のペアを取得するために使用され、ODataおよびLINQクエリが利用できます。
- ユースケース: シンプルなキーと値のデータストレージを必要とするアプリケーションに最適です。
- メリット: 複数の読み取りレプリカはサポートされており、可用性が高い環境を構築できます。ただし、複数の書き込みリージョンはサポートされません。
Azure Cosmos DB for Apache Cassandra
- 特徴: 列ファミリストレージ内の表形式データを処理し、SQLクエリを使用します。
- ユースケース: CassandraベースのアプリケーションをAzureのスケーラブルな環境で実行したい場合に適しています。
- メリット: Cassandra APIを使用して、既存のCassandraデータベースを容易に移行し、スケーラブルなパフォーマンスを実現できます。
Azure Cosmos DB for Apache Gremlin
- 特徴: グラフデータベースのAPIで、Graphクエリ言語を使用してデータを操作します。
- ユースケース: ソーシャルネットワークやIoT、関係性データを扱うアプリケーションに最適です。
- メリット: Azure Cosmos DBのグローバル分散性を活かして、グラフデータベースの複雑な関係を効率的に処理できます。
-
前の記事
AzureのSaaS, PaaS, IaaSサービス一覧 2024.06.30
-
次の記事
Azure Data Fundamentals過去問を解いて作った勉強法【DP900】 2024.07.28