インフラ

Cloud Storage(GCS)とは?仕組み・4つのストレージクラスとS3との違いを実装者目線で解説

AWSを利用したインフラ構築

Cloud Storage(Google Cloud Storage/GCS)は、Google Cloud が提供するオブジェクトストレージです。バケットにオブジェクトを置くだけで、画像・ログ・バックアップ・データ分析用の生データを容量無制限に保管できます。この記事では、GCSの基本構造(バケット・オブジェクト・ロケーション)、Standard/Nearline/Coldline/Archive の4つのストレージクラスとAutoclassによるコスト設計、IAMと暗号化・整合性モデル、S3互換APIとAmazon S3・Azure Blob Storage との違い、そして受託開発でGCSを採用する条件と見送る場面までを、実装者が判断できる粒度で整理します。

まとめ:Cloud Storage(GCS)の本質と採用判断の物差し

GCSの実体は「バケット」という入れ物に「オブジェクト」を置くフラットな構造のオブジェクトストレージで、ファイルシステムのようなディレクトリ階層は持ちません。フォルダに見えるものは、オブジェクト名に含まれる区切り文字を表示上でまとめているにすぎません。ここを取り違えると、大量オブジェクトの一覧処理で性能を落とします。

コストは「どのストレージクラスに置くか」「どこ(リージョン構成)に置くか」「どれだけ外に転送するか」の3点で決まります。保存単価はArchiveが最安ですが、取り出しには最小保存期間と取り出し料金が伴います。読み出し頻度が読めないデータはAutoclassに任せる、というのが実務の初手です。

採否の物差しはシンプルです。非構造データを大量に安く貯めて、アプリやBigQueryから参照するならGCSが第一候補になります。逆に、頻繁な部分更新やファイルロック、POSIX的なファイル操作が要るなら、それはファイルストレージやデータベースの領分です。GCSに寄せると設計が破綻するため、判断の詳細は本文の各章で条件付きに言い切ります。

Cloud Storage(GCS)とは:Google Cloudのオブジェクト保管

GCSは、Google Cloud 上でファイル形式を問わないデータ(オブジェクト)を保管するマネージドサービスです。サーバーの構築や容量の事前確保は不要で、置いた分だけ課金されます。まず押さえるべきは、オブジェクトストレージという方式そのものの仕組みです。ブロック/ファイルとの違いや、なぜフラット構造が大規模データに向くのかはオブジェクトストレージとは?仕組みとS3互換API・ブロックとの違いで整理しています。クラウドストレージ全般の3種類(オブジェクト/ファイル/ブロック)の使い分けはクラウドストレージとは?仕組み・3つの種類とオンプレとの違いを土台にしてください。

バケットとオブジェクト:immutableなデータとフラットな名前空間

GCSの最小要素は、バケット(コンテナ)とオブジェクト(データ本体)の2つです。オブジェクトは一度書き込むと部分的に書き換えできない不変(immutable)のデータで、更新は同名オブジェクトの上書き=新しい世代の作成として扱われます。バケット内はディレクトリ階層を持たないフラットな名前空間で、logs/2026/07/app.log のような名前も、実体は1本の平坦なキーです。オブジェクトバージョニングを有効にすれば、上書き・削除しても旧世代を世代管理で残せます。

ロケーション選択とregion・multi-regionの冗長性設計

バケット作成時に決めるロケーションは、可用性とレイテンシとコストのトレードオフを左右します。単一リージョン(region)は低レイテンシ・低コストで特定地域に閉じた用途向け、dual-region と multi-region は複数拠点へ自動複製して地理的な冗長性を持たせる構成です。作成後にロケーションは変更できないため、ここは初期設計で決め切る必要があります。

ロケーション 複製範囲 向く用途
Region 単一リージョン内 低レイテンシ・コスト重視。同一地域配置
Dual-region 指定した2リージョン 地域冗長を持たせつつ書き込み地点を制御したい場合
Multi-region 大陸単位の複数リージョン グローバル配信・高可用性を最優先する公開コンテンツ

コンピューティング(Cloud Run や GKE、BigQuery)と同一リージョンにバケットを置くと、リージョンをまたぐegress料金を避けられます。この配置の勘所は後段のコスト章とつながります。

4つのストレージクラスとAutoclassで決めるコスト設計と料金

GCSのコスト設計はストレージクラスの選択から始まります。クラスはアクセス頻度に応じた4段階で、保存単価が下がるほど最小保存期間と取り出し料金が発生します。

