しばやん雑記

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

App Service Premium V2 が Public Preview になった

あまりアップデートが無かった App Service 周りですが、ここ数日で一気にインフラ周りにアップデートがあって色々と見るのが大変です。割高感しかなかった Premium がついに改善です。

Premium V2 自体は App Service Environment で使える Isolated と同じインスタンスタイプです。具体的には D1-3 v2 が使われるようになりました。

現在利用可能なリージョンは South Central US / West Europe / North Europe / Australia East / Australia Southeast の 5 つだけです。EU と Australia は Premium ユーザーが多かったのかもしれないです。

検証のために、日本から比較的近そうな South Central US を使うことにしました。

f:id:shiba-yan:20170731163932p:plain

ちなみに気になる価格ですが、ぶちぞう RD 曰く Preview 中でも値引きされていないのではないかという話でした。なので GA 後もこれまでの Premium と同じ価格で Premium V2 が使えるかもしれません。

確かに価格に関しては 50% 引きになっているという記載はありませんでした。

GA 済みの Isolated より高くなることはないと思うので、多分このままの価格で行くのだと思います。

パフォーマンスを検証

CPU に関してはこれまでの A シリーズから Dv2 にアップグレードされているので、ACU 換算で倍にはなっているはずです。ちなみにリージョンによっては Premium と Premium V2 で同じ CPU が使われています。

使われているのは Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz です。Azure で一番使われています。メモリも Premium と比べて 2 倍になっているので、これまでよりもバランスの良い構成になりました。

さて、App Service の最大の弱点としてストレージのパフォーマンスが悪いことがありました。

Premium V2 になっても共有ストレージのパフォーマンスは原理上変わらないはずですが、キャッシュなどで使われるストレージは Dv2 化の恩恵を受けているはずなので簡単に確認しました。

念のために Standard / Premium / Premium V2 の 3 環境でパフォーマンスを確認しました。

Standard

D:\local\Temp>StorageBenchmark.exe 1000 0
WriteFile : 929ms
ReadFile : 265ms
DeleteFile : 392ms

D:\local\Temp>StorageBenchmark.exe 1000 512
WriteFile : 1088ms
ReadFile : 245ms
DeleteFile : 326ms

Premium

D:\local\Temp>StorageBenchmark.exe 1000 0
WriteFile : 1120ms
ReadFile : 252ms
DeleteFile : 377ms

D:\local\Temp>StorageBenchmark.exe 1000 512
WriteFile : 1053ms
ReadFile : 221ms
DeleteFile : 516ms

Premium V2

D:\local\Temp>StorageBenchmark.exe 1000 0
WriteFile : 304ms
ReadFile : 102ms
DeleteFile : 169ms

D:\local\Temp>StorageBenchmark.exe 1000 512
WriteFile : 433ms
ReadFile : 95ms
DeleteFile : 140ms

Standard / Premium はハードウェアは全く同じなので、基本的に性能に差は出ないはずです。Premium V2 は他の 2 つに比べると 2-3 倍はストレージのパフォーマンスが改善しているようです。

ストレージのパフォーマンスが改善したと言っても共有ストレージには影響なさそうですが、最近の App Service では Dynamic Cache がデフォルトで有効化されるようなので効果があります。

同様にローカルストレージにファイルをキャッシュする Local Cache を使った場合にも効果があると思います。とは言え、大半のケースでは Dynamic Cache だけで有効だと思いますが。