Windows Azure SDK 2.0 for .NETのリリースを発表

Posted: 2013/05/01 カテゴリー: Uncategorized
タグ:, , , , , , , , , ,

今朝、Windows Azure SDK for .NETのv2.0アップデートをリリースしました。これは、いくつかの本当に素晴らしい新機能と拡張を含む、Windows Azure SDKのメジャー リフレッシュです。新機能は、次の通りです:

  • Webサイト: 発行、管理、診断のためのVisual Studioツールのアップデート
  • クラウド サービス: 新しいハイ メモリVMサイズのサポート、より早いクラウド サービスの発行、および、診断データの構成/参照のためのVisual Studioツール
  • ストレージ: ストレージ クライアント 2.0が新規プロジェクトに含まれるようになり、Visual Studioサーバー エクスプローラーがテーブル ストレージをサポートするようになりました
  • サービス バス: メッセージ ポンプ プログラミング モデルをサポートするアップデートされたクライアント ライブラリ、メッセージの参照 (ブラウズ) のサポート、および、アイドルのメッセージ エンティティの自動削除
  • PowerShell自動化: PowerShell 3.0のサポートのアップデート、および、Webサイト、クラウド サービス、仮想マシンなどのための多数の新しいPowerShellコマンド

これらのSDKの拡張のすべては現在利用可能になっており、今すぐ使い始めることができます。SDKは、Windows Azure .NET開発者センター (英語 / 日本語 (機械翻訳)) からダウンロード可能になりました。提供している他のすべてのWindows Azure SDKと同様に、Windows Azure SDK for .NETは、GitHubにホストされている完全なオープン ソース プロジェクト (Apache 2ライセンス) です。

本日リリースされた新機能に関するさらなる詳細は、次の通りです:

Webサイト: 改善されたVisual Studioからの発行

本日のリリースで、Windows Azure Webサイトの発行が、さらに簡単になりました。Visual StudioでASP.NET Webアプリケーション プロジェクト (または、Webサイト) を右クリックして、Windows Azureに発行するだけです:

1

そのプロジェクトで初めてこれを実行した場合、これによって、発行プロファイル ダイアログが現れます:

2

インポート」ボタンをクリックすることで、発行プロファイルをインポートできます (これは、プロジェクトで1度だけ行うことです。発行プロファイルには、Windows Azure内のサイトへ発行する設定が含まれています)。

以前のSDKリリースでは、Windows Azure管理ポータルから、発行プロファイルのファイルを手動でダウンロードする必要がありました。本日のリリースから、Visual Studio内で自分のWindows Azureサブスクリプションを関連付けられるようになりました。ここで、自分のサブスクリプションに関連付けられた、Windows Azure内のサイトの一覧をリアルタイムで参照でき、(何かを手動でダウンロードする必要なしに) 発行先にしたいサイトを選択できます:

3

それから、アプリのデプロイ先にしたいWindows Azure上のサイトを選択し、「OK」を押すだけで、数秒でアプリがWindows Azure上で稼働します。その後は、何も構成する必要なしに (またも数秒で) 迅速に再発行できます (発行プロファイル設定のすべては、後で使うために永続化されています)。

Webサイト: Visual Studioサーバー エクスプローラーでの管理のサポート

また、本日のSDKリリースでは、Visual Studioサーバー エクスプローラーを介した、Windows AzureにデプロイされているWebサイトの管理のサポートが、新たに追加されました。Windows AzureサブスクリプションをVisual Studioと関連付けると、Visual Studioサーバー エクスプローラーで、Windows Azure内で稼働している自分のすべてのWebサイトを確認できるようになりました:

4

サイトの一覧に加えて、サイトの開始/停止といった、サイトに対する一般的な操作も実行できます (これを行うには、サイトを右クリックするだけです)。Windows Azureから稼働中のサイト構成設定を取得するために、サイトの「設定の表示」コマンドも使えます:

5

これを行うと、Visual Studioで直接、稼働中のWebサイトの設定を参照し、編集/保存できます。これらの設定は、Windows Azureで稼働中のWebサイト インスタンスから、リアルタイムで取得されます:

6

保存した変更は、Windows Azureで稼働中のインスタンスに、即座に永続化されます。アプリケーションの再デプロイも、Windows Azure管理ポータルへのアクセスさえも必要ありません。

Webサイト: 診断ログのストリーミング

本日のリリースの本当に素晴らしい新機能の1つは、Windows Azure Webサイトのアプリケーション ログを、Visual Studioに直接ストリーミングできる機能です。これは、WebサイトがWindows Azureで稼働している際に、Webサイトを簡単にデバッグできる、非常に便利な機能です。

診断ログのライブ ストリーミングの有効化方法

この機能を試すために、最初にASP.NET Webアプリケーションにトレース ステートメントを追加し、それをWindows Azureに (Webサイトとして) 発行します。標準の.NET System.DiagnosticsトレースAPIを使って、アプリにトレース ステートメントを追加します。エラーを書き出すために、Trace.TraceError()メソッドを使います:

7

既定では、Webサイトにアクセスした際に、このメソッドは何も行いません。Webサイトでは、既定でトレースが無効化されているからです。

(デバッグするために) Webサイトでトレースを有効化したい場合、Windows Azure管理ポータルを介して行えます (有効化するために、ポータルのWebサイトの「構成」タブをクリックします)。または、(上で見たように) サーバー エクスプローラーで「設定の表示」コマンドを使って、Visual Studioで直接、有効化することもできるようになりました:

8

どのようにWebサイトのアプリケーション ロギングを有効化し、すべての「エラー」トレース イベントをロギングするように設定しているかに、注目してください。「エラー」が選択されていることを確認し、「保存」ボタンをクリックして、設定をWindows Azureに永続化します。ここで、再度Webサイトにアクセスすると、今回はエラーのトレース ステートメントが保存されます。

Visual Studioでトレース ステートメントを参照するには、サーバー エクスプローラーでWebサイトをクリックし、「出力ウィンドウでストリーミング ログを表示」コマンドを選択するだけです:

9

これによって、Visual Studio出力ウィンドウが現れ、稼働中のサイトでTrace.TraceError()ステートメントが実行されると、出力ウィンドウでそれが表示されます (ステートメントの実行からVisual Studio出力ウィンドウで表示されるまでの遅延は、わずか2秒程度です。これはデバッグ時に非常に便利です):

10

問題のデバッグが終わったら、再度Webサイトを右クリックし、「ログの表示の停止」コマンドを選択して、VSへのログの送信を停止します (そして、問題自体が解消したら、設定ウィンドウに戻り、ロギングを完全に無効化するようにします):

11

この機能は非常に便利であり、稼働中のWindows Azure環境でのみ発生する問題のデバッグがずっと簡単になります。この機能に関するさらなる情報 (および、コマンドラインからの使い方) については、Scott Hanselmanのブログ (英語 / 日本語(機械翻訳)) をご覧ください。

注: アプリケーション ログをVisual Studioにストリーミングする前に、Windows Azure Webサイトに /LogFiles/Application ディレクトリが存在している必要があります。最初にトレース ステートメントがディスクに書かれたときに、このディレクトリが作成されます。そのため、Visual Studioでログ ストリーミング表示を開く前に、最初にトレース ステートメントを実行するようにします。既存/新規のWebサイトの両方で、このディレクトリを自動作成する、Windows Azure Webサイトへのアップデートを、来週か再来週に行う予定です。これによって、トレース操作が発生する前でも、ログのストリーミングを開始できるようになります。それまでは、VSでログ ストリーミング ウィンドウを開始する前に、トレース ステートメントを一度書き出すようにしてください。

クラウド サービス: ハイ メモリVMインスタンスのサポート

2週間前、Windows Azure IaaSリリースの正式リリース (GA) を発表しました (英語 / 日本語)。このリリースの一部として、新しい4コア x 28GB RAM (A6)、および8コア x 56GB RAM (A7) のVMサイズを使った、大容量メモリのIaaS VMの作成のサポートがありました。

本日のWindows Azure SDK 2.0 for .NETリリースから、クラウド サービスもこれらの同じVMサイズでデプロイできるようになりました。