Standard〜Archiveの4クラスと最小保存期間の使い分け

クラス 最小保存期間 想定アクセス頻度 代表用途
Standard なし 頻繁 公開Webの配信、ストリーミング、処理中のデータ
Nearline 30日 月1回程度 月次バックアップ、たまに参照するアーカイブ
Coldline 90日 四半期に1回程度 災害対策のコピー、長期バックアップ
Archive 365日 年1回未満 法的保管、コンプライアンス記録の長期保存

落とし穴は最小保存期間です。Archiveに置いたオブジェクトを30日で消すと、残り335日分の保存料が早期削除料金として請求されます。「安いから全部Archive」は、書き換えや再取得が発生するデータでは逆に高くつきます。取り出し頻度が確実に低いデータだけを冷たいクラスに落とすのが原則です。

Autoclassとオブジェクトライフサイクル管理でクラス移行を自動化する

アクセスパターンが読めないデータには、バケット単位でAutoclassを有効化します。Autoclassは各オブジェクトのアクセス実績に応じてクラスを自動で上げ下げする仕組みで、早期削除料金の対象外でクラス移行を任せられる点が利点です。一方、Object Lifecycle Management は「作成から90日でColdlineへ」「365日で削除」のようなルールベースの移行・削除を定義する仕組みで、保持期間が明確なログやバックアップに向きます。読めないならAutoclass、決まっているならライフサイクルルール、と役割を分けると管理が単純になります。

アクセス制御・暗号化・整合性を支えるGCSの内部設計と仕組み

実装で事故を起こしやすいのは、公開範囲の設定と鍵の管理です。GCSはIAMを中心にした制御と、既定の暗号化を備えます。

IAMとuniform bucket-level accessで公開範囲を締める

GCSのアクセス制御は、プロジェクト/バケット単位で権限を与えるIAMと、オブジェクト単位のACLの2系統があります。運用を単純化するには、バケットでuniform bucket-level accessを有効にしてACLを無効化し、IAMに一本化するのが定石です。ACLとIAMが混在すると、意図せず公開状態のオブジェクトを見落とす原因になります。外部公開が不要なバケットには、公開アクセスの防止(public access prevention)を掛けて事故を物理的に塞ぐ設定が有効です。一時的な受け渡しには、有効期限付きの署名付きURL(V4署名)を発行し、権限を渡さずにダウンロード・アップロードを許可します。

既定のサーバー側暗号化とCMEK・CSEKによる鍵統制と強整合性

保存データはサーバー側でGoogleが管理する鍵によって既定で暗号化されます。鍵を自社で統制したい場合はCloud KMSのCMEK(顧客管理鍵)、鍵自体を外部で保持するならCSEK(顧客提供鍵)が選択肢です。整合性については、GCSはオブジェクトの書き込み後の読み取りや一覧取得で強い整合性(strong consistency)を提供し、書き込み直後に別クライアントが取得しても最新のデータが返ります。結果整合性を前提にしたリトライ設計を作り込む必要は薄く、その分アプリ側の実装が単純になります。

Amazon S3・Azure Blobとの違いとS3互換API・移行の勘所

マルチクラウドや移行の現場では、GCSと他社ストレージの互換性が判断材料になります。GCSはXML APIでS3互換のインターフェースを備え、HMACキー(アクセスキー/シークレット)を発行すればS3向けに書かれたツールやSDKの多くをエンドポイント差し替えで流用できます。

操作系ツールとS3互換API:gcloud storageとHMACキー

コマンド操作は現行のgcloud storageコマンドが標準で、旧来のgsutilから移行が進んでいます。既存のS3運用資産を活かすなら、GCSのHMACキーとXML APIエンドポイントを使ったS3互換モードでのアクセスが可能です。ただし互換は万能ではなく、マルチパートアップロードの細部やバージョニングの挙動、一部のメタデータ表現には差異が残るため、移行時は実データで疎通と再現を確認してから切り替えます。

Amazon S3・Azure Blob Storageとの対応関係

3大クラウドのオブジェクトストレージは概念が近く、用語だけが異なります。AWSを主戦場にしてきたチームはAmazon S3とは?オブジェクトストレージの仕組み・ストレージクラスと料金、Azure中心ならAzure Blob Storageとは?仕組み・Blobの種類とアクセス層と読み比べると、移行時の対応付けが速くなります。

