LoginSignup
52

More than 5 years have passed since last update.

AzureのWeb AppのF1プラン(無料)ってどのくらい使えるの?

Posted at

はじめに

AzureでWeb Appを公開するときに、「無料の範囲だと、どのくらいの人数でどのくらいの回数を使えるの?」、「軽めの課金するなら、どのくらい使えるの?」という目安について物凄いザックリとしたメモです。『メモ』です。

Azure SQL Serverを使うWeb Appを例に考えてみた。結論から言うと、以下のようになった。

  • とりあえず開発してみる(利用者は1人):〇 ⇒無料枠でOK!
  • とりあえずサービス試行してみる(利用者は100名未満):〇~△ ⇒無料枠はギリギリ。SQLは課金必要な場合も?
  • さぁ、サービスとしてしっかり提供しよう(100~1000人くらいまで見据える):× ⇒しっかり課金しましょう。

なお当方のレベルは以下。

  • AzureもWeb Appも触ってみて半年程度(SQL Serverは3カ月?)。
  • 週末に、それも月1~2程度で趣味で遊んでいる。

※以下、「MiB」は「MB」もしくは「MByte」と略記。以下でのMBはMiBを意図。

AzureのWeb App&SQL Server周りの無料プラン~安めプランの仕様

今回にフォーカスするリソース上限だけをピックアップ。
無料枠や格安枠は、CPU利用時間がネックになる。
なお通信量も、同梱分の無料枠があるので、そこは意識する。
メモリ使用量も記載はするが、1hでリセットされるし、要するにプロセスのロード量なので、上限に引っかかることはまぁ無かろう。

Web App : F1プラン(無料)

  • 料金:0円
  • CPU利用時間:60分/日 且つ 2.5分/5分まで。
  • 送信データ量:165MB/日まで。ただし、余った分は翌日まで持ち越せる(1日分ロールオーバー)

その他。
- メモリ使用量:1024MB/hまで。
- 同時に建てられるインスタンスは10個まで。
- 利用できるストレージは1GBまで。

Web App : Sharedプラン

  • 料金:1168円(1.57円/h × 1か月分)
  • CPU利用時間:240分/日まで。

  • メモリ使用量:1GBまで。

送信データ量は略。

Web App : Basicプラン

  • 料金:5691円(7.65円/h × 1か月分)
  • CPU利用時間:上限なし(1core 占有)

  • メモリ:1.75 GBまで

  • ストレージ10 GB

送信データ量は略。

Azure SQL : Freeプラン

  • 料金:0円
  • データベースの最大サイズ:32MBまで。

  • パフォーマンス:~5DTU

※Web Appからの連携前提でしか利用できないので注意。

Azure SQL : Basicプラン

  • 料金:575円(\0.78/時間 × 1か月分)
  • データベースの最大サイズ:~2GBまで

  • パフォーマンス:~5DTU

実際のリソース消費例

試算のベースとなるリソース消費量

以下のようなWeb APP + SQL Serverでのサービス提供の場合を、例にとって試算してみる。

  • 5分に一回のポーリングで100Byte未満のデータを送付してSQLデータベースに記録(POST)。
  • ときおり、10KB程度のデータをSQLデータベースから参照(GET)。

試行したソースコードは以下。
アプリはNode.jsで作成して、通信はRESTful APIを用いて行った。
https://github.com/xingyanhuan/fluorite-restful-sample

この場合の、1時間でのリソース消費量は以下のようになった。ただし、メモリ使用量は1hでリセットされるので、そのタイミングを起点とした。

  • CPU時間:0.15分/h
  • 通信量:0.06MB/h
  • メモリ使用量:130MB
  • データベース増加量:0.12MB/h

実際の稼働グラフは以下のようになっていた。
スクリーンショット 2017-05-24 20.57.12.png

このとき、メモリ使用量は要するにプロセスの展開されたメモリサイズ+ヒープサイズと見なせる。実際のところ、Windows10環境下で「node server.js」場合も100MB強ほど使われたので妥当。したがって、メモリ使用量に関しては時間軸との相関は無視できる。

無料のプラン、もしくは最低限の課金でどこまで使えるか?

