Azureをプログラムする:Windows AzureのREST APIはどこから呼び出すと早いの?

プログラマの日山(@hiiyan0402)です。
Windows Azureアドベントカレンダーへの3月3日担当ってことで、今回は張り切ってますよ~。
今回はWindows Azure Service REST APIに関する調査結果について書きます。


お題「Windows AzureのREST APIはどこから呼び出すと早いのか?」

日本?アメリカ?ヨーロッパ?アジア?どこ?


Windows Azure Service Management REST APIとは?

Windows Azureには管理ポータルサイト以外でも、クラウドサービスや仮想マシンなどのリソースに対して操作ができるように、”Service Management REST API”というREST APIが公開されています。(リファレンスはこちら)

また、REST APIを呼び出すためのライブラリ(C#, Java, PHP, Node.jsなど)も公開されています。ライブラリを使うことにより、プログラムから簡単にREST APIを呼び出せるようになり、オリジナルのWindows Azure管理プログラムが作りやすくなります。
C#ライブラリの「Windows Azure Management Libraries」の使い方については、このエントリで解説していますのでよかったらご参照ください。

このREST APIを使うことで、現在起動している仮想マシン一覧を取得して、それらのステータスを一定間隔でチェック、もし停止してはいけないマシンなのに停止していたら管理者へメールで通知、のようなプログラムを作って、運用監視を効率化できたりします。


REST API呼び出しはちょっと遅い

しかし、このREST API、日本から呼び出した場合、1回の呼び出しで200~1000ミリ秒かかります。
全仮想マシンのステータスを取得する場合、REST APIの仕様上、仮想マシン名一覧を取得 → 各仮想マシンの詳細情報取得 (1呼び出し1台)、というプロセスが必要になります。仮想マシンが100台の場合、101アクセス必要になり、1アクセス500ミリ秒と仮定すると、約50秒かかります。並列処理させることでだいぶ短くすることができますが、過去の経験だと、1/3程度にしかならず、約17秒・・・遅いです。ちりも積もればってやつですね。


ちょっとでも呼び出しを早くするために呼び出し元の場所を検討する

Windows Azureは世界10箇所に、仮想マシンやプログラム実行基盤等を、簡単に配置させることができます。
今回は、以下の8ロケーションで仮想マシンを作成、そのなかでREST APIを呼び出すコンソールプログラムを起動し、
その呼び出し時間を計測しました。

  • 東日本
  • 西日本
  • 東アジア
  • 東南アジア
  • 米国東部
  • 米国西部
  • 西ヨーロッパ
  • 北ヨーロッパ

計測方法

  • 上記8リージョンで、仮想マシンを作成する
  • 仮想マシンはWindows Server 2012 R2 Datacenter、XSインスタンスとする
  • 仮想マシン上で、計測用の.NetFrameworkコンソールプログラムを起動させる
  • プログラムでは、以下のREST API呼び出しをそれぞれ100回ずつ100ミリ秒間隔で行う
    1. サブスクリプション情報取得 (Get Subscription)
    2. クラウドサービス一覧取得 (List Cloud Services)
  • 各100回の計測のうち、アクセス時間上位10件、下位10件を除外し(スパイク排除のため)、残り80件の平均アクセス時間を計測結果とする
  • 一覧取得するクラウドサービスは8件 (名前程度の基本的な情報しか取得していないです)

計測結果

サブスクリプション情報取得時間
クラウドサービス一覧取得

サブスクリプション情報取得 東日本 195ミリ秒
西日本 208ミリ秒
東アジア 255ミリ秒
東南アジア 284ミリ秒
米国東部 127ミリ秒
米国西部 111ミリ秒
北ヨーロッパ 195ミリ秒
西ヨーロッパ 198ミリ秒
クラウドサービス一覧取得 東日本 241ミリ秒
西日本 268ミリ秒
東アジア 368ミリ秒
東南アジア 377ミリ秒
米国東部 190ミリ秒
米国西部 165ミリ秒
北ヨーロッパ 281ミリ秒
西ヨーロッパ 279ミリ秒

まとめ

REST APIは米国西部からアクセスすると最速!

けど日本DCからでも十分早いですね!日本DC開設バンザイ!

TechTarget

クラウドエンジニア  日山 雅之による記事「Microsoft Azure スマート解説」がTechTarget Japanにて好評連載中です (全7回)