12

VMサイズの詳細については、http://msdn.microsoft.com/en-us/library/windowsazure/dn197896.aspx (英語 / 日本語 (機械翻訳)) をご覧ください。

クラウド サービス: 同時更新オプションによる、より速いデプロイのサポート

本日のリリースには、クラウド サービスのデプロイ/更新時間を改善するための、多数の拡張が含まれています。

サポートされるようになった新しいデプロイ オプションの1つとして、クラウド サービスの「同時更新」を行える機能があります (これを「爆破 (Blast) オプション」と呼ぶこともあります)。このオプションが使われると、我々は、クラウド サービスで既定で行われる、通常のアップグレード ドメイン ウォークを行いません (アップグレード ドメイン ウォークでは、サービス全体の停止を回避するために、クラウド サービスの一部を順番にアップグレードします)。代わりに、すべてのロールとインスタンスを同時にアップグレードします。本日のリリースで、Windows Azure内で (クラウド側で) この同時更新ロジックが動作するようになりました。これには、クラウド サービスの更新がずっと早くなるという利点があります。

これはすべてのロールを同時に更新するので、運用環境での通常の更新での使用には注意が必要なことに気を付けてください (さもないと、ユーザーがアプリのダウンタイムを経験します)。ですが、開発/テスト環境を迅速に更新したい (そして、アップデートの際の短時間のダウンタイムを気にしない) シナリオや、重要なアプリ更新を運用環境に迅速に展開する必要があり、短時間の可用性への影響は問題ないシナリオでは、これは素晴らしいものです。

Visual Studioを使って同時更新を行うには、クラウド サービス発行ウィザードの「詳細設定」タブを選択し、「配置の更新」チェックボックスの隣にある「設定」リンクを選択します:

13

これによって、新しいダイアログが現れます。その中で、新しい「同時更新」オプションを選択できるようになりました。

14

保存すると、このオプションを使ってこのクラウド サービスに対する更新が行われ、すべてのロールとインスタンスが同時に更新されます。

クラウド サービス: 改善された診断のサポート

本日のリリースには、クラウド サービスの診断機能に対するいくつかの主要な拡張も含まれています。

診断の簡単な構成

Visual Studioは、過去いくつかのバージョンで、Windows Azure診断に対応していました。本日のWindows Azure .NET SDKリリースで、適切な診断収集プランから始め、診断が提供するデータを活用して、エラーや稼働中のサービスに関する他の情報を見つけることを、さらに簡単にしました。

Visual Studioのソリューション エクスプローラーでクラウド サービス ロールを右クリックして、ロールの「構成」画面を表示できます:

15

本日のSDKリリースには、アップデートされた「診断」セクションが含まれています:

16

このアップデートされた診断セクションを使って、設定や初期化を行う接着コード (グル― コード) を書く必要なしに、既定の.NETトレース リスナーや自分のTrace.TraceError()コードで取り込まれるエラーを、どのように収集/保存したいかを構成できます。実行時に使いたい収集プラン (エラーのみ (既定)、すべての情報、またはカスタム プラン) を指定できます。カスタム プランは非常に高度で、エラー レベル、パフォーマンス カウンター、インフラストラクチャ ログ、収集間隔などに対するきめ細かい制御が可能です。

この構成UIを介して構成した診断プランは、diagnostics.wadcfg XMLファイルに永続化されます。サーバー エクスプローラーでクラウド サービス ロールのノードを開くと、このファイルが見つかり、オプションとしてテキスト エディターで直接、設定を編集できます。

17

このファイルはソース コードとともに保存されているので、ソース管理で管理可能です。また、このファイルはクラウド サービスとともにデプロイされ、デプロイ後に、アプリケーションを再デプロイする必要なしに、変更可能です (後で、このライブ更新の有効化方法を紹介します)。

稼働中のサービスの診断の参照

また、本日のリリースで、開発者がVisual Studioから直接、稼働中のクラウドサービスの診断データを確認し、クラウド サービスを再デプロイする必要なしに、クラウド サービスでのより詳細な診断の取り込みを動的に有効化/無効化することを、本当に簡単にしました (これによって、稼働中の運用環境の問題を迅速にデバッグするのが、ずっと簡単になります)。

