原典:Azure: Announcing New Real-time Data Streaming and Data Factory Services
はじめに
ここ3週間、Azure関係で非常に忙しくなっていました。2週間前、Dockerとの提携について発表しましたが、それによりLinux、Windows Server、Microsoft Azure上ですばらしいコンテナベースの開発が可能になりました。
先週開催されたCloud Dayイベントで、新しい仮想マシンのGシリーズとプレミアムストレージ提供について発表しました。GシリーズのVMは、パブリッククラウドで現在利用可能な最大のVMサイズ(AWS提供よりほぼ2倍のメモリまたGoogle提供より4倍のメモリ)を提供します。新しいプレミアムストレージ(VMのDシリーズおよびGシリーズのどちらでも動作予定)では、VMごとに最大32TBのストレージと50,000 IOPSのディスクIOがサポートされ、Sub-1msの読み込み遅延が可能になります。組み合わせることで非常に大きなパワーが提供され、より大きく、より素晴らしいクラウドソリューションが提供できます。
今週初め、新しくAzureオーストラリアリージョンを正式にオープンしました。これは、世界でオープンした中で18番目か19番目のものになります。その後、TechEdヨーロッパで、新しいAzure MarketPlaceの立ち上げ、新しいバッチコンピューティングサービス、Azureオートメーションサービスなどのさらなる新機能群を発表しました。
Azureデータスペースで今週リリースした新しいサービスについてブログ公開でき、うれしく思います。
- イベントのハブ:Webサイト、クライアントアプリ、IoTセンサーからデータを取得し格納するスケーラブルなサービス
- ストリーム分析:イベントストリームからリアルタイムに状況確認できる費用対効果の高いイベント処理エンジン
- データファクトリ:多様なデータとデータ移動の編成および管理による、より優れた情報生産が可能
Azureイベントハブは一般公開されており、新しいAzureストリーム分析とデータファクトリサービスは現在パブリックプレビューになっています。
イベントハブ:ほぼリアルタイムで秒あたり数百万のイベントログ
Azureイベントハブサービスは、非常にスケーラブルなテレメトリ取得サービスで、ほぼリアルタイムで秒あたり数百万のイベントログを残します。イベントハブサービスを利用して、色んなIoTデバイスやアプリ(Web、モバイル、バックエンドサービス)から、またはソーシャルネットワークのようなフィード経由で、データ/イベントが収集できます。Microsoftはこれを内部で使用していて、最大級のオンラインシステムをいくつか監視しています。
イベントハブでイベントを収集したら、その後リアルタイム分析システム(Apacheストーム、新しいAzureストリーム分析サービスなど)を使用してデータを分析し、データストレージシステム(HDInsightやHadoopベースのソリューションなど)へ保存/変換することができます。
イベントハブはAzureで管理サービスとして提供されます(つまり、こちらで実行、スケール調整、パッチを行い、エンタープライズSLAを提供します)。提供には以下のものがあります。
- ほぼリアルタイムで秒あたり数百万のイベントログ機能
- 中断なくスケールアップ/ダウンする機能を持つ弾性スケールサポート
- HTTPとAMQPベースイベントサポートなど複数のプロトコルをサポート
- 柔軟な承認とスロットルデバイスポリシー
- イベント順序を保った時間ベースのイベントバッファリング
イベントハブの価格モデルは非常に柔軟です。イベントハブに送信される1メガバイト/秒のイベントが取り込み可能な保証性能容量を持つ基本イベントハブを11ドル/月のみでプロビジョニングできます。その後イベントトラフィックが高くなった場合は、必要に応じて容量単位を追加していくことができます。
イベントキャプチャ入門
Azureポータルを使用するかコマンドライン経由で新しいイベントハブを作成できます。ポータル内で「New」-「App Service」-「Service Bus」-「Event Hub」を選択してください。
作成できると、強く型付けされたAPI(.NETまたはJavaクライアントライブラリなど)を使用して、または単純にサービスへ生のHTTPやAMQPメッセージを送信することで、イベントハブにイベントを送信することができます。以下は、標準のHTTP POSTリクエストを使用して、イベントハブへIoTイベントログを記録することが、いかに簡単かを示した例になります。HTTPポストのAuthorizationヘッダを確認してください。デバイスの柔軟な認証/許可を有効にしたい場合にこれを使用することができます。
POST https://your-namespace.servicebus.windows.net/your-event-hub/messages?timeout=60&api-version=2014-01 HTTP/1.1 Authorization: SharedAccessSignature sr=your-namespace.servicebus.windows.net&sig=tYu8qdH563Pc96Lky0SFs5PhbGnljF7mLYQwCZmk9M0%3d&se=1403736877&skn=RootManageSharedAccessKey ContentType: application/atom+xml;type=entry;charset=utf-8 Host: your-namespace.servicebus.windows.net Content-Length: 42 Expect: 100-continue { "DeviceId":"dev-01", "Temperature":"37.0" }
イベントのハブはこのように秒あたり最大数百万のメッセージを収集することができ、また、イベントハブサービスは後から読込/消費するために順序を格納できます。
下流のイベント処理
イベントを収集したら、それで何かしたくなると思います。イベントハブにはインテリジェント処理エージェントが含まれていて、リーダー間の自動パーティション管理や負荷分散が可能です。リーダー内では必要なロジックが実装でき、リーダーに送られたデータはイベントハブに送られた順序で配信されます。
独自のイベントリーダーを作成できるほか、新しいAzureストリーム分析サービスやApacheストームなど事前に構築されたストリーム処理システムで簡単に動作させる2つの方法もあります。新しいAzureストリーム分析サービスはイベントハブから直接ストリーム処理をサポートしており、MicrosoftはApacheストームクラスタで使用できるイベントハブStorm Spoutを作成しました。
以下の図は、イベントハブがデータを収集し、イベント/データを受け渡して処理を行うためのリッチな方法を数多く示したものになります。
イベントハブは、非常に柔軟で費用効率の高い構築ブロックを提供しており、クラウドに流したいイベントやデータを収集し処理するのに使用することができます。非常に費用効率が良く、さまざまなニーズに対応できるスケーラビリティを提供します。
イベントハブの詳細について
Azureイベントハブの詳細については、以下のリソースをご確認ください。