観点 Cloud Storage(GCS) Amazon S3 Azure Blob Storage
入れ物 バケット バケット コンテナ
低頻度クラス Nearline/Coldline/Archive Standard-IA / Glacier系 Cool / Cold / Archive
自動階層化 Autoclass Intelligent-Tiering ライフサイクル管理
S3互換 XML API+HMACキー ネイティブ 非互換(独自API)

選定の実務では「既存の運用スキルとどれだけ地続きか」が効きます。BigQueryやVertex AIなどGoogle Cloudのデータ・AI基盤とデータをやり取りするなら、egressを避けられるGCSが素直な選択になります。

受託開発でCloud Storage(GCS)を採用する条件と見送る場面

ここは判断を言い切ります。GCSは万能のファイル置き場ではなく、向く用途と向かない用途がはっきり分かれます。

採用が向く条件=非構造データの大量保管とデータ基盤連携の場面

次の条件が揃うならGCSを第一候補にします。第一に、画像・動画・ログ・IoTの生データなど、追記中心で部分更新の少ない非構造データを大量に貯める用途。第二に、貯めたデータをBigQueryやVertex AIで分析・学習に回し、同一リージョンでegressを抑えたい構成。第三に、静的コンテンツの配信をCDN(Cloud CDN)と組み合わせて低コストに捌きたい場合です。これらは、既存システムのGoogle Cloud移行や内製化支援の中でGCSを設計に組み込む典型で、当社のインフラ構築(AWS・Google Cloud・Azure)でも要件整理からクラス設計・IAM設計まで併走します。

GCSを見送るべき要件と、オブジェクト前提で崩れる失敗パターン

逆に、GCSに寄せると設計が破綻するのは次のケースです。1件のファイルを多数のクライアントが頻繁に部分更新する、ファイルロックやPOSIXのファイル操作が要る——この要件はオブジェクトストレージの不変モデルと噛み合わず、ファイルストレージ(Filestore等)やデータベースの領分になります。よくある失敗は、RDBの代わりにGCS上のJSONを都度読み書きして整合性とレイテンシで詰まる設計、そして「安いから」と全データをArchiveに置いて再取得のたびに取り出し料金と早期削除料金がかさむ設計です。構造化データで検索・更新が主なら、GCSではなくCloud SQLのようなマネージドDBに寄せる判断を先に済ませてください。「非構造データの安価な保管庫」という原則から外れる用途は、素直に別サービスへ逃がすのが結果的に安く、速くなります。

Cloud Storage(GCS)の料金と実装に関するよくある質問

GCSの導入・実装・コストで問い合わせの多い5点に、実装者目線で簡潔に答えます。

Cloud StorageとGoogle Driveは何が違いますか?

Google Drive はエンドユーザー向けのファイル共有・同期サービスで、人が画面から使うことを前提にしています。Cloud Storage(GCS)は、アプリケーションやデータ基盤がAPI経由でプログラムから読み書きする開発者向けのオブジェクトストレージです。バックエンドのデータ保管や分析用データレイクを作るならGCSを選びます。

Cloud Storageの料金はどう決まりますか?

料金は主に3要素です。保存料(クラスとデータ量に応じた月額)、ネットワーク下り転送料(バケットの外へ出るegress)、操作料(読み書きなどのAPIリクエスト回数)。冷たいクラスは保存単価が安い一方で取り出し料金と最小保存期間があり、頻繁な取り出しでは割高になります。実額は保存量・アクセス頻度・転送先で大きく変わるため、想定ワークロードで見積もるのが確実です。

GCSはS3と互換性がありますか?

XML APIとHMACキーを使えば、S3互換モードでアクセスできます。エンドポイントと認証情報を差し替えれば、S3向けの多くのツールがそのまま動きます。ただしマルチパートアップロードやメタデータの細部に差異が残るため、本番切り替え前に実データで疎通確認を行ってください。

ストレージクラスは後から変更できますか?

できます。オブジェクト単位でクラスを変更でき、Object Lifecycle Management のルールや Autoclass で自動移行も可能です。ただし冷たいクラスへ移した直後に削除・再取得すると、最小保存期間に伴う早期削除料金が発生する点に注意します。

フォルダ構造は作れますか?

GCSはフラットな名前空間のため、実体としての階層フォルダはありません。images/2026/logo.png のように区切り文字を含む名前を付けると、コンソールやツール上はフォルダのように見えます。大量オブジェクトを扱う際は、この平坦構造を前提にプレフィックス設計とページング処理を組みます。

関連記事

資料請求

RELATED POSTS 関連記事