PowerShellを使用したAzureの管理(2)
こんにちは、2011年7月1日から、ついにWindows Azureのストレージなどにデータをアップロードする際の料金が無償になりましたね。
これは大きな変化です。例えば、データをアップロードする際に今まではストレージのトランザクション料金に加えて、転送料金だけで17.48円/GB掛かっていました。それが無償になってストレージのトランザクション料金のみとなりました。
もちろん、データ保存料金(ストレージ料金)の13.11円/GBは月額課金され続けますが、データをアップロードしたい場合に大幅に料金を削減できるようになったということです。データ保存料金は月額料金なのでランニングコストはデータ保存期間によってはそれなりの金額になりますが、さらに安価に安全にクラウドのパワーを使用できるようになりつつあります。
今回の内容
さて、では今回の内容を解説します。
今回は、前回インストールしたWindows Azure Platform PowerShell Cmdletsを使用して、ホステッドサービスの管理を特にログの管理を中心に試してみます。
ログの管理はコマンドのみで設定の変更が行え、運用者が稼働中に必要に応じてログを細かく取得できる設定を行えるようになりました。これによって、デフォルト値を開発者が設定しておき、必要に応じてIT Proがコマンドで稼働中に変更する運用が可能になりました。
また、複数インスタンスのログは診断モニターと呼ばれるAzureのログ出力機能を通じて全て一つのストレージにまとめて出力することができ、インスタンスが増減したとしても一つ一つのインスタンスの設定を意識せずに、まとめてログを管理することができます。これはAzureのログ出力の大きな特徴です。
図1:ログのアーキテクチャ図 |
ログ出力のための設定
では実際にサービスをアップロードする準備をしていきます。ログを有効化するには、最低限、csdefファイルでログモジュールを有効化する必要があります。具体的には、以下の
[リスト 01] ServiceDefinition.csdef
<Imports> <Import moduleName="Diagnostics" /> </Imports>
次に、cscfgファイルの
[リスト 02] ServiceConfiguration.cscfg
<ConfigurationSettings> <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=アカウント名;AccountKey=アクセスキー" /> </ConfigurationSettings>
Visual Studio 2010を使用している場合は、以下のようにGUIで設定することで上記の設定が行われます。
図2:Visual Studio2010での設定画面 |
実際のログ出力の設定はCmdletsで行うこともできますが、基本的な設定はパッケージファイルとして定義しておいて、その上で、運用中の必要に応じてCmdletsで設定を変更するようにするとよいでしょう。なお、今回使用するコマンドは以下のとおりです。
コマンド名 | 説明 |
---|---|
New-Deployment | パッケージファイルをデプロイするコマンド |
get-item | 指定された場所の項目を取得するコマンド。本稿では証明書を指定するために使用 |
Set-DeploymentStatus | デプロイしたパッケージを起動・停止など状態変更するコマンド |
Get-DiagnosticAwareRoles | ログ出力設定されたロールを表示するコマンド |
Set-WindowsEventLog | イベントログの出力設定を行うコマンド |
Move-Deployment | ステージング環境とプロダクション環境でサービスを入れ替えるVIPスワップを行うコマンド |
Remove-Deployment | デプロイしたパッケージを削除するコマンド |