割り当て

App Engine アプリケーションは、一定の割り当てに達するまでリソースを利用できます。

プロジェクトに割り当てた App Engine リソースの毎日の使用状況と割り当ての消費状況は、Google Cloud Console の [割り当ての詳細] ページで確認できます。

課金制限と安全上の制限

App Engine には次の 3 種類の割り当てまたは制限があります。

  • 無料割り当て: 各アプリケーションには、無料で利用できるリソースの量が設定されます。アプリケーションの使用量上限とセーフティ リミットのどちらかを越えると、無料の割り当て枠を超過します。
  • 費用上限: プロジェクト オーナー課金管理者を兼ねている場合は、Google Cloud Console の App Engine の設定で費用上限を設定し、アプリケーションの費用を管理できます。アプリケーションが無効になっている間に、費用制限を少し超過することがあります。
  • 安全上の制限: 安全上の制限は、App Engine システムの整合性を維持するために Google が設定します。これらの割り当てにより、1 つのアプリがリソースを過剰に消費し、他のアプリの実行に支障をきたすことはありません。これらの制限を超えると、エラーが発生します。

費用上限

プロジェクト オーナー課金管理者は、プロジェクトの課金を有効にできます。

アプリケーションの作成後、費用制限を設定すると、1 日あたりのおおよその請求額の上限を設定できます。デフォルトでは、費用制限は設定されていません。アプリケーションの費用を細かく管理できるように、費用制限を指定するようにしてください。アプリケーションが無効になっている間に、費用制限を少し超過することがあります。

安全上の制限

安全上の制限には、毎日の割り当てと分単位の割り当てがあります。

  • 毎日の割り当ては、太平洋時間の午前 0 時にリセットされます。アプリケーションは、費用制限または安全上の制限(どちらか少ない方)に達するまで、この無料割り当て枠を超えてリソースを使用できます。
  • 分単位の割り当ては、アプリケーションが短時間ですべてのリソースを消費しないように制限します。また、別のアプリケーションが特定のリソースを占有しないように制限します。アプリケーションが短時間でリソースを消費し、分単位の割り当てを超えると、Cloud Console の [割り当ての詳細] 画面で、該当する割り当ての横に「制限中」と表示されます。1 分間の最大値に達しているリソースに対するリクエストは拒否されます。

割り当てを超過した場合に起きる状況とその対処方法については、リソースがすべて消費された場合をご覧ください。

ヒント: 1 分あたりの最大割り当ては、トラフィック量が多いレベルに合わせて調整され、ニュースでサイトが取り上げられてトラフィックが急増しても対処できるレベルになっています。特定の割り当てがこの条件を満たしていないと思われる場合には、問題管理ツールでフィードバックをお送りください。フィードバックを送信することは、割り当て増加をリクエストすることにはなりませんが、一般的なユースケースにおいて低すぎる可能性がある割り当てを Google が把握するために役立ちます。

非常に高いトラフィック レベルが予想される場合や、なんらかの理由でアプリが特に高い割り当てを必要とする(重要なプロダクトのリリース、大規模な負荷テストなど)場合、サポート パッケージ にサインアップすることをおすすめします。

リソースの補充

App Engine は、システムのリソース割り当てに対するアプリケーションの利用状況を記録しています。 App Engine は、毎日午前 0 時にすべてのリソース測定をリセットします。ただし、保存データの場合には、その時点でのデータストア ストレージの使用量を表します。

毎日の割り当ては毎日、太平洋時間の午前 0 時にリセットされます。分単位の割り当ては 60 秒ごとにリセットされます。

リソースがすべて消費された場合

アプリケーションが割り当てられたリソースをすべて消費すると、割り当てが補充されるまで、そのリソースは使用できなくなります。つまり、割り当てが補充されるまでアプリケーションが動作しない場合があります。

リクエストの開始に必要なリソースの場合、リソースがすべて消費されると、App Engine では、デフォルトで、リクエスト ハンドラを呼び出さずに、HTTP 403 または 503 エラーコードを返します。このエラーは、次のリソースがすべて消費された場合に発生します。

  • 帯域幅(受信と送信)
  • インスタンス時間

ヒント: アプリケーションが割り当てを超えたときに、カスタム エラーページを表示するようにアプリケーションを構成することもできます。詳しくは、Python(2.73.7)、JavaGo、PHP(5.57.2)、Node.js をご覧ください。

他のリソースの場合、リソースがすべて消費されたときにアプリケーションがリソースを利用しようとすると、例外が発生します。この例外はアプリケーションで処理できます。たとえば、わかりやすいエラー メッセージをユーザーに表示できます。Python API では、この例外は apiproxy_errors.OverQuotaError になります。Java の API の場合、この例外は com.google.apphosting.api.ApiProxy.OverQuotaException になります。Go API の場合は、appengine.IsOverQuota 関数で、エラーが割り当て不足による API 呼び出しの失敗を示しているかどうかを報告します。

次の例は OverQuotaError を取得する方法を表しています。メール関連の割り当てを超過した場合に、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.')

アプリがデフォルトの制限を超えている場合 メール割り当てを増加するには、SendGrid でメールを送信できます。他の割り当てを増やす場合、シルバー、ゴールド、プラチナのいずれかのサポート パッケージの契約があれば、サポート担当者に連絡して、スループット上限の変更をリクエストできます。それ以外の場合は、Google Cloud Console で特定の割り当てを選択し、[割り当ての編集] をクリックすることで、割り当て増加のリクエストを送信できます。

App Engine フレキシブル環境の割り当て

アプリケーションを App Engine フレキシブル環境にデプロイする場合、一部の Google Cloud Platform リソースが消費されます。これらのリソースを変更することはできず、割り当てに対してカウントされます。

リソース

アプリケーションでは、割り当てに従って次のリソースを使用できます。課金可能な制限が適用されるリソースには「課金対象」の印が付いています。リソースの量は 24 時間の割り当て量を表します。

追加リソースの料金については、料金ページをご覧ください。

デフォルトの Cloud Storage バケット

以下に示すように、デフォルトの Cloud Storage バケットには、毎日の使用量に対する無料の割り当て枠があります。デフォルトで無料のこのバケットは、プロジェクトの Google Cloud Console の App Engine の設定ページから作成できます。

以下の割り当ては、デフォルトのバケットを使用する場合に適用されます。 割り当てについては、Cloud Storage マルチリージョン バケットの料金をご覧ください。

リソース デフォルトの上限
デフォルトの Cloud Storage バケットに保存されるデータ 最初の 5 GB は無料。上限なし。
デフォルトの Cloud Storage バケットでのクラス A オペレーション 最初の 20,000 回/日は無料。上限なし。
デフォルトの Cloud Storage バケットでのクラス B オペレーション 最初の 50,000 回/日は無料。上限なし。
デフォルトの Cloud Storage バケットからのネットワーク送信 送信帯域幅の割り当てまでは無料。上限なし。

Blobstore

以下の割り当ては、Blobstore を使用する場合に適用されます。

Blobstore の保存データ
Blobstore に保存されているデータの合計量。有料と無料の両方に適用されます。
リソース デフォルトの上限
Blobstore の保存データ 最初の 5 GB は無料。上限なし。

コードと静的データのストレージ

静的データの制限
Go 以外の言語では、1 つの静的データファイルのサイズは 32 MB 以下にする必要があります。 Go での上限は 64 MB です。
ストレージの合計
ストレージの割り当ては、アプリのすべてのバージョンのコードと静的データを合計した量に対して適用されます。保存されているコードと静的データの合計サイズはメイン ダッシュボードの表に表示されます。個々のサイズは、[バージョン] 画面と [バックエンド] 画面にそれぞれ表示されます。1 GB を超えるコードと静的データを保存すると、毎月 1 GB あたり $ 0.026 が課金されます。

Datastore

保存データ(課金対象)の割り当ては、データストアおよび Blobstore 内のアプリケーションのために保存されたすべてのデータが対象になります。Google Cloud Console で [割り当ての詳細] 画面の [データストア] セクションに表示される他の割り当ては、データストア サービスの割り当てを表します。

保存データ(課金対象)

データストア エンティティに保存されているデータと、それに対応するインデックスと Blobstore の合計量。

データストアに保存されているデータの場合、大きなオーバーヘッドが発生する可能性があります。オーバーヘッドの量は、関連するプロパティの数や種類によって異なります。オーバーヘッドには組み込みインデックスとカスタム インデックスで使用される容量も含まれます。データストアに保存される個々のエンティティには、以下のメタデータが必要となります。

  • エンティティ キー。種類、ID またはキー名、エンティティの祖先のキーを含みます。
  • 各プロパティの名前と値。データストアにはスキーマが存在しないため、どのエンティティに対しても各プロパティの名前と値を一緒に保存しておく必要があります。
  • このエンティティを参照するすべての組み込みインデックス行とカスタム インデックス行。個々の行には、エンティティの種類、任意の数のプロパティ値(インデックスの定義によって異なる)、エンティティ キーが含まれます。

Bigtable レベルでのエンティティとインデックスの保存に必要なメタデータの詳細については、エンティティとインデックスの保存方法をご覧ください。

インデックス数
アプリケーションに存在するデータストア インデックスの数。アプリケーションの構成に表示されていなくても、削除されていない以前のインデックスも含まれます。制限について詳しくは、Datastore の制限のページをご覧ください。
書き込みオペレーション
データストア書き込みオペレーションの合計数。
読み取りオペレーション
データストア読み取りオペレーションの合計数。
小規模なオペレーション
データストアで実行された小規模オペレーションの合計数。小規模オペレーションには、データストア ID を割り当てるための呼び出しや、キーのみのクエリなどが含まれます。
リソース デフォルトの上限
保存データ(課金対象 1 GB まで無料。上限なし。
無料の割り当てを超えると、利用料金が適用されます。
インデックス数 200
エンティティの読み込み数 50,000 まで無料、上限なし。
無料の割り当てを超えると、利用料金が適用されます。
エンティティの書き込み数 20,000 まで無料、上限なし。
無料の割り当てを超えると、利用料金が適用されます。
エンティティの削除数 20,000 まで無料、上限なし。
無料の割り当てを超えると、利用料金が適用されます。
小規模なオペレーション 無制限

注: データストア管理者データストア閲覧者によるデータストア オペレーションはアプリケーションの割り当てに対してカウントされます。

デプロイ

デプロイ
デベロッパーがアプリケーションをアップロードした回数。現在の上限は 1 日あたり 10,000 回です。

1 つのアプリケーションでバージョンごとにアップロードできるファイル数は 10,000 個までです。 各ファイルのサイズは最大 32 MB に制限されます。 すべてのバージョンのファイルの合計サイズが無料の 1 GB の制限を超えると、毎月 1 GB ごとに $ 0.026 が課金されます。

インスタンス時間

インスタンスの使用時間には、インスタンスの稼働時間に応じて所定の金額が課金されます。インスタンスが起動すると課金が開始し、インスタンスがシャットダウンして 15 分後に課金が終了します。Cloud Console の [パフォーマンス設定] で設定したアイドル インスタンス最大数を超えるアイドル インスタンスについては課金されません。

フロントエンドとバックエンドのインスタンスには毎日の無料割り当て枠が別々に設定されています。App Engine サービスを使用する場合、適用される割り当てはサービスのインスタンス クラスによって決まります。

リソースまたは API 呼び出し 無料の割り当て
フロントエンド インスタンス(自動スケーリング モジュール) 28 時間の無料 F1 インスタンス/日
バックエンド インスタンス(基本 / 手動スケーリング モジュール) 9 時間の無料 B1 インスタンス/日

ログ

ログデータが取得されると、Logs API が課金されます。

ログの取得上限は、アプリケーションのリクエストログとアプリケーション ログのデータが対象となります。App Engine アプリケーションのロギングは Stackdriver によって提供されます。料金と制限について詳しくは、Stackdriver の料金をご覧ください。

メール

App Engine ではメッセージ単位でメールの課金を行います。受信者ごとにメッセージを 1 通とします。たとえば、同じメールを 10 人に送信した場合、10 通のメッセージとして計算します。

送信済みメッセージの数
アプリケーションから送信されたメッセージの総数。アプリケーションの最初の課金が処理されるまで、送信されたメッセージ数の上限は無料レベルのままになります。
送信済み管理者メッセージ
アプリケーションから管理者に送信したメッセージの総数。各管理者メールのサイズの上限は 16 KB です。この中にはヘッダー、添付ファイル、本文が含まれます。
メッセージの本文として送信されたデータ
メールの本文で送信されたデータ量。送信帯域幅の上限が適用されます。
送信された添付ファイルの数
メールと一緒に送信された添付ファイルの総数。
添付ファイルとして送信されたデータ
メールの添付ファイルとして送信されたデータ量。送信帯域幅の上限が適用されます。
リソース 1 日の上限(デフォルト) 最大レート
メール受信者の数 100 通 8 通/分
管理者メール 5,000 通 24 通/分
メッセージの本文として送信されたデータ 60 MB 340 KB/分
送信された添付ファイルの数 2,000 個 8 個/分
添付ファイルとして送信されたデータ 100 MB 10 MB/分

Mail API に追加できる承認送信者の上限は 50 です。

毎日のメール割り当てを超えるメールの送信

アプリによるメール送信のための割り当てを増やす必要がある場合、割り当てが多いサードパーティのメール プロバイダ(SendGridMailjetMailgun など)を使用できます。

リクエスト

送信帯域幅(課金対象)

リクエストに応答してアプリケーションが送信したデータ量。

次の操作が含まれます。

  • アプリケーション サーバー、静的ファイル サーバー、Blobstore がリクエストへの応答として送信したデータ。保護されたリクエストも保護されていないリクエストも含まれます。
  • メールで送信されたデータ。
  • URL 取得サービスが送信した HTTP 送信リクエストに含まれるデータ。
受信帯域幅

アプリケーションがリクエストから受信したデータ量。HTTP 受信リクエストのサイズは 32 MB 以下です。

次の操作が含まれます。

  • 保護されたリクエストまたは保護されていないリクエストからアプリケーションが受信したデータ
  • Blobstore へのアップロード
  • URL 取得サービスが HTTP リクエストの応答として受信したデータ
保護された送信帯域幅
リクエストに応答して、保護された接続経由でアプリケーションが送信したデータの量。保護された送信帯域幅には、送信帯域幅の上限が適用されます。
保護された受信帯域幅
保護された接続経由でアプリケーションがリクエストから受信したデータ。保護された受信帯域幅には、受信帯域幅の上限が適用されます。
リソース 上限(毎日) 最大レート
送信帯域幅(課金対象、HTTPS を含む) 1 GB まで無料。最大 14,400 GB まで。 10 GB/分
受信帯域幅(HTTPS を含む) なし なし

以下の表に、検索の無料割り当てを示します。検索呼び出しの各タイプの詳細については、JavaPythonGo のドキュメントをご覧ください。

料金表に従って Search API のリソースが課金されます。

リソースまたは API 呼び出し 無料の割り当て
ストレージの合計(ドキュメントとインデックス) 0.25 GB
クエリ 1,000 クエリ/日
インデックスへのドキュメントの追加 0.01 GB/日

アプリケーション コンソールでは、割り当てに API リクエストの実際の数が表示されます。 1 回の呼び出しで複数のドキュメントのインデックスを作成した場合、ドキュメントの数だけ呼び出し回数が増えます。

サービスの信頼性を維持するため、Search API には次の制限が設定されています。

  • アプリまたはインデックス内での実行できるクエリの回数は 1 分あたり合計で 100 分まで。
  • 1 分間に追加または削除できるドキュメントは 15,000 個まで。
また、インデックスごとにストレージの上限が 10GB に設定されます。アプリがこの上限を超えると、割り当て不足を通知するエラーが返されます。 Google Cloud Console の [App Engine Search] ページからリクエストを送信することで、この制限を最大 200 GB に増やすことができます。

注: これらの制限は分単位で適用されますが、Cloud Console には各制限についての日単位の合計数が表示されます。シルバー、ゴールド、プラチナ サポートをご契約の方は、サポート担当者に連絡して、スループットの上限を引き上げることができます。

ソケット

毎日のデータ制限と分単位のデータ制限(急増制限)があります。
ソケットを使用するアプリケーションには、分単位または日単位で制限がかかります。分単位の制限を設定すると、アプリケーションで急増した動作に対処できます。
リソース 1 日単位の上限 分単位(急増)の上限
ソケット バインド数3,456,00019,200
ソケットの作成数3,456,00019,200
ソケットの接続数3,456,00019,200
ソケットの送信数663,552,0003,686,400
ソケットの受信数663,552,0003,686,400
ソケットの受信バイト数3.3 TB2.4 GB
ソケットの送信バイト数3.3 TB2.4 GB

タスクキュー

Task Queue API の呼び出し回数
タスクをキューに入れるためにアプリケーションが Task Queue API を呼び出した回数。
タスクキューの保存タスク数
アプリケーションがキューに入れた未実行のタスクの合計数。
タスクキュー保存タスクのバイト数
アプリケーションが未実行のタスクをキューに入れるときに実行したタスクのバイト数。

タスクが実行されると、関連するリクエストがアプリケーションのリクエスト割り当てと比較されます。

これらの制限はすべてのタスクキューに適用されます。

リソース 上限(毎日) 最大レート
Task Queue API の呼び出し回数 1,000,000,000 なし
タスクキュー管理の呼び出し(Cloud Console を使用) 10,000 なし
リソース デフォルトの上限
タスクキューの保存タスク数 10,000,000,000
タスクキュー保存タスクのバイト数 なし
キューの最大数(push と pull の両方のキーを含むが、デフォルトのキューは対象外) 100 個

注: タスクを実行または削除すると、タスクが使用したストレージが解放されます。ストレージの割り当ては定期的に更新されるため、回収された容量がすぐに反映されない場合があります。キューの構成を調節して、保存タスクのバイト数の上限を構成できます。詳しくは、PythonJavaGoPHP のドキュメントをご覧ください。

以下の制限は、タスクキューのタイプに応じて適用されます。

push キューの制限
タスクの最大サイズ100 KB
キューの実行レート1 つのキューで 1 秒あたり 500 回のタスク呼び出し
タスクの最大延期期間 / ETA現在の日時から 30 日
バッチに追加可能なタスクの最大数100 個
トランザクションに追加可能なタスクの最大数5 個
タスクキューのデフォルトの最大数100 個。上限を増やす場合には、サポートにお問い合わせください。
pull キューの制限
タスクの最大サイズ1 MB
タスクの最大延期期間 / ETA現在の日時から 30 日
バッチに追加可能なタスクの最大数100 個
トランザクションに追加可能なタスクの最大数5 個
1 回のオペレーションでリース可能なタスクの最大数1,000 個
タスクバッチのリース時のペイロードの最大サイズ32 MB
タスクキューのデフォルトの最大数100 個。上限を増やす場合には、サポートにお問い合わせください。

cron

以下の割り当ては、cron ジョブに適用されます。

cron ジョブ
cron ジョブの数。
リソース デフォルトの上限
cron ジョブ 250 個の cron ジョブ

URL 取得

URL Fetch API の呼び出し回数
アプリケーションが URL 取得サービスにアクセスして HTTP または HTTPS リクエストを実行した回数。
URL 取得の送信データ
リクエストで URL 取得サービスに送信されたデータの量。送信帯域幅の上限が適用されます。
URL 取得の受信データ
レスポンスで URL 取得サービスから受信したデータの量。受信帯域幅の上限が適用されます。
リソース 上限(毎日) 最大レート
UrlFetch API の呼び出し回数 860,000,000 回 660,000 回/分
UrlFetch の送信データ 4.5 TB 3,600 MB/分
UrlFetch の受信データ 4.5 TB 3,600 MB/分
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

App Engine ドキュメント