SQL Azure Team Blog

SQL Azure Team Blogの「Visual Studio LightSwitch Beta 2 – Where Have You Been All My Life」を簡単に意訳した投稿です。

Visual Studio LightSwitch Beta 2 は、今週の前半に一般公開での提供を始めました。LightSwitchアプリケーションは、ブラウザやデスクトップ上で実行するのにSilverlightを利用します。Beta 2で、Windows AzureとSQL Azureへのデプロイをするための新しい機能を用意しました。

ツールを使い始める前から2時間後、私は本当に強い印象を受けました。LightSwitchは簡単なデータベースの設計、ユーザ画面の作成、基本的なフィールドバリデーションの実装、Windows Azureへのデプロイができます。来週、アプリケーション作成やLightSwitch開発体験のいくつかのビデオを投稿します。

Windows AzureやSQL AzureへのCRUD(Create、Read、Update、Delete)データドリブンアプリケーション開発、配置が本当に簡単で、部門ビジネスアプリケーションに最適です。ビジネス解析やノンプロフェッショナルの開発者の為に、.NETやコーディング知識は極めて少ない知識しか必要のない素晴らしいツールです。私が作成したサンプルアプリケーションで、私はコードを一行しか書いていません。SQL Azure ReportingやSQL Azure Data Syncのような現在CTP版のSQL Azureサービスを使用し、部門用・スモールビジネス用のハイブリッドアプリケーションをVisual Studio LightSwitchを使用して素早く簡単に作成できます。

LightSwitchに関する詳しい情報は、Jason ZanderSomasegarのBlogポストを読んでください。 LightSwitchを使用した私の体験と、私が作成したアプリケーションのスクリーンショットを掲載しています。

Windows Azure

Windows Azure Content Delivery Network(CDN)で、よく聞かれる質問は、「ノードが配置されている物理的な場所はどこ?」です。
現時点で、世界24か所で提供しています。

US/EMEA

US

  • バージニア州 アッシュバーン
  • カリフォルニア州 ベイエリア
  • イリノイ州 シカゴ
  • テキサス州 サンアントニオ
  • カリフォルニア州 ロサンゼルス
  • フロリダ州 マイアミ
  • ニュージャージー州 ニューアーク
  • ワシントン州 シアトル

EMEA

  • オランダ アムステルダム
  • カタール ドーハ
  • アイルランド ダブリン
  • イギリス ロンドン
  • ロシア モスクワ
  • フランス パリ
  • スウェーデン ストックホルム
  • オーストリア クリプトン
  • スイス チューリッヒ

アジア・太平洋/それ以外

  • 香港
  • ブラジル サンパウロ
  • 韓国 ソウル
  • シンガポール
  • オーストラリア シドニー
  • 台湾
  • 日本 東京


より大きな地図で Windows Azure CDN を表示

Windows Azure CDNの詳細については、Announcing Pricing for the Windows Azure CDN – Windows Azure – Site Home – MSDN Blogsを参照してね。

この記事は、UPDATED: 24 Nodes Available Globally for the Windows Azure CDN Including New Node in Doha, QT – Windows Azure – Site Home – MSDN Blogsを抜粋、意訳したものです。

Windows Azure

Windows Azure SDK 1.2からWindows Azure SDK 1.3へアップグレードすると、Windows Azure上で動作するアプリケーションで、ログ送信が止まってしまう可能性があります。問題が発生している事例をいくつか発見しています。
しかし、この問題は必ず発生するものではありませんが、もし、この問題に遭遇した場合は、MonAgentHostのイベントログを確認する必要があります。下のようなログが記録されているかもしれません。

[Diagnostics]: Checking for configuration updates 11/30/2010 02:19:09 AM.
[MonAgentHost] Error: MA EVENT: 2010-11-30T07:21:35.149Z
[MonAgentHost] Error:   2
[MonAgentHost] Error:   4492
[MonAgentHost] Error:   8984
[MonAgentHost] Error:   NetTransport
[MonAgentHost] Error:   0
[MonAgentHost] Error:   x:\rd\rd_fun_stable\services\monitoring\shared\nettransport\src\netutils.cpp
[MonAgentHost] Error:   OpenHttpSession
[MonAgentHost] Error:   686
[MonAgentHost] Error:   0
[MonAgentHost] Error:   57
[MonAgentHost] Error:   The parameter is incorrect.
[MonAgentHost] Error:   WinHttpOpen: Failed to open manually set proxy <null>; 87
[MonAgentHost] Error: MA EVENT: 2010-11-30T07:21:35.249Z
[MonAgentHost] Error:   2
[MonAgentHost] Error:   4492
[MonAgentHost] Error:   8984
[MonAgentHost] Error:   NetTransport
[MonAgentHost] Error:   0
[MonAgentHost] Error:   x:\rd\rd_fun_stable\services\monitoring\shared\nettransport\src\netutils.cpp
[MonAgentHost] Error:   OpenHttpSession
[MonAgentHost] Error:   686
[MonAgentHost] Error:   0
[MonAgentHost] Error:   57
[MonAgentHost] Error:   The parameter is incorrect.
[MonAgentHost] Error:   WinHttpOpen: Failed to open manually set proxy <null>; 87
[Diagnostics]: Checking for configuration updates 11/30/2010 02:20:11 AM.

