割り当てと上限

このページでは、Cloud Storage の割り当てとリクエストの上限について説明します。

バケット

  • バケットの作成と削除は、プロジェクトごとに 2 秒あたり約 1 リクエストのレート上限があるので、ほとんどの場合、より少ないバケットでより多くのオブジェクトを使用するように計画します。たとえば、一般的な設計では、プロジェクトのユーザーごとに 1 つのバケットを使用します。ただし、1 秒間に多数のユーザーを追加する場合は、1 つのバケットを多数のユーザーで使用するように設計し(適切な権限を使用します)、バケット作成レート上限がボトルネックにならないようにします。

  • 可用性の高いアプリケーションを作成する場合には、アプリケーションのクリティカル パスでバケットの作成または削除に依存しないでください。バケット名は、一元化されたグローバル名前空間の一部になっています。この名前空間に依存すると、アプリケーションで単一障害点が生じます。この問題と前述の 2 秒に 1 リクエストのレート上限があるため、Cloud Storage で可用性の高いサービスを作成する場合には、必要なバケットをすべて事前に作成するようにしてください。

  • 各バケットの更新には 1 秒間に 1 回という上限があるため、CORS 構成の変更などで 1 つのバケットを頻繁に更新するとスケーラブルではなくなります。

  • 以前の IAM ロールを保持するメンバーはバケットごとに 100 人、バケットごとにすべての IAM ロールを保持するメンバーは 1,500 人までに制限されています。メンバーの例としては、個々のユーザー、グループ、ドメインが挙げられます。IAM の ID をご覧ください。

  • Pub/Sub 通知が有効になっているバケットについて:

    • バケットに通知構成を合計で 100 個まで設定できます。

    • バケットには、特定のイベントをトリガーするように設定された通知構成を最大 10 個まで設定できます。

    • 各通知構成には、カスタム属性を最大 10 個まで設定できます。

オブジェクト

  • Cloud Storage に保存されているオブジェクトごとに 5 TB の最大サイズ上限があります。

    • 単一のアップロード リクエストの最大サイズも 5 TiB です。接続時に時間を要するアップロードの場合は、途中の失敗から回復するためにも再開可能なアップロードを利用することを検討してください。詳細については、再開可能なアップロードをご覧ください。
  • すべてのカスタム メタデータのキーと値には、オブジェクトごとに 8 KiB の合計サイズ上限があります。

  • 同じオブジェクト名の書き込みには 1 秒間に 1 回という上限があるため、同じオブジェクト名に頻繁に書き込むとスケーラブルではなくなります。詳細については、オブジェクトの不変性をご覧ください。

  • バケット全体での書き込み数に上限はありません。これには、オブジェクトのアップロード、更新、削除が含まれます。バケットは最初 1 秒間に約 1,000 回の書き込みをサポートし、その後は必要に応じてスケーリングされます。

  • バケット内のオブジェクトに対する読み取り数に上限はありません。これには、オブジェクト データの読み取り、オブジェクトのメタデータの読み取り、オブジェクトの一覧表示などが含まれます。バケットは最初 1 秒間に約 5,000 回の読み取りをサポートし、その後は必要に応じてスケーリングされます。ただし、帯域幅には上限があります。

  • オブジェクトごとのアクセス制御リスト(ACL)のエントリ数の上限は 100 です。メンバーは個々のユーザー、グループ、ドメインのいずれでもかまいません。ACL スコープをご覧ください。

  • オブジェクトの作成:

    • 1 回の作成リクエストで、最大 32 個のオブジェクトからなる単一の複合オブジェクトを作成できます。

    • 複合オブジェクトを構成するコンポーネントの数に上限はありませんが、複合オブジェクトに関連付けられる componentCount メタデータは 2,147,483,647 個が上限となります。

    • 複合オブジェクトには、Cloud Storage に格納されたオブジェクトに対する合計 5 TiB のサイズ上限が適用されます。

JSON API リクエスト

  • JSON API を使用してバッチ リクエストを送信する場合、1 回のリクエストに 100 を超える呼び出しを含めないでください。リクエスト ペイロードの合計は 10 MB 未満にする必要があります。さらに呼び出しが必要な場合は、複数のバッチ リクエストを使用します。

XML API リクエスト

  • XML API を使用してリクエストを送信する場合、リクエスト URL と HTTP ヘッダーの合計サイズ上限は 16 KB です。

  • XML API を使用してリソースを一覧表示する場合、返されるアイテムの数の上限は 1,000 個です。

  • XML API マルチパート アップロードを実行する場合は、次の上限が適用されます。

    • マルチパート アップロードには最大 10,000 個のパーツを含めることができます。
    • 個々のパーツの最大サイズは 5 GiB です。
    • 個々のパーツの最小サイズは 5 MiB です。ただし、最後のパーツには最小サイズの制限がありません。
    • マルチパート アップロードから作成されたオブジェクトは、Cloud Storage に保存されるオブジェクトの全体的な 5 TiB のサイズ上限の対象となります。
    • マルチパート アップロードとアップロードされたパーツが、バケット内で未完成状態やアイドル状態になっている時間に制限はありません。
    • 1 つのオブジェクトに対して同時に発生するマルチパート アップロードの数に制限はありません。