発行済みのクラウド サービスに対して、Visual Studioで「診断データの表示」コマンドをクリックすることで、稼働中のサービスのエラーや他の重要な状態の概要を参照できるようになりました。このコマンドは、Visual Studioサーバー エクスプローラーのクラウド サービスの各ロールのノードにあります:

18

このコマンドを実行すると、Windows Azure内のクラウド サービスの診断テーブルをクエリし、その中の最近のデータの概要を一覧表示します。次の例では、SQLデータベースへの接続を指定するアプリの構成を更新し忘れ、その結果、デプロイ済みのサービスでストアド プロシージャ呼び出しに失敗していることが分かります。

19

さらに詳細な診断データは、クラウド サービスの診断ストレージ アカウントに収集/保存されています。「すべてのデータの表示」リンクをクリックして、詳細なデータに進みます。これは、新しいWindows Azureストレージ テーブル ビューアーを読み込みます。このビューアーのクエリ ビルダー機能を使って、診断データの表示を絞り込めます。次の例では、「Date and Time (virtual)」をクエリすることで、午後5:48以降の時間帯でフィルターしています。これは、データが収集/転送された時間ではなく、サービス内で発生した時間を参照しています。

20

これによって、問題を識別しようとするために、ログ履歴を確認するのが、ずっと簡単になります。

稼働中のサービスでの診断設定の更新

また、Visual Studioのサーバー エクスプローラーから直接、稼働中のクラウド サービスに対して、診断設定の構成と更新が可能になりました。診断構成は、プロジェクトにコードを追加する必要なしに、クラウド サービスを再デプロイする必要もなしに、いつでも更新可能です (これによって、稼働中の運用環境の問題を迅速にデバッグすることが、ずっと簡単になります)。

これを行うには、サーバー エクスプローラーで「Windows Azureコンピューティング」に進み、Windows Azureで稼働中のロール、またはロール インスタンスを選択します。それから、「診断設定の更新」コマンドをクリックして、実行時の診断設定を構成します:

21

このコマンドを選択すると、ロール/ロール インスタンスに対する診断設定を表示/編集できるダイアログが現れます。アプリケーション ログ設定、イベント ログ、パフォーマンス カウンター、 (IISなどの) インフラストラクチャ ログなどを、動的に変更できることに注目してください:

22

この例では、このロールで、パフォーマンス カウンターから、利用可能なメモリ、CPU、リクエスト/秒に関する情報を収集します。「パフォーマンス カウンター」タブを選択し、適切なカウンターを選択することで、これを行います。追跡したいパフォーマンス カウンターを選択することを加えて、転送期間 (分)バッファー サイズ (MB) も設定する必要があります。それぞれ1分、1024MBに設定します (これらを設定しないと、ログはストレージ アカウントにコピーされません):

23

「OK」をクリックすると、収集プランが、稼働中のロール インスタンスに即座に適用され、指定したデータが新たに収集され始めます。約1分以内に、ストレージ アカウントにWADPerformanceCountersTableが新規作成され、そこにパフォーマンス カウンターのデータが収集され始めることが分かります:

24

このテーブルをダブル クリックすると、パフォーマンス監視データの参照と確認を行えます。

(クラウド サービスを再デプロイする必要なしに) この機能を実行時に動的に有効化/無効化できるのは、非常に便利です。長期にわたって今後のすべてのデプロイで収集プランを変更したい場合は、実行時に適用した構成変更を、クラウド サービス プロジェクトのロール デザイナーに戻して適用できます (または、ソース管理にチェックインできます)。こうすることで、新しいクラウド サービスのデプロイが、既定でこの構成となります。

さらなる情報

この診断機能は本当に強力であり、クラウド サービス内の多数のロール (Web/ワーカー ロールの両方) やインスタンスから診断データを取り込むために使えます。そして、これによって、多階層のデプロイにおける問題をデバッグ/分析するのが、さらに簡単になります。