このエラーは、Diagnostic Monitor がテーブルストレージにログを送信しようとするたびに、DiagnosticsAgent.exe(Windows SDK 1.2までは、MonAgentHost.exe)が書き込んでいます。

*. ScheduledTransferPeriod()ファンクションで使用するdiagnostics monitorツールからログを送信しようとした時に発生します。

回避策

この問題を解決するには、ServiceDefinition.csdef の<sites></sites>セクションを削除するかコメントアウトします。

<?xml version="1.0" encoding="utf-8"?>

<ServiceDefinition name="Your_Service_Name" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">

  <WebRole name="MyWebRole" enableNativeCodeExecution="true">

    <!–<Sites>

      <Site name="Web">

        <Bindings>

          <Binding name="Endpoint1" endpointName="Endpoint1" />

        </Bindings>

      </Site>

    </Sites>–>

    <Endpoints>

      <InputEndpoint name="Endpoint1" protocol="http" port="80" />

    </Endpoints>

    <Imports>

      <Import moduleName="Diagnostics" />

    </Imports>

  </WebRole>

</ServiceDefinition>

注意点

注意すべき点は、<sites></sites>セクションをサービス定義ファイルから削除orコメントアウトすると、アプリケーションをHWCで動作させることになります。これは、フルIISロールw3wp.exeの代わりにWaWebHost.exeプロセス上で動作させます。

定義ファイルに、<sites></sites>セクションがあるとフルIISWebロールでアプリケーションが動作します。、<sites></sites>セクションをコメントアウトすると、アプリケーションは、webロールベースのWindows Azure SDK 1.2でアプリケーションを動作させていることになります。

元情報

Handling problem: Diagnostics Monitor is not sending diagnostics logs to Azure Storage after upgrading Windows Azure SDK from 1.2 to 1.3を意訳したエントリーです。誤訳があるかもしれませんので、正確な情報は元記事を参照してください。

Windows Azure

Windows Azure SDK 1.2からWindows Azure SDK 1.3へアップグレードすると、Windows Azure上で動作するアプリケーションで、ログ送信が止まってしまう可能性があります。問題が発生している事例をいくつか発見しています。
しかし、この問題は必ず発生するものではありませんが、もし、この問題に遭遇した場合は、MonAgentHostのイベントログを確認する必要があります。下のようなログが記録されているかもしれません。

[Diagnostics]: Checking for configuration updates 11/30/2010 02:19:09 AM.
[MonAgentHost] Error: MA EVENT: 2010-11-30T07:21:35.149Z
[MonAgentHost] Error: 2
[MonAgentHost] Error: 4492
[MonAgentHost] Error: 8984
[MonAgentHost] Error: NetTransport
[MonAgentHost] Error: 0
[MonAgentHost] Error: x:\rd\rd_fun_stable\services\monitoring\shared\nettransport\src\netutils.cpp
[MonAgentHost] Error: OpenHttpSession
[MonAgentHost] Error: 686
[MonAgentHost] Error: 0
[MonAgentHost] Error: 57
[MonAgentHost] Error: The parameter is incorrect.
[MonAgentHost] Error: WinHttpOpen: Failed to open manually set proxy <null>; 87
[MonAgentHost] Error: MA EVENT: 2010-11-30T07:21:35.249Z
[MonAgentHost] Error: 2
[MonAgentHost] Error: 4492
[MonAgentHost] Error: 8984
[MonAgentHost] Error: NetTransport
[MonAgentHost] Error: 0
[MonAgentHost] Error: x:\rd\rd_fun_stable\services\monitoring\shared\nettransport\src\netutils.cpp
[MonAgentHost] Error: OpenHttpSession
[MonAgentHost] Error: 686
[MonAgentHost] Error: 0
[MonAgentHost] Error: 57
[MonAgentHost] Error: The parameter is incorrect.
[MonAgentHost] Error: WinHttpOpen: Failed to open manually set proxy <null>; 87
[Diagnostics]: Checking for configuration updates 11/30/2010 02:20:11 AM.

このエラーは、Diagnostic Monitor がテーブルストレージにログを送信しようとするたびに、DiagnosticsAgent.exe(Windows SDK 1.2までは、MonAgentHost.exe)が書き込んでいます。

*. ScheduledTransferPeriod()ファンクションで使用するdiagnostics monitorツールからログを送信しようとした時に発生します。

回避策

この問題を解決するには、ServiceDefinition.csdef の<sites></sites>セクションを削除するかコメントアウトします。

<?xml version="1.0" encoding="utf-8"?>