サービス アカウントの HMAC キー

  • HMAC キーはサービス アカウントごとに 5 つに制限されています。削除されたキーはこの上限にカウントされません。

帯域幅

  • Cloud Storage から Google サービスへの下り(外向き)データにはデフォルトの帯域幅の割り当てがあり、リージョンごとにプロジェクトあたり 200 Gbps に設定されています。Cloud CDN への下り(外向き)には、この上限は適用されません。

    • Cloud Storage のデュアルリージョンから Google サービスへの下り(外向き)データは、デュアルリージョンを構成するいずれかのリージョンの割り当てにカウントされます。たとえば、us-central1 にある Compute Engine インスタンスが nam4 デュアルリージョンのバケットからデータを読み込んだ場合、その帯域幅の使用量は、us-central1 リージョンの全体割り当ての一部としてカウントされます。

    • プロジェクトごとにリージョンの割り当ての増加をリクエストできます。デュアルリージョンの割り当てを増やす必要がある場合は、デュアルリージョンを構成するリージョンのいずれか、または両方に対して増加をリクエストする必要があります。

      • 1 Tbps 未満のリクエストの場合:

        1. Cloud Storage サービス storage.googleapis.com が有効になっていることを確認します。

        2. Google Cloud Console で、IAM の [割り当て] ページに移動します。

        [ブラウザ] に移動

        1. 指標 storage.googleapis.com/google_egress_bandwidth を検索し、リソースを選択します。

        2. 必要な場所のチェックボックスをオンにします。

        3. [割り当てを編集] をクリックします。

        4. 必要な割り当てとビジネス上の正当な理由を入力します。

        5. [リクエストを送信] をクリックします。

      • 1 Tbps 以上のリクエストについては、テクニカル アカウント マネージャーまたは Google の担当者に連絡し、お客様に代わって Cloud 容量アドバイザーのリクエストを提出してください。

  • Cloud Storage から Google サービスへの下り(外向き)データにはデフォルトの帯域幅の割り当てがあり、マルチリージョンごとにプロジェクトあたり 50 Gbps に設定されています。 Cloud CDN への下り(外向き)には、この上限は適用されません。

    • ワークロードで高い下り(外向き)帯域幅が必要な場合は、リージョンまたはデュアルリージョンにあるバケットを使用することを強くおすすめします。それが可能でなく、マルチリージョンのデフォルトの割り当てを超える必要がある場合は、Google Cloud サポートにお問い合わせください。

    • マルチリージョンの帯域幅モニタリングは使用できません。network/sent_bytes_count 指標を近似値として使用できますが、その違いに注意してください。

      • network/sent_bytes_count の単位はバイトです。例: 1 GiB/秒 = 8 ギガビット/秒。

      • network/sent_bytes_count は、Compute Engine VM への下り(外向き)だけでなく、ネットワーク経由で送信されたすべてのバイトも追跡します。

      • network/sent_bytes_count 指標は 60 秒ごとにサンプリングされます。トラフィックが急上昇する場合、平均 60 秒を超える下り(外向き)が上限を下回っている場合でも、リクエストが短時間スロットリングされる可能性があります。

  • プロジェクトの下り(外向き)でロケーションの割り当てを超えると、影響を受けるバケットへのリクエストが再試行可能な 429 エラーで拒否されるか、抑制されます。

帯域幅モニタリング

Cloud Storage では、プロジェクトのバケットの Google 下り(外向き)帯域幅使用量を追跡するための帯域幅モニタリングが提供されています。帯域幅モニタリングはリージョンごとに集計され、過去 30 日間の使用量を追跡します。帯域幅モニタリングを複数リージョンで使用することはできません。

帯域幅モニタリングで追跡できるのは、以下に該当する使用量です。

  • プロジェクトで Cloud Storage サービス storage.googleapis.com を有効にする必要があります。

  • Cloud Storage バケットではなく、Google Cloud リソースによる使用量。

  • バケットがリージョンにある場合は、同じリージョン内のリソースによる使用量。

  • バケットがデュアルリージョンにある場合は、デュアルリージョンを構成するいずれかのリージョン内のリソースによる使用量。

  • JSON API GET Object メソッドか XML API GET Object メソッドのいずれかによる使用量。

帯域幅モニタリングには、次のリンクからアクセスできます。

Cloud Storage 帯域幅モニタリングを開く