Azure Storageを解説 【シリーズ Azureサービスいちから紹介】

このエントリは Qiita Advent Calendar 2017 Microsoft Azureサービスいちから紹介 の2日目です。

ナレッジコミュニケーションの大柳です (@oyngtmhr) 。

2日目はAzure Storageです。

昨日のResource Managerに引き続き、仮想サーバ(Virtual Machine)の構築の前にStorageが必要になるので、第2回としてAzure Storageを取り上げます。

概要

Azure Storageはクラウドで提供されるストレージサービスです。AWSのS3に相当するインターネットストレージであるAzure Blobや仮想マシンのOSディスクなどのストレージが提供されます。

もちろん、クラウドなので高い可用性やセキュリティ、耐久性、スケーラビリティ、冗長性も備えています。

Azure Storageを使うにあたって、まずストレージアカウントの作成が必要です。この概念が若干分かりにくいのですが、公式サイトを引用すると以下のようなものです。

Azure ストレージ アカウントは、Azure Storage データオブジェクトの格納およびアクセスのための一意の名前空間を提供します。 ストレージ アカウント内のすべてのオブジェクトは、グループとしてまとめて課金されます。 既定では、アカウントのデータはアカウント所有者だけが使用できます。

さっくりいうとリソースグループのようにストレージをグループとして管理して、課金集計や監視のまとまりとして管理することができます。また、ストレージアカウントを削除するとそこに属するストレージはまとめて削除されて、片付け忘れを防ぐこともできます。ストレージアカウントと作成できるストレージタイプを整理すると以下のようになります。

ストレージアカウントに加えて、ストレージタイプ、レプリケーション(冗長性)の3つの基本的な概念について説明します。

ストレージアカウント

3種類のストレージアカウントがあります。

・汎用(Standard Storage)アカウント

あらゆるタイプのデータに使用できます。磁気媒体(HDD)を使ってデータが保存されます。

・汎用(Premium Storage)アカウント

SSDを使ったハイパフォーマンスなストレージです。VHD(Virtual Hard Disk) ファイルに使用されます。VM(仮想マシン)にはPremium Storageの利用が推奨されます。ページBlobのみ利用可能です

・Blobストレージアカウント

ブロックBlobと追加Blobに特化したストレージアカウントです。

「ホット」と「クール」のアクセスレベルを設定できます。

  • ホット:アクセス頻度の高いファイルに使用。料金は高い。アクセスが速い。
  • クール:過去ログなどアクセス頻度の低いファイルに使用。アクセスは遅い。料金は安い。

ストレージタイプ

5種類のストレージタイプがあります。

・ブロックBLOB

4.7 TB までのファイルの保存に使用できます。画像ファイルを保存してWebサイト上で公開する用途などに利用できます。

・ページBLOB

最大8 TBのファイルの保存に使用できます。ランダムアクセスもできるので、VMのOSファイルシステムにも利用できます。

・追加BLOB

追加操作に最適化されています。ログや監査ファイルなどを追記的に記録するのに使用します。

・Fileサービス

サーバーメッセージブロック(SMB)プロトコルでファイル共有をできます。複数の仮想マシン(VM)やオンプレサーバからファイルに対して読み書きができます。

・Queueサービス

キューとして、メッセージの保管と取得に利用できます。許容されるメッセージサイズは最大64 KBです。Pub/Subによる非同期処理に使用できます。

レプリケーション(冗長性)

4種類のレプリケーションオプションがあります。

・ローカル冗長ストレージ (LRS)

1つのデータセンターにデータのコピーが3つ作成されます。データセンター全体が利用できなくなった場合はデータを利用できなくなります。

・ゾーン冗長ストレージ (ZRS)

ローカルコピーが3つに加え、リージョン内のデータセンターに非同期的でレプリケートされます。汎用ストレージアカウントのブロック BLOBでのみ利用できます

・geo冗長ストレージ (GRS)

ローカルコピーが3つに加え、別のリージョンに、さらにコピーが3つ保持されます。プライマリリージョンで障害が発生すると、セカンダリリージョンにフェールオーバーして業務が継続できます。

・読み取りアクセスgeo冗長ストレージ (RA-GRS)

geo冗長ストレージに加えて、セカンダリリージョンにあるデータへの読み取りアクセスができます。プライマリが利用できない状態になった場合、セカンダリからデータを読み取ることができます。

ユースケース

・Wordpressの画像コンテンツをブロックBlobに配置、Web公開し、Blobから画像コンテンツをダウンロードできるようにする。読み取りアクセスgeo冗長ストレージにすることでリージョン障害時にもサイトへ読み取りアクセスを可能とする。

・ファイルストレージをオンプレサーバにマウント、Azure上の仮想マシンからもマウントし、各システムからアイル共有できるようにする。

・追加Blobにサーバの監査ファイルを追記書き込みし、蓄積するとともに改竄を防ぐ。

・OSのシステムファイルをgeo冗長ストレージで別リージョンに同期し、リージョン障害時も業務継続できるようにする。

料金

料金体系も整理します。

・ブロックBlobと追加Blob

格納データに対して1GB単位で課金が発生します。冗長オプションを上位のものにあげるとその分、料金が高くなります。PUT、READなどの操作に対しても課金されます。また、クールアクセスレベルに対しては、読み/書き時にGB単位で課金が発生します。

Azure Storage Blob の価格

・ページBlob

ディスクのサイズごとに月額料金が定められています。Premiumの場合はサイズごとにIOPSやスループット上限が定められています。スナップショットにも課金されます。

料金 – Managed Disks

・ファイルサービス

格納データに対して1GB単位で課金が発生します。冗長オプションを上位のものにあげるとその分、料金が高くなります。PUT、READなどの操作に対しても課金されます。

Azure Files Storage の料金

・Queueサービス

格納データに対して1GB単位で課金が発生します。冗長オプションを上位のものにあげるとその分、料金が高くなります。トランザクション回数に対しても課金されます。

Azure Queues Storage Pricing

・データ転送量(Outbound)

Azureデータセンターから出ていくデータに対してGB単位に課金されます。ストレージも同様です。

料金 – 帯域幅

その他

・ファイルサービスやBlobに対してサーバサイド暗号化を行うこともできる。

・AzCopyコマンドラインユーティリティでデータのコピー・移動ができる。

・Table StorageはCosmos DBのサービスとして取り込まれた模様。

まとめ

ストレージアカウント、ストレージタイプ、冗長オプションなど選択肢が多く、要件に応じて様々なケースで利用することができます。VMならPremium StorageなどAzureの推奨に従うのがよさそうです。

明日の記事もお楽しみに。

この記事を書いた人

azure-recipe-user