Visual Studioでクラウド サービス プロジェクトを新規作成した場合、トレース ステートメントをWindows Azureの診断エージェントに出力するための.NET診断リスナー機能が、既定で有効化されていることに注目してください。既存のASP.NET Webアプリケーション プロジェクトから始めて、後でそれをクラウド サービスに変換した場合、前述の診断機能を有効化するために、web.configファイルに次のトレース リスナー登録コードを手動で追加します:

<system.diagnostics> 
  <trace> 
    <listeners> 
      <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
        name="AzureDiagnostics"> 
        <filter type="" /> 
      </add> 
    </listeners> 
  </trace> 
</system.diagnostics>

ストレージ: Visual Studioテーブル エクスプローラー

以前のWindows Azure SDK 1.8リリースでは、Windows Azureストレージに対するVisual Studioツールのサポートを改良しました。前回のリリースでは、Windows AzureストレージのBLOB/キュー サービスの読み書き機能に集中しました。

本日のWindows Azure SDK 2.0リリースでは、Visual Studioサーバー エクスプローラーから、Windows Azureテーブルの作成/削除や、テーブル内のテーブル エンティティの追加/編集/削除も可能になりました。これによって、時間が節約され、Windows Azureテーブル ストレージを使うアプリを構築するために、簡単にVisual Studioを使えるようになります。

Visual Studioサーバー エクスプローラーで、単にWindows Azureストレージのノードを右クリックして、テーブルを新規作成し、名前を付けます:

25

テーブルを作成したら、オプションとして、Visual Studioから直接、そのテーブルにエンティティを追加できます (テーブル デザイナーで「エンティティの追加」ボタンをクリックするだけです):

26

テーブル内の既存のエンティティの編集/削除も可能です:

27

また、テーブル ツールの一部として利用可能な新しいクエリ ビルダーを使って、OData構文の専門知識を必要とすることなく、テーブル クエリを構築するのが、ずっと簡単になりました:

28

これらの機能によって、Windows Azureテーブル ストレージを使うのが、ずっと簡単になります。

サービス バス: アップデートされたクライアント ライブラリ

本日のリリースには、いくつかの素晴らしい新機能を備えた、アップデートされたサービス バス クライアント ライブラリも含まれています:

  • メッセージ参照のサポート: メッセージ参照によって、メッセージをロックしたり、明示的なメッセージの受信操作を行うことなく、キュー内の利用可能なメッセージを表示できます。デバッグのシナリオや、監視が関連するシナリオで、これは非常に便利です。
  • 新しいメッセージ ポンプ プログラミング モデル: 本日のリリースでは、新しいメッセージ ポンプ プログラミング モデルのサポートも追加しました。メッセージ ポンプのプログラミング セマンティクスは、イベント駆動型の、つまり「プッシュ」ベースの処理モデルに似ており、現在サポートされている受信ループの代替手段を提供します。このアプローチは、並行メッセージ処理をサポートし、可変レートでのメッセージ処理を可能にします。
  • アイドルのメッセージ エンティティの自動削除: 自動削除によって、キュー、トピック、サブスクリプションが自動的に削除されるまでの間隔を設定できます。

PowerShell: 多数の新しい自動化コマンド

本日のリリースで、(別個のダウンロードである) Windows Azure PowerShellが、PowerShell 3.0をサポートしました。本日のリリースには、Windows Azure Webサイト、クラウド サービス、仮想マシンと、アプリケーション サービス (サービス バスやWindows Azureストアなど) を自動化できる、多数の新しいPowerShellコマンドレットも含まれています。こちらで、完全な変更ログを確認できます。

いくつかの新機能の例を、次に示します:

Webサイト

次のコマンドを介して、PowerShellコンソールでHTTPログ、アプリケーション ログの両方をストリーミングできるようになりました:

Get-AzureWebsiteLog <Webサイト名> -Tail

クラウド サービス

すべてのWeb/ワーカー ロールを同時にアップグレードする、同時アップグレード オプションを選択することで、より早いデプロイのオプションを使えるようになりました:

Set-AzureDeployment -Mode Simultaneous

