normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

Cerebrata 社の Azure Management Cmdlets を利用してみる

Windows Azureを利用している各位、Cerebrata社と呼ばれる会社をご存じだろうか?Windows Azure Platformがリリースされた初期から Windows Azure 向けのツールをリリースし続けている。私も T Pro (IT 担当者) のための Windows Azure Platform 運用管理ガイド 1.0の 「第 10 章: 便利なツール」で同社のツールを紹介させて頂いたが、今回は同社の Azure Management Cmdlets について掘り下げたい。

Azure Management Cmdlets とは?

詳細は英語サイトである http://www.cerebrata.com/Products/AzureManagementCmdlets/Default.aspx を参照して欲しいが、公式版Cmdletsに対して大幅に機能追加したツールである。ロールインスタンス数の変更、ストレージサービスのバックアップ、ログの転送等の細かな操作が可能だ。
上記サイトから 32bit版 と 64bit版がダウンロード可能であるため、利用している環境に合わせたインストーラを用いてて環境をセットアップして頂きたい。
同ツールは有償ツールであるが、試用期間が存在するため、是非一度利用していただきたい。

インストール後の処理

デフォルトでPowerShellは.NET 4.0をサポートしていないため、設定ファイルの編集とコマンドの実行が必要になる。

C:\Windows\System32\WindowsPowerShell\v1.0 (64bit版のインストーラを利用した場合は C:\Windows\SysWOW64\WindowsPowerShell\v1.0 )に、以下の内容を記述した PowerShell.exe.config を配置する。

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
    <supportedRuntime version="v2.0.50727"/>
</startup>
  • setup.cmdの実行

利用しているマシンが64bitマシンの場合、管理者権限でコマンドプロンプトを起動し、以下の例に従ってsetup.cmdを実行する。

C:\Program Files\Cerebrata\Azure Management Cmdlets>setup.cmd
---------------------------------------------------------------------------
Installing Cerebrata Azure Management Cmdlets PSSnapIn
---------------------------------------------------------------------------
Microsoft(R) .NET Framework Installation utility Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.


トランザクションのインストールを実行中です。

インストール段階を開始しています。
C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.dll アセンブリの進行状態については、ログ ファイルの内容を参照してください。
ファイルは C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.InstallLog にあります。
アセンブリ 'C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.dll' をインストールしています。
該当するパラメーター:
   logtoconsole =
   i =
   assemblypath = C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.dll
   logfile = C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.InstallLog

インストール段階が正常に完了しました。コミット段階を開始しています。
C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.dll アセンブリの進行状態については、ログ ファイルの内容を参照してください。
ファイルは C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.InstallLog にあります。
アセンブリ 'C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.dll' をコミットしています。
該当するパラメーター:
   logtoconsole =
   i =
   assemblypath = C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.dll
   logfile = C:\Program Files\Cerebrata\Azure Management Cmdlets\Cerebrata.AzureUtilities.AzureManagementCmdlets.InstallLog

コミット段階が正常に終了しました。

トランザクション インストールが完了しました。

ロールのインスタンス数を変更する

以下のコマンドを実行することで、ロールのインスタンス数を変更できる。

PS C:\> Add-PSSnapin AzureManagementCmdletsSnapIn
PS C:\> $subscriptionId = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"; //サブスクリプションIDを記述
PS C:\> $certificate = New-Object System.Security.Cryptography.X509Certificates.X509Certificate;
PS C:\> $certificate.Import("c:\\NormalianRemote.cer"); //リモードデスクトップ側で登録済みのクライアント証明書。cer形式でインポートすること
PS C:\> $serviceName = "normalianService"; //ホスティッドサービスの名前
PS C:\> $roleName = "MvcApplication1";
PS C:\> $instanceCount = 4; //変更したいインスタンス数
PS C:\> $slot = "Production"; //Production or Staging
PS C:\> Set-RoleInstanceCount -ServiceName $serviceName -Slot $slot -RoleName $roleName -InstanceCount $instanceCount -SubscriptionId $subscriptionId -Certificate $certificate -WaitToComplete;

Trying to update instance count for "MvcApplication1" role. Please wait.
Role instance count for "MvcApplication1" role updated successfully.

インスタンス数の変化については、以下の画像例を参考にしてほしい。

公式では用意されていないAPIを用意するとは、流石Cerebrata社。。。