【MS tech・days】Windows Azureのストレージ機能はクラウドを考慮した仕組みに | RBB TODAY

【MS tech・days】Windows Azureのストレージ機能はクラウドを考慮した仕組みに

 「Microsoft tech・days Japan 2009」では27日、マイクロソフト デベロッパー&プラットフォーム統括本部 カスタマーテクノロジー推進部 プラットフォームストラテジストである佐藤直樹氏が「Windows Azure ストレージサービス」を説明した。

エンタープライズ その他
マイクロソフト デベロッパー&プラットフォーム統括本部 カスタマーテクノロジー推進部 プラットフォームストラテジストの佐藤直樹氏
  • マイクロソフト デベロッパー&プラットフォーム統括本部 カスタマーテクノロジー推進部 プラットフォームストラテジストの佐藤直樹氏
  • マイクロソフトのクラウドプラットフォーム「Azure Services Platform」の概念図。Azureストレージは、Azure Services Platformの基盤となるOS「Windows Azure」に含まれている
  • Windows Azureストレージの概要。堅牢性、拡張性、可用性に優れており、セキュリティやパフォーマンスも確保している
  • Windows Azureストレージには、「ブロブ」「テーブル」「キュー」の3つの機能がある
  • ブロブ、テーブル、キューのそれぞれの特徴
  • ブロブの概要。ファイルを扱う機能で、「ブロック」と呼ばれる単位に分割できる
  • ブロブを送信する仕組み
  • テーブルの概要。表が扱える構造化ストレージで、Tバイトクラスのデータが扱える。データベースにも似ているが、リレーショナルの概念はない
 クラウド上にファイルを保存する場合、複数台のサーバに分散する可能性がある。また、大容量のファイルを転送する場合、回線の状態によって時間がかかったり、タイムアウトしたりすることも考えられる。Windows Azureには、これらの問題を考慮したクラウド上の仮想ストレージを扱う機能「Windows Azureストレージ」が搭載されている。

 マイクロソフトの開発者向けイベント「Microsoft tech・days Japan 2009」で27日に開催された、マイクロソフト デベロッパー&プラットフォーム統括本部 カスタマーテクノロジー推進部 プラットフォームストラテジストの佐藤直樹氏によるブレイクアウトセッション「Windows Azure ストレージサービス」では、Windows Azureストレージの概要が説明された。

 Windows Azureストレージでは、ファイルストレージの「ブロブ」、構造化ストレージ「テーブル」、メッセージ交換のための「キュー」の3種類を用意している。いずれも、開発者はクラウドのどこにデータがあるかを気にすることなく、簡単なAPIで利用できるようになっている。

 ブロブは、バイナリデータを含むファイルを扱う機能。1つのブロブにつき、50Gバイトまで扱える。写真はもとより、動画も扱える容量だ。特徴は、「ブロック」と呼ばれる単位で分割できることにある。「ネットワークでエラーが起きるたびに、送信をしなおすようでは困る。そのため、ブロックに砕けるようになっている」とする。ブロブの送受信はこのブロック単位で行い、インターネットの回線状況により、順番に受信できなかった場合の再配置や、欠けていた場合の再送信リクエストなどもできる。

 テーブルは「リレーショナルがない、大きなフラットなテーブル」と表現される構造化ストレージで、データベースの考え方に似ている。「1つのテーブルで、数Tバイトを扱うことを前提にしている」としており、たとえば日々のPOSデータをすべて蓄積し、解析するといったことに向いている。また、クラウドでは同一のテーブルであっても複数のサーバに分散する可能性があるため、「パーティション」の概念を採用しそれを防いでいる。

 通常、リレーショナルデータベースでは、マスターキーフィールドのみが必須となる。しかし、Windows Azureストレージでは、「パーティションキー」と「ローキー」の2つ必須とする。たとえば、“福利厚生”や“勤怠”などの文書管理テーブルを作成する場合、パーティションキーにこれらの文書の種類を入力。パーティションキーに同じ文字を入れると、同じパーティションと認識され、1つのサーバにまとめて保存される。「頻繁にアクセスするデータ同士は近くにあったほうがいい。同一のパーティションは同一のマシンに置いて、パフォーマンスを最適化する」というのが理由だ。

 なおテーブルにはリレーショナルの概念がないため、用途によってSQL Servicesと使い分けるといいだろう。

 キューは、WebロールとWorkerロールの通信で利用する。「Windowsなどのアプリケーションを作る際に、キューではなく、データベースやTCP/IPを用いることが多かった。しかし、相互運用ではキューは重要で、クラウドでもこれが大きな役割を果たす」という。キューは、複数のメッセージで構成され、処理中は見えなくなっており、終了すると削除、また処理が止まった場合は復活するという仕組みを持っている。これも、インターネットでつながるクラウドを考慮した仕組みとなっている。
《安達崇徳》

関連ニュース

特集

page top