このページの本文へ

Windows Server 8でなにが変わる? 第4回

ルシノビッチ氏がセッション「Inside Windows Azure」で内部を解説

DR対応も!「Build Windows」でわかったAzureの今後

2011年11月02日 06時00分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷

Windows 8は、クラウド側との連携を最初から念頭に置いて開発された。マイクロソフトがクラウドとするのは、Windows Liveの各サービスおよび、Windows Azureで構築されたサービスだ。

 Azureは継続的に機能拡張されており、今年に入ってからもさまざまな拡張が行なわれたり、CTPによる機能のプレビューが行なわれている。

9月のBuild WindowsまでのAzureの状況

 まず、Azure自体に関連するアップデートだが、以下のようなものがある。

  1. Storage Analytics
  2. Storage Geo-replication
  3. Service Bus CTP September Release

 これにともない、Windows Azure SDK 1.5がリリースされ、前回紹介したVisual Studio 2011(現在はCTP段階)でも対応が行なわれた。

 また、Windows AzureとスマートフォンやWindows 8と接続するためのToolkitとして、「Windows Azure toolkit for iOS/Android/Windows Phone」および「Windows Azure toolkit for Windows 8」が用意されたほか、SNSでゲームを開発するための「Windows Azure toolkit for Social Games」もリリースされた。

 9月12日より米国で開催された「Build Windows」では、Windows Internalの著者マーク・ルシノビッチ(Mark Russinovich)氏による「Inside Windows Azure」というセッションが行なわれた。これは、Azure OSやAzureのデータセンターやFabric Controller、クラスタを構成するノードなどを解説するもの。これまであまり詳細が語られなかったAzureの内部を解説している唯一の情報となった。

Storage関連の強化点

 AzureのStorage関係では、Analyticsがある。これは、ストレージに関するLogとMetricsの2つの機能からなり、前者はストレージアクセスに関するロギング機能、後者は単位時間あたりの統計情報だ。

 Logによりアプリケーションのストレージ利用を追跡することが可能になる。Logはストレージに対してのリクエストを記録するもので、対象はBlob、TableおよびQueuesである。ただし、このLogは完全なものではなく、「Best Effort」であるとされている。また、ログ自体はAzureのBlobに格納されるため、アクセスはアプリケーションからも簡単に行なえる。

ログは、ストレージに対するリクエストを記録するもの。ログ自体は、AzureのBlobに、写真右上のような状態で格納される

 これに対してMetricsは、1時間ごとの統計情報を記録するもの。トランザクション数やエラー、成功、タイムアウトなどのパーセンテージ、平均レイテンシ(遅延)などの情報が含まれる。

Metricsは1時間単位でStorageやアプリケーションの統計情報を記録するもの。Metricsでは、アプリケーションとストレージの平均レイテンシを記録するため、時刻による変化や処理全体に占めるストレージ処理時間を見ることが可能

 Metricsは、Windows AzureのTableに記録される。これを使うことで、アプリケーションのストレージ利用を1時間単位で継続して見ていくことが可能だ。これにより、時間帯によるストレージ利用やその傾向をつかむことも可能になる。また、E2E(End to End)のレイテンシは、ストレージおよびアプリケーションの平均値が得られる。このため、処理が遅い場合に、アプリケーション自体の問題なのか、ストレージ設計によるものなのかを判断することも可能だ。

 Geo-replicationは、ストレージのレプリケーションを離れた地域で行なうものだ。追加の機能ではなく、Azureの基本機能のアップデートとして自動的に有効になり、特に処理が必要になるものではない。

 地理上の距離として数百マイル単位を見ており、災害などによるデータセンター障害や通信障害に対して、ストレージデータを保護することが可能になる。現時点では、BlobとTableが対応し、Queueについては、2012年に対応予定になっている。

 ユーザーがアカウントを作成した地域を「Primary Location」、そこから離れた地域を「Secondary Location」として、そこにStorageのレプリケーションを行なう。特にGeo-replicationとしての料金は発生せず、すべてのストレージアカウントでデフォルト値がオンとされる。ただし、ユーザーがこれをオフにすることは可能になっている(Azure Supportへの連絡が必要)。

 これにより、Azure上のサービスは、違う地域のデータセンターによるフェイルオーバーが可能となる。

Geo-replicationは、離れた地域のデータセンターに対して行なわれるため、ある地域のデータセンターの障害や通信障害などが起こった場合、レプリケーション先へのフェイルオーバーが可能になる

クライアントとの連携

 Windows 8では、標準でWindows Liveと連携する機能が多く搭載されているほか、ログインをWindows Live IDとして同時にWindows Live側にもログインする機能がある。

 Windows Liveは、マイクロソフトの運営するサービスなので、独自のクラウドサービスを開発するためには、Windows Azureを使う。このために、用意されているのがWindows Azure toolkit for Windows 8だ。

 Azure自体は、ASP.NETなどでプログラミング可能で、Windows 8側からこれにアクセスすることで、ある程度のサービスは作ることができる。しかし、一番問題になるのは、Azure側からクライアント側への通知である。必ずしも、クライアント側でAzureをアクセスするアプリケーションが動作しているとは限らない。そこでWindows 8には、インターネット側にあるマイクロソフトのPushサービスを経由してユーザーに通知を行なうWindows Push Notification Serviceが用意される。これに対してAzure側から通知を行なうことで、Windows 8のアプリを送り付けることが可能になる。

Windows 8のPush notificationは、マイクロソフトの用意するWindows Push Notification Serviceを使って、クラウド側からアプリケーションに通知を送る

 Windows Azure toolkit for Windows 8は、こうしたアプリケーションを開発するためのものだ。サンプルアプリケーションやVS11のテンプレート、そしてAzure側で利用できるC#コード(Windows Push Notification Recipe)などが含まれている。

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード