本文へ移動
runlot

クォータ

無料プランには10 GiBのファイルストレージが含まれ、Pro プランには100 GiBが含まれます。それを超えると、無料はアップロードを拒否し、Pro は差分を課金します。どちらでもファイルの読み取りと削除は引き続き行えます。

項目無料プロ
ストレージ10 GiB100 GiB込み
含まれる量を超えるとアップロード拒否GiB・月あたり $0.015、支出上限まで
オブジェクト数制限なし制限なし
キーの長さ1024 バイト1024 バイト
一覧 1 ページあたりの件数既定 100 件、最大 1,000 件同じ

クォータを超えると

ここで 2 つのプランの動作が分かれます。

無料プランでは、クォータは壁です。 10 GiB に達すると put と presign(PUT) が 507 quota_exceeded で拒否されます。課金に変わることはありません。

Pro プランでは、クォータは課金項目です。 100 GiB を超えてもアップロードは続き、超えて保持している分は超過使用量として課金されます。拒否されるのは組織の支出上限に達したときだけです。以下を参照してください。

どちらのプランでも、ブロックされるのは書き込みだけです。

操作無料、クォータ超過Pro、クォータ超過Pro、支出上限到達
put507 quota_exceeded動作、課金507 quota_exceeded
presign(PUT)507 quota_exceeded動作、課金507 quota_exceeded
get、head、list、delete、presign(GET)引き続き利用可能引き続き利用可能引き続き利用可能

容量がいっぱいの状態でもファイルを取得・削除できてはじめて、空き容量を確保できます。

try {
  await env.storage.put(key, body);
} catch (e) {
  if ((e as { status?: number }).status === 507) {
    return new Response("Storage is full", { status: 507 });
  }
  throw e;
}

Pro の超過使用量の課金方法

ストレージはカウンターではなくゲージなので、課金されるのはピークでも合計でもなく、1 か月間に保持していた量の平均です。サービスは組織のオブジェクトバイト数を 1 時間に 1 回サンプリングし、サンプルを平均します。その平均のうち 100 GiB を超える部分が GiB・月あたり $0.015 で課金され、GiB 単位で切り捨てられます。2 バイト超えた組織に明細行が立つことはありません。

価格と含まれる量は同じ単位 GiB(230 バイト)を使うため、「100 GiB 込み、3 GiB 超過」は読んだとおりに計算できます。

超過使用量はリクエストと CPU の超過使用量と同じ月間合計に加算され、支出上限が判定するのはその合計です。上限はデフォルトで有効で、定額料金に加えて月 $20 です。合計が上限に達すると、組織は翌月 1 日まで支出を停止します。リクエストには 429 budget_exhausted が返り、アップロードは無料プロジェクトがクォータで受けるのと同じ 507 quota_exceeded で拒否されます。その間も読み取りと削除は続けられます。

現在の使用量の確認

runlot storage status
runlot storage status --json
runlot usage

ダッシュボードの ファイルストレージ タブでも同じ値を確認でき、上の 2 つの動作のどちらが自分のプランに適用されるかも表示されます。

通知

どちらも組織の admin に送られ、種類ごとにプロジェクトあたり 24 時間に 1 回だけ送信されます。ダッシュボードの組織画面でも確認できます。

通知タイミング
storage_near_quota使用量がクォータの 90% に達した。両プランで送信されます。
storage_quota_hitアップロードが実際に 507 で拒否された。無料プランのみです。Pro での 507 は支出上限を意味し、そのときの通知は上限を明記する budget_exhausted です。

このページの目次