しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

Windows Azure Web サイトのオートスケールログをじっくりと眺めてみた

このブログでは Web サイトはオートスケールで使え!と主張しているんですが、昨日初めて実際に動かしているサービスでオートスケールが実行されたので、その実行ログを眺めてみました。

ちなみにオートスケールで 1 から 2 インスタンスに増えた時のログは以下の通りです。

管理ポータルからは CPU 使用率の最小、最大とインスタンスの最小、最大しか基本的には指定できないですが、ログを見ると結構細かく設定できそうなことが分かりました。

例えば Web サイトでは CPU 使用率の平均と言っても期間が不明でした。しかし、ログを見る限りでは 45 分間の平均で判断している可能性がありますね。

        "TimeWindow": "PT45M",
        "TimeAggregation": "Average",

PT45M とは Pacific Time なのかよくわかりませんが、他の値を見る感じでは 45M はそのまま 45 分で間違いは無さそうです。

他にも ScaleAction には Cooldown といった値が確認できます。

      "ScaleAction": {
        "Direction": "Increase",
        "Type": "ChangeCount",
        "Value": "1",
        "Cooldown": "PT5M"
      }

これは推測になりますが、インスタンスを 1 つ増やしたあと 5 分間は増やす処理を行わないということかと思います。

ですので、この場合は 5 分後に CPU 使用率が高い場合には、更に増やす処理が実行されると考えられます。逆に減らす場合は 2 時間となっているので、急激にインスタンス数が減るということは無さそうです。

このあたりは以前にオートスケールを検証した結果と概ね一致していますね。

Windows Azure Web サイトのオートスケールを検証してみた - しばやん雑記

TimeGrain の値はよくわからなかったのですが、恐らくオートスケール処理を行うかチェックする間隔なのではないかと。

本当に Web サイトは奥が深いですね。

追記

Facebook のコメントでさとうなおきさんから、PT** という値は XML Schema の duration だと教えていただきました。

XML Schema Part 2: Datatypes Second Edition

仕様書を読んでみると、P は経過を T は日付と時間を区切ることを表しているようなので、PT45M というのは 45 分の経過を表していることになりますね。