仮想マシン

次の2つのコマンドで、新しいハイ メモリ仮想マシン (A6、A7) を使えるようになりました:

New-AzureVM
New-AzureQuickVM

また、Windows Azureで新規作成した仮想マシンに対して、PowerShellのコマンドレットやスクリプトを簡単に実行できるようにするため、PowerShellを介してVMを作成した際に、既定でPowerShellリモート処理が有効化されます。

サービス バス

サービス バス名前空間の作成/一覧/削除が可能な新しく追加されたコマンドレットを介して、サービス バス名前空間を管理できるようになりました。

Windows Azureストア

PowerShellから、Windows Azureストアのアドオンを管理できるようになりました。利用可能なアドオンの一覧、アドオンの購入、購入済みのアドオンの参照、および購入済みのアドオンのプランのアップグレードが可能です。

たとえば、次のコマンドは、MongoLab (Windows Azureストア パートナーの1つ) によるMongoDBサービスを作成/デプロイします:

New-AzureStoreAddOn myMongoDB -AddOn mongolab -plan free -Location "West US"

ストレージ

PowerShellを介して、BLOBのCRUD操作をサポートするようになり、ストレージのBLOBコンテナーの管理、BLOBコンテンツのアップロード/ダウンロード、BLOBのコピーが可能です。これによって、アプリケーション向けに初期データを投入したり、アプリケーション開発時にストレージ アカウントの内容を迅速に確認したりするスクリプトを作成できます。

Web/ワーカー ロール向けのスキャフォールディング コマンドレット

スキャフォールディングのための新しいコマンドレットも追加しました。Add-AzureWebRole/Add-AzureWorkerRoleを使って、汎用的なWeb/ワーカー ロール向けのプロジェクトを作成できるようになりました。New-AzureRoleTemplateを使って、カスタマイズされたロール テンプレートを生成できます。Add-AzureWebRole/Add-AzureWorkerRoleでは、–TemplateFolderを介してこのロール テンプレートを使えます。

さらなる情報

本日のリリースでは、他にもいくつかのアップデート/変更があります:

  • WindowsAzure.Diagnostics.dllは、もはやWindowsAzure.StorageClient.dllに依存していません。アプリケーションで、診断との衝突を起こすことなく、WindowsAzure.Storage 2.0 NuGetパッケージをインポートして使えるようになりました。
  • Windows Azure SDK 2.0は、Windows Azure SDK 1.8/1.7とのサイド バイ サイドでの使用をサポートしていますが、Windows Azure SDK 1.6とのサイド バイ サイドのサポートは止めました。そのため、同じマシンにSDK 2.0がインストールされている場合、SDK 1.6のサービスのデバッグはできません。
  • WindowsAzure.ServiceRuntime.dll、WindowsAzure.Configuration.dll、およびWindows Azureキャッシュのアセンブリが、.NET Framework 4.0ランタイムに対してビルドされるようになりました。そのため、Windows Azure SDK 2.0への移行後は、.NET Framework 3.5ベースのアプリケーションを4.0に再ターゲットする必要があります。
  • また、最近、Windows Azure クラウド サービス サポート ライフサイクル ポリシーを公開しました。http://support.microsoft.com/gp/azure-cloud-lifecycle-faq/en (英語 / 日本語) で、詳細に確認できます。

さらに学ぶ

また、Channel9の今週のCloud Cover Showで、本日のSDKリリースに関してさらに学び、動作するいくつかのデモを見ることができます:

29

まとめ

本日のリリースには、さらに優れたクラウド ソリューションの構築を可能にする、多数の素晴らしい機能が含まれています。Windows Azureアカウントをすでにお持ちでない場合は、無料評価版に登録して、今日から使い始めることができます。Windows Azure .NET開発者センター (英語 / 日本語 (機械翻訳)) にアクセスして、本日のSDKリリースを使ったアプリの構築方法についてさらに学んでください。

関連情報

コメント
  1. […] Azure SDK 2.0リリースに関する前回のブログ ポスト (英語 / 日本語) 以降、(個別のダウンロードである) Windows Azure […]

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中