上記のリソース使用量であれば、×24hしたところで以下の通りなので、
全てFreeプランの範囲で収まることが分る。
「とりあえず開発してみる(利用者は1人)」であれば、24時間且つ7日間使い続けても、データベースもまだFreeの範囲で収まる。

上限時間 24h 7days Freeプラン上限
DB追加量 2.8MB 19.6MB ~32MB
CPU時間 3.6分 1日でリセット ~60分/日
通信量     1.44MB 1日でリセット ~164MB/日

続いて、「とりあえずサービス試行してみる(利用者は100名未満)」場合を考えよう。
簡単のため、全ての利用者は同じ利用頻度とする。

仮に 100人 に提供する場合は、1時間当たりの消費量は単純に100倍になるので以下と推定できる。

CPU時間:0.15*100=15分/h
通信量:0.06*100=6MB/h
データベース増加量:12MB/h

2.5時間と少し でデータベースのリソース上限32MBに達してしまうことが分かる。逆に言うと、1人当たりの1日の利用時間が2.5時間までのサービス(それ以前のデータは削除する)なら成立する。

SQLデータベースをBasicプランにスケールアップしたとすると、最安の575円でリソース上限は~2GBになる。よって、7日間くらい まで(データ蓄積)利用可能になる。

しかし、こんどは 4時間経過 時点でCPUが1日のリソース上限に達する。逆に言うと、1人当たりの1日の利用時間が4時間未満のサービスなら成立する。

100人利用の場合を表にしてみよう。

上限時間 2.5 h 4.0 h 16.0 h 24 h
DB追加量(MB) 30 48 192 288
CPU時間(分) 37.5 60 240 360
通信量(MB)     15 24 96 144
App Free + DB Free ○:0円 ×:DBが上限超え ×:DBが上限超え ×:DBが上限超え
App Free + DB Basic ○:576円 ○:576円 ×:CPUが上限超え ×:CPUが上限超え
App Shared + DB Free ○:1738円 ○:1738円 ○:1738円 ×:CPUが上限超え
App Basic + DB Basic ○:7292円 ○:7292円 ○:7292円 ○:7292円

今回の試算で用いたサンプル「5分ごとにポーリングで100Byteほど送信、データベースの増加分は0.12MB/h」の場合は上記の表から、以下のような目安でとらえれば良い、と言えるかな。

  • サービスの提供時間を 2.5h /日 程度に収めれば、完全に無料枠の範囲、
  • 4.0~16.0h程度欲するなら、580円~1700円/月の課金が必要(100円/人/月なら、20人でペイする)、
  • 7300円/月を課金すれば、リソース制限は気にしなくてOK、

もちろんこれは一例なので通信頻度や記録するデータ量によっても変わる。誰かの参考になれば幸い。

※お試しするのに7292円の「Web App:Basicプラン+SQL Server : Basicプラン」での運用は高いが、比較のために入れた。この「Web App:Basicプラン」ならCPUの利用時間に上限は無い。

補足

リソース消費量は、対象のWeb Appのインスタンスを選んで、左パネルから「クォータ」を表示することで参照可能。なお、CPU時間は1日単位なので、今回の検証では適当な1時間で差分を取った。

スクリーンショット 2017-05-24 07.11.09.png

参考リンク

[App Service の価格]
https://azure.microsoft.com/ja-jp/pricing/details/app-service/

[App Service プラン]
https://azure.microsoft.com/ja-jp/pricing/details/app-service/plans/

[Azure サブスクリプションとサービスの制限、クォータ、制約]
https://docs.microsoft.com/ja-jp/azure/azure-subscription-service-limits

[データ転送の料金]
https://azure.microsoft.com/ja-jp/pricing/details/bandwidth/

[データベース トランザクション ユニット (DTU)]
https://docs.microsoft.com/ja-jp/azure/sql-database/sql-database-what-is-a-dtu

[価格 - SQL Database]
https://azure.microsoft.com/ja-jp/pricing/details/sql-database/

[EXEC sp_spaceused] - データベースの現時点の利用サイズを取得
https://msdn.microsoft.com/ja-jp/library/ms190674.aspx

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
52