<ServiceDefinition name="Your_Service_Name" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">

  <WebRole name="MyWebRole" enableNativeCodeExecution="true">

    <!–<Sites>

      <Site name="Web">

        <Bindings>

          <Binding name="Endpoint1" endpointName="Endpoint1" />

        </Bindings>

      </Site>

    </Sites>–>

    <Endpoints>

      <InputEndpoint name="Endpoint1" protocol="http" port="80" />

    </Endpoints>

    <Imports>

      <Import moduleName="Diagnostics" />

    </Imports>

  </WebRole>

</ServiceDefinition>

注意点

注意すべき点は、<sites></sites>セクションをサービス定義ファイルから削除orコメントアウトすると、アプリケーションをHWCで動作させることになります。これは、フルIISロールw3wp.exeの代わりにWaWebHost.exeプロセス上で動作させます。

定義ファイルに、<sites></sites>セクションがあるとフルIISWebロールでアプリケーションが動作します。、<sites></sites>セクションをコメントアウトすると、アプリケーションは、webロールベースのWindows Azure SDK 1.2でアプリケーションを動作させていることになります。

元情報

Handling problem: Diagnostics Monitor is not sending diagnostics logs to Azure Storage after upgrading Windows Azure SDK from 1.2 to 1.3を意訳したエントリーです。誤訳があるかもしれませんので、正確な情報は元記事を参照してください。

Windows Azure

私のアカウントは、まだまだ絶賛VM RoleがPending中なのですが、ローカル環境でできるところまでは、のんびりとやってみました。 以下の投稿は、正直VM Roleを使用するのに必要が無い雑学な話です。
Windows Azure VM Roleを使用する手順には、次の2つがあります。

  1. Windows Azure VM Role統合コンポーネントのインストール
  2. sysprepの実行

Windows Azure 統合コンポーネント

Windows Azure統合コンポーネントは何をするものでしょうか?

Windows Server 2008 R2に規定でインストールされているHyper-V統合コンポーネントをWindows Azure用に置き換えている(っと思う)。
Hyper-Vコンポーネントは、Hyperバイザーとの接続などに使用するドライバーなどの集合体です。Hyper-Vコンポーネントを入れないとハイパーバイザー型の仮想化にならないのでパフォーマンス劣化します。
Windwos Azure統合コンポーネントも各種ドライバーが入って、Azure上でパフォーマンスが出るようにチューニングされる(と思います)。

他には、Windows Azure Integration Componentsが配置される

Windows Azure統合コンポーネントのインストール時に、「C:\Program Files\Windows Azure Integration Components\v1.3」配下に各種ファイルが配置されます。
「Agent」、「Azure Storage」、「Diagnostics」、「Powershell」、「ref」、「RemoteAccess」、「RemoteForwader」が作成されます。名前的に、普通のWindows Server 2008 R2をAzure OSっぽくする為のコンポーネントがどーんと入ります。

ドライバーとかアセンブリキャッシュの登録

各種ドライバーとアセンブリキャッシュに幾つかのファイルの登録が行われます。
例えば、「Microsoft.WindowsAzure.Firewall.Interop」、「Microsoft.WindowsAzure.RoleContainer」のようなAzure用のものが登録されます。

sysprepの応答ファイルの生成

C:\unattend.xml」が生成されます。sysprepの応答ファイルで、sysprepに使用されます。
設定値として、Administratorのパスワードを付与しています。Windows Azureで使用する為に、Administratorのパスワードを初期化しているのだと思います。
タイムゾーンをUTCに設定しています。これは、東京に変えたくなるのですが、不具合原因になるかも・・・?
InputLocale、SystemLocale、UILanguage、UserLocaleをen-usに設定しています。これこそ、ja-jpに変更したいのですが、どうなんでしょ?VM Roleを使用できるようになったら、試してみようと思います。

application.configでライセンス対応

VM Roleで使用するOSのライセンス料は、VM Role課金に含まれることが発表されています。ライセンス認証をしていないOSイメージをそのままアップデートできますし、たとえ認証していてもsysprepをかけた段階で認証がクリアされます。
KMSアクティベーションを使用して、ライセンス認証をしています。application.configに、

<licensing>
  <!– http://technet.microsoft.com/en-us/library/ff793409.aspx –>
  <productKeys>
    <add name="Windows Server 2008 R2 HPC Edition"  key="消去しとく" />
    <add name="Windows Server 2008 R2 Datacenter"   key="消去しとく" />
    <add name="Windows Server 2008 R2 Enterprise"   key="消去しとく" />
    <add name="Windows Server 2008 R2 Standard"     key="消去しとく" />
    <add name="Windows Web Server 2008 R2"          key="消去しとく" />
  </productKeys>
</licensing>

っと言う記述があります。これで、OSのライセンス認証を済ませるはず・・・・です。てことは、Enterprise縛りではないようですね。VM Role。HPC、Datacenter、Enterprise、Stamdard、WebエディションどれでもOK?かもね。
これはクラウドなんだけど、Windows Serverを安い(よね?多分。)料金で使用できるって捉え方が正しいのかな。