App Engine アプリケーションは特定の割り当て量までリソースを使用することができます。 こうした割り当て量があることで、App Engine はあなたのアプリケーションが自分の予算を超過しないようし、App Engineで動作する他のアプリケーションがあなたのアプリケーションのパフォーマンスに影響を与えないようにします。
App Engine には割り当て量や制限の種類が三つあります。:
全てのアプリケーションは無料で一定のリソース量を使用できますが、アプリケーション管理者は有料アプリを有効にして日額予算を設定することで、これらの割り当て量を引き上げることができます。 実際にアプリケーションが使ったリソースと、無料割り当てスレッド上で使用されたリソース量の分だけ料金が請求されます。
アプリケーションの課金を有効にした後、管理コンソールを使って日額予算の設定と割り当て量の調整ができます。 予算設定とリソース割り当てに付いての詳細情報は、価格を参照してください。 アプリケーションの課金を有効にした時、the application's safety limits increase. 詳細については リソースの項目を参照してください。
安全制限には、 日ごと割り当て と 分ごとの割り当てがあります:
割り当て量が超過した時に何が起こるかや割り当て量を超過した時の対処方法についてはリソースが枯渇した場合を参照してください。
Tip: For paid apps, the maximum per-minute quotas accommodate high traffic
levels, enough to handle a spike in traffic from your site getting mentioned in news stories.
特定のリソースでこの用件を満たしていないと思われる場合は、 please create a feature request issue in the issue
tracker.
機能リクエストをしかからといって特定のアプリで実際の割り当て量が上がるわけではありませんが、一般的なユースケースにおいてどの割り当て量が非常に低くなっているかを我々が理解する助けになります。
.
非常に高いトラフィックレベルが予想される場合や何らかの理由でアプリに特に高い割り当て量が必要な場合は(例えば、重要な製品のサービス開始や高負荷テストのために)、
シルバーサーポートかゴールドサポートかプレミアムサポートに登録することを推奨します。
App Engine はシステム割り当て量に対するあなたのアプリケーションリソース使用状況を追跡します。 無料と有効両方のアプリケーションにおいて、App Engine は各月のカレンダーの開始日に全てのリソース測定値をリセットします。(常に使用中のデータストレージ量を表す、Stored Dataを除く)。無料アプリケーションがリソースの割り当て量上限に達した場合は、割り当て量が補充されるまでアプリケーションはそのリソースを使用できません。 有料アプリは、予算の範囲内であれば無料割り当て量を超過しても大丈夫です。
日ごとの割り当て量は、太平洋時間の深夜に補充されます。分ごとの割り当て量は60秒間隔補充されます。
アプリケーションが割り当てられたリソースを全て消費した場合、そのリソースは割り当て量が補充されるまで使用できなくなります。 これは、割り当て量が補充されるまでアプリケーションは動作しないということです。
リクエストを開始するのに必要なリソースの場合、そのリソースが枯渇すると、既定ではApp Engine はリクエストハンドラは呼ばず、リクエストに対してHTTP 403エラーかHTTP 503エラーを返します。以下のリソースの場合に、こうした動作になります。:
ヒント:アプリケーションを設定し、割り当て量を越えた時にカスタムエラーページを表示することができます。 詳細については、 Python, Java, Goのカスタムエラー応答のドキュメントを参照してください。
その他全てのリソースでは、リソースが枯渇した場合にアプリケーションがリソースを使おうとすると例外が発生します。
この例外はアプリケーションでキャッチして、ユーザーに分かりやすいエラーメッセージを表示するなどの処理ができます。
Python APIでは、この例外は apiproxy_errors.OverQuotaError
になります。 Java APIでは、この例外はcom.google.apphosting.api.ApiProxy.OverQuotaException
になります。 Go APIでは、 the appengine.IsOverQuota
関数によってこのエラーが割り当て量不足によるAPI呼び出しの失敗を表しているかどうかを報告されます。
以下の例では、OverQuotaError
をどのようにキャッチするかを表します。
OverQuotaError
は、Eメール関連の割り当て量を超過した場合にSendMessage()
メソッドを使用すると発生することがあります。:
try:
mail.SendMessage(to='test@example.com',
from='admin@example.com',
subject='Test Email',
body='Testing')
except apiproxy_errors.OverQuotaError, message:
# Log the error.
logging.error(message)
# Display an informative message to the user.
self.response.out.write('The email could not be sent. '
'Please try again later.')
システムリソースを予期せず超過してしまった場合は、あなたのアプリケーションパフォーマンスをプロファイルすることを検討してください。
あなたのアプリケーションは既定の制限を超過していませんか? あなたが シルバーサポートやゴールドサポートやプレミアムサポートのパッケージを持っている場合は、 あなたのサポート担当に連絡してより高いスループットの制限を要求することができます。 そうでなければ、より多くのMail API 割り当ての申請 や その他割り当て量増加に関する機能リクエストの提出ができます。
アプリケーションは、割り当て量に左右されますが以下リソースを使用できます。 課金制限のリソース測定値は"(課金(billable))"と付いて表示されます。 リソース量は、24時間の間に割り当てられる量を表します。
リソースの追加使用分の費用は 価格のページに一覧表記されています。
各アプリは既定の Google クラウドストレージ bucket を持つことができます。 bucket を使うのに追加のアクティベーション、設定、パーミッション設定は必要ありません。 詳細情報については、あなたが使用しているプログラミング言語(Java | Python | Go | PHP)の既定bucketsに関するドキュメントを参照してください。 以下の割り当て量は、既定bucketの使用にのみ適用されます。
リソース | 無料時のデフォルト制限 | 課金有効時のデフォルト制限 |
---|---|---|
Default Google Cloud Storage Bucket Stored Data | 5 GB | 最初の 5 GB は無料; 上限なし |
以下の割り当て量は、blobstoreの使用にのみ適用されます。
リソース | 無料時のデフォルト制限 | 課金有効時のデフォルト制限 |
---|---|---|
Blobstore Stored Data | 5 GB | 最初の 5 GB は無料; 上限なし |
リソース | 無料時のデフォルト制限 | 課金有効時のデフォルト制限 | ||
---|---|---|---|---|
日ごとの制限 | 最大速度 | 日ごとの制限 | 最大速度 | |
Channel API Calls | 657,000回 呼び出し | 3,000回 呼び出し/毎分 | 91,995,495回 呼び出し | 32,000回 呼び出し/毎分 |
Channels Created | 100 channels | 6 個作成/毎分 | あなたの予算次第 | 60 個作成/毎分 |
Channel Hours Requested | 200 時間 | 12 時間リクエストrequested/毎分 | あなたの予算次第 | 180 時間リクエスト/毎分 |
Channel Data Sent | 送信帯域幅割り当て量まで | 22 MB/毎分 | 1 TB | 740 MB/毎分 |
リソース | 費用 |
---|---|
Code & Static Data Storage - 最初の 1 GB | 無料 |
Code & Static Data Storage - 1 GBを越えると | 毎月GBごとに$ 0.026 |
保存データ(課金可能)割り当て量は、データストアとタスクキューとBlobstoreにおいてアプリケーションが保存している全てのデータを参照します。 管理コンソール上の割り当て量の詳細(Quota Details)画面の"データストア(Datastore)" 項目における他の割り当て量は、特にデータストアサービスを参照します。
The total amount of data stored in datastore entities and corresponding indexes, in the task queue, and in the Blobstore.
データストアに保存されているデータは深刻なオーバヘッドが発生する可能性があるので、注意する必要があります。このオーバヘッドは関連するプロパティの数や型によって発生し、 built-in and custom indexesによって使用される空間を持っています。データストアに保存されている各エンティティは以下のメタデータが必要です:
See How Entities and Indexes are Stored for a complete breakdown of the metadata required to store entities and indexes at the Bigtable level and How Index Building Works for a detailed explanation of how datastore indexes are managed.
vacuum_indexes
コマンドを使った削除がまだされていないインデックスも含まれています。リソース | 無料時の既定の日ごと制限 | 課金有効時の既定の日ごと制限 |
---|---|---|
保存データ(課金可能) | 1 GB * | 1 GB 無料; 上限なし |
インデックス数 | 200 * | 200 |
書き込み操作 | 50,000 | 制限なし |
読み取り操作 | 50,000 | 制限なし |
小規模操作 | 50,000 | 制限なし |
*日ごとの制限ではなく、総制限です。昇順インデックスによって自動生成されたプロパティは、この制限にはカウントされません。
注意:データストア管理 とデータストアビューアによって生成されたデータストア操作は、アプリケーションの割り当て量としてカウントされます。
アプリケーションでアップロードできるファイル数はバージョンごとに10000までに制限されます。 各ファイルの最大サイズは32メガバイトに制限されます。 さらに、全てのバージョンの全ファイルの合計サイズが最初の1ギガバイトを超えた場合、一月あたりGBごとに$ 0.026かかります。
インスタンスの使用状況は、その起動時間ごとに決められた時間料金が課金されます。 課金対象時間はインスタンスが起動したタイミングで始まり、インスタンスが停止してから15分後に終わります。 管理コンソールのパフォーマンス設定( Performance Settings)タブで設定したアイドルインスタンスの最大数以上の課金がされることはありません。
フロントエンドとバックエンドのインスタンスは、日ごと無料割り当て量を別々に持っています。 モジュールAPIを使用する場合は、モジュールのインスタンスクラスがどの割り当てを適用するか決めるので注意してください。
リソースもしくは API 呼び出し | 無料割り当て量 |
---|---|
フロントエンドインスタンス (自動スケーリングモジュール) | 一日につき28 インスタンス時間が無料 |
バックエンドインスタンス (ベーシックおよび手動スケーリングモジュール) | 一日につき8 インスタンス時間が無料 |
ログ API は、ログデータを取得してそれが無料アプリと有料アプリの両方で使用可能な時に計測されます。
ログストレージにはアプリケーションのリクエストログとアプリケーションログが格納されており、無料アプリと有料アプリの両方で使用可能です。 有料アプリの場合、管理コンソールの ログの保存設定(Log Retention setting)を使って全ログのストレージサイズかログデータの保存期間、もしくはその両方を引き上げることができます。
リソース | 無料時のデフォルト制限 | 課金有効時のデフォルト制限 |
---|---|---|
ログデータ絵検索 | 100 メガバイト | 有料アプリの場合、上限なし。 |
ログデータ | 1 ギガバイト | ログデータは有料の場合は365日間、無料の場合は90日間保存される。 |
App Engine では、Eメールがつかう"メッセージごとに"課金します。メッセージは、各メールの送信先ごとにカウントします。 例えば、一つのEメールを10人に送ると10個のメッセージとしてカウントされます。
リソース | 無料時のデフォルト制限 | 課金有効時のデフォルト制限 | ||
---|---|---|---|---|
日ごとの制限 | 最大速度 | 日ごとの制限 | 最大速度 | |
Mail API の呼び出し回数 | 100 呼び出し | 32 呼び出し/毎分 | 1,700,000 呼び出し | 4,900 呼び出し/毎分 |
メッセージ送信 (課金可能) | 100 メッセージ | 8 メッセージ/毎分 | 課金アプリの場合、日ごとのEメール割り当て量はアプリが使用している課金システムに左右されます。後述するあなたの日ごとのメール割り当て量を増やすを参照して 各ケースにおける割り当て量の引き上げ方法を学んでください。 | 5,100 メッセージ/毎分 |
管理メール | 5,000 メール | 24 メール/毎分 | 3,000,000 メール | 9,700 メール/毎分 |
メッセージ本文の送信データ | 60 MB | 340 KB/毎分 | 29 GB | 84 MB/毎分 |
添付ファイルの送信数 | 添付ファイル2,000 個 | 添付ファイル8個/毎分 | 添付ファイル2,900,000 個 | 添付ファイル8,100 個/毎分 |
添付ファイルの送信データ | 100 MB | 10 MB/毎分 | 100 GB | 300 MB/毎分 |
課金を有効にした時、Eメールの割り当て量は一日につき100メッセージのままです。 あなたは明示的にメールの割り当て量を高くするよう要求しなければなりません。 管理コンソールの 割り当ての詳細(Quota Details)ページを開き、メール(Mail)の項目までスクロールしてください。 メール割り当て量の追加を要求するリンクがあるのが分かるでしょう。 リクエストを送信した後、同じリンクをもう一度開くことでその状態を監視できます。 これはリクエストの状態を示すページを表示します:リクエストが許可されたか、精査中か、拒否されたか。 リクエストが許可された場合は、日ごとの20,000メッセージの新たな割り当て量が反映されるまで数分かかることがあります。 リクエストが拒否された場合は、しばらく時間がたつまでメール割り当て量の引き上げを再度リクエストすることはできません。
あなたのアプリで一日に20,000メッセージ以上の送信が必要な場合、サポートパッケージ登録すると割り当て量の引き上げを要求できるようになります。
リクエストに対する応答で、アプリケーションが送信するデータ量。
これは以下を含みます:
リクエストからアプリケーションが受信するデータ量。受信した各HTTPリクエストは32MB以上にはできません。
これは以下を含みます:
リソース | 無料時のデフォルト制限 | 課金有効時のデフォルト制限 | ||
---|---|---|---|---|
日ごとの制限 | 最大速度 | 日ごとの制限 | 最大速度 | |
送信帯域幅 (課金可能, HTTPSを含む) | 1 GB | 56 MB/毎分 | 1 GB 無料;最大 14,400 GB | 10 GB/毎分 |
受信帯域幅 (HTTPSを含む) | 1 GB;最大 14,400 GB | 56 MB/毎分 | なし | なし |
検索用の無料割り当て量は以下の表に一覧でまとめています。 検索呼び出しの各タイプの詳細説明については Java, Python, Go のドキュメントを参照してください。
課金が有効になると、検索 API リソースは価格表の割合にしたがって料金が発生します。
リソースもしくは API 呼び出し | 無料割り当て量 |
---|---|
ストレージの合計 (ドキュメントとインデックス) | 0.25 GB |
クエリ | 日ごとに1000 クエリ |
ドキュメントをインデックスに追加する | 日ごと0.01 GB |
アプリケーションコンソールの割り当て量の項目には、APIリクエスト回数の現物が表示されます。 一回の呼び出しで複数のドキュメントをインデックス化する場合は、呼び出し回数はドキュメント数ごとに増えるので注意してください。
この検索 APIにはサービスの信頼性を保つために以下の制限が課されます。:
注意:これらの制限は分ごとに適用されますが、管理コンソールではそれぞれについて一日の合計が表示されます。 シルバーサポートかゴールドサポートかプレミアムサポートのお客様は、サポート担当に連絡してより高いスループットの制限を要求することができます。
リソース | 日ごとの制限 | 分ごと (バースト) の制限 |
---|---|---|
ソケットのバインド数 | 864,000 | 4,800 |
ソケットの作成数 | 864,000 | 4,800 |
ソケットの接続数 | 864,000 | 4,800 |
ソケットの送信数 | 663,552,000 | 3,686,400 |
ソケットの受信数 | 663,552,000 | 3,686,400 |
ソケットの受信バイト数 | 20 GB | 113 MB |
ソケットの送信バイト数 | 20 GB | 113 MB |
ヒント:あなたのキューの設定を調整することで、保存タスクのバイト数制限を設定できます。 詳細情報については Python, Java, Go ドキュメントを参照してください。
これらの制限は全てのタスクキューに適用されます:
リソース | 無料時のデフォルト制限 | 課金有効時のデフォルト制限 | ||
---|---|---|---|---|
日ごとの制限 | 最大速度 | 日ごとの制限 | 最大速度 | |
Task Queue API 呼び出し回数 | 100,000 | n/a | 1,000,000,000 | n/a |
Task Queue 管理呼び出しCalls (管理コンソールを使用して) | 10,000 | n/a | 10,000 | n/a |
リソース | 無料時のデフォルト制限 | 課金有効時のデフォルト制限 |
---|---|---|
Task Queue の保存タスク数 | 1,000,000 | 10,000,000,000 |
Task Queue の保存タスクのバイト数 | 500 MB。最大 1 GBまで設定可能。 | なし。最大 保存データ(課金可能)の容量まで設定可能 |
以下の制限はタスクキューのタイプごとに適用されます:
プッシュキューの制限 | |
---|---|
最大タスクサイズ | 100KB |
キュー実行速度 | キューごとに、1秒間に500 タスク呼び出し |
タスクの最大 カウントダウン/ETA | 現在の日時から30 日間 |
バッチで追加できるタスクの最大数 | 100 タスク |
トランザクションで追加できるタスクの最大数 | 5 タスク |
共通の制限 (プッシュキューとプルキュー) | |
---|---|
アクティブキュー(デフォルトキューは含まない)の最大数 | 無料アプリ: 10キュー, 有料アプリ: 100 キュー |
プルキューの制限 | |
---|---|
最大タスクサイズ | 1MB |
タスクの最大 カウントダウン/ETA | 現在の日時から30 日間 |
バッチで追加できるタスクの最大数 | 100 タスク |
トランザクションで追加できるタスクの最大数 | 5 タスク |
1回の操作で借りられるタスクの最大数 | 1000 タスク |
タスクのバッチを借りた時の最大ペイロードサイズ | 32MB (REST APIを使用している時は 1MB) |
共通の制限 (プッシュキューとプルキュー) | |
---|---|
アクティブキュー(デフォルトキューは含まない)の最大数 | 無料アプリ: 10キュー, 有料アプリ: 100 キュー |
注意: プルキューはPHPでは使用できません。
リソース | 無料時のデフォルト制限 | 課金有効時のデフォルト制限 | ||
---|---|---|---|---|
日ごとの制限 | 最大速度 | 日ごとの制限 | 最大速度 | |
UrlFetch API の呼び出し回数 | 657,000 呼び出し | 3,000 呼び出し/毎分 | 172,800,000 呼び出し | 120,000 呼び出し/毎分 |
UrlFetch 送信データ | 4 GB | 22 MB/毎分 | 1 TB | 740 MB/毎分 |
UrlFetch 受信データ | 4 GB | 22 MB/毎分 | 1 TB | 740 MB/毎分 |
リソース | 無料時のデフォルト制限 | 課金有効時のデフォルト制限 | ||
---|---|---|---|---|
日ごとの制限 | 最大速度 | 日ごとの制限 | 最大速度 | |
XMPP API の呼び出し回数 | 46,000,000 呼び出し | 257,280 呼び出し/毎分 | 46,000,000 呼び出し | 257,280 呼び出し/毎分 |
XMPPの送信データ | 1 GB | 5.81 GB/毎分 | 1,046 GB | 5.81 GB/毎分 |
XMPP の受信者数 | 46,000,000 受信者 | 257,280 受信者/毎分 | 46,000,000 受信者 | 257,280 受信者/毎分 |
XMPP 招待の送信 | 100,000 招待 | 2,000 招待/毎分 | 100,000 招待 | 2,000 招待/毎分 |
XMPP 送信済みスタンザ | 10,000 スタンザ | n/a | あなたの予算次第 | n/a |