Windwos Azure における ロギング、トレース、そして ELMAH ~ クラウドカバー Episode 56
さて、今回の Cloud Cover で紹介するのは、開発時にちょっとした用途で気軽に使えるログやトレースのための方法、ツールの紹介です。
まずはいつものようにニュースから。
◆ Announcing Simplified Data Transfer Billing Meters and Swappable Compute Instances
2011年10月1日から Azure の価格に変更が行われます。
まず、Extra Small インスタンスの価格が 20% 安くなります。
また、Compute サービスの価格をよりシンプルにするため、サイズ違いの Compute サービス間で割り当てられた使用量を交換可能(swappable)になりました。 たとえば Small サイズと Midium サイズであれば、パック料金あるいは無償利用分として割り当てられた Small サイズの10時間利用分を、Midium サイズ 5時間分の利用量として使用が可能になります。
なお、Extra Small と Small サイズの価格比率は 1:3 になりました(今回の 20% オフの影響もあり、1:2 ではなくなっています)。つまり750時間分の Small サイズ使用量割り当てがあれば、Extra Samll の 2250 時間利用量として利用いただけます。
また、データ転送量に関しては、全世界を Zone 1 と Zone 2 に分けて価格帯を定めることになりました。
これらの変更により、より分かりやすい価格システムで Azure をお使いいただけるようになります。
なお、この話の中で出てきますが、Steve Marx のタイトルが、「Tactical Strategist」(戦術的戦略家)から、「Tecnical Product Manager」になりました。後任の Tactical Strategist はいないそうです
◆ Windows Azure Storage Libraries in Many Languages
Steve の Blog において、Windows Azure の Storage サービスを使用するための様々な言語のライブラリが紹介されています。
最初「9 languages」と話がされていますが、Cloud Cover で Wade が突っ込んだように「Objective C」と「Windows Phone」用のライブラリも現在は追加されて挙げられています。
ということで、11の言語/端末ライブラリを持つ Windows Azure Storage。これかも様々な場面でご利用ください!
◆ Windows Azure Accelerator for Web Roles Version 1.1
Nathan Totten のブログから、Windows Azure Accelerater のアップデートのお知らせ。
一番の特長は、サイト更新(同期)のタイミングを指定できるようになったこと。これまでは定期的に Blob ストレージを確認し、変更があれば同期(更新)、となっていたのが、個別に同期を行うタイミングを指定できるようになりました。
これによりユーザーアクセスが少ないタイミングを見計らって更新を行う、といったことが可能になります。
ではここからが今回の本番。
Windwos Azure における ロギング、トレース、そして ELMAH について。
Steve がこれまでに書いた Blog エントリの中でも最も参照されていると言う 「Printf(“HERE”) in the Cloud」。
デバッグのために Diagnostic ライブラリを使うよりも、Blob を使って簡単に記録しておく手軽な手法。
やはり 「手軽さ」 というのはどんな場面でも人気があるようです。
まず今回は、これよりもうもう少し複雑になるものの、やはり簡便なトレースの方法 「Lightweight Tracing to Windows Azure Tables」を紹介。
この方法(Steve の作成した TableTraceListener)を使うことで、複数のライブラリを追加したり、複雑なコンフィギュレーションなしに、気軽にアプリケーションのログ(トレース)を行うことができる、というもの。(ちなみに、TableTraceListener は Visual Studio の拡張機能 NuGet を利用し、install-package smarx.TableTraceListener
のコマンドを実行することで、開発中のアプリに簡単に取り込むことが可能です)
Steve が作成した TraceListener ですが、Azure のトレーニングコース「Debugging an Application in the Cloud」において触れられている TraceListener と基本的な方向は同じです。
より詳しく知りたい、という場合は、こちらのトレーニングコースも確認ください。
よくわからない映像(?) を挟んで、次の話題 ELMAH(エルマー)に、。
ELMAH は “Error Logging Modules and Handlers” の略。
日本語での情報に関しては「ASP.NET MVCでELMAHを使う」といった Blog エントリがありますので、最初の取っ掛かりとして参照いただければよいかと。
ASP.NET 向けに作られた Elmah はそのままでもエラー記録ツールとして Windows Azure で利用することもできますが、ストレージに Windows Azure Table を使用することで、複数インスタンス使用時などにもまとめてエラーログをとることが可能になります。
この Windows Azure に対応した ELMAH のサンプルページが https://elmahdemo.cloudapp.net/
にて公開されていますので、まずはアクセスし、エラーメッセージを入力してエラーを発生させてみてください。
その後、「ELMAH」のタブをクリックし、https://elmahdemo.cloudapp.net/elmah.axd にアクセスすると、これまでに発生したエラーの一覧と、個別エラーの詳細が確認できます。
この Windows Azure 対応 ELMAH は「Using ELMAH in Windows Azure with Table Storage」にて Wade が解説を行っており、また、Wade が作成したコードが ELMAH with Windows Azure Storage にて公開されています。
これを使用することで、Windows Azure におけるエラー記録を簡単なコード追加で、またエラー管理を管理用のページから効率的に行えるようになります。
では最後に恒例の Tip of the Week!
今回の Tip は、Steve が以前 CloudXplorer で、$logs コンテナーを確認することができない、といったことの訂正放送。
数週間前の修正により、CloudXplorer から $logs を見ることができるようになったということです。
この機能($logs を見る)に関しては、まだ対応できているツールが多くないようですが、少なくとも CloudXplorer では確認することができます。
以上でクラウドカバー Episode 56、Windows Azure におけるロギング、トレース、そして ELMAH、の紹介を終わります。
では、Enjoy!