本記事は
デジマウィーク2025
1日目の記事です。
📊
告知記事
▶▶ 本記事 ▶▶
2日目
📈

こんにちは、神崎です。 この記事では、Google Cloud のストレージサービスである Cloud Storage で、クラウド破産しないために気をつけるべきことについて、解説します。
Cloud Storage、便利ですよね。デジタルマーケティングの文脈では、BigQuery(データウェアハウス)にデータをロードする前のデータの一時格納先(データレイク)としてよく使います。
一方で、特に大規模(容量が大きい/数が膨大)なデータを扱う場合は、課金に気をつける必要があります。「気づいたら、ウン十万円請求」なんてことにならないために、細心の注意を払いながら利用しましょう。
本記事の目次は、下記のとおりです。
- 【前提事項】料金体系を確認する
- 【Google Cloud のプロジェクトレベルで気をつけること】予算とアラートを設定する
- 【Cloud Storage の設定で気をつけること】適切な「ロケーション タイプ」を選択する
- 【Cloud Storage の設定で気をつけること】適切な「ストレージ クラス」を選択する
- 【Cloud Storage の設定で気をつけること】「削除(復元可能)ポリシー(データ復旧用)」の設定要否を判断する
- 【Cloud Storage の設定で気をつけること】「オブジェクトのバージョニング(バージョン管理用)」の設定要否を判断する
- 【課金で本当に困ったら】「Google Cloud Billing サポート」に相談してみる
- おわりに
【前提事項】料金体系を確認する
当たり前ですが、料金体系には目を通しておきましょう。
料金体系は改訂される場合があるので、慣れている人ほど、注意が必要です。
バケットを作成する際に、画面の右方に設定に応じた料金体系が表示されるので、そちらも確認するようにしましょう。 「毎月の費用を見積もる」から、より詳細なコストシミュレーションを行うことも可能です。

【Google Cloud のプロジェクトレベルで気をつけること】予算とアラートを設定する
誰しも人間なので、どんなに気をつけていても、ミスするときはミスします。 大切なのは、ミスしたときに気づけるようにしておくことです。
Google Cloud では、期間を指定して、当該期間の予算を設定することができます。 たとえば、あるプロジェクトの月別の予算を6万円として、以下のようにしきい値を設けておくことが可能です。

これらのしきい値を超えたら、通知先として設定されたメールアドレスなどに通知アラートが自動送信されます。 このしきい値はなるべく細かく設定して、状況を適切に把握できるようにしておきましょう。
予算とアラートの設定方法については、以下のページを参照してください。
【Cloud Storage の設定で気をつけること】適切な「ロケーション タイプ」を選択する
「ロケーション タイプ」とは、データの地理的な保存場所のことを指します。費用、パフォーマンス、可用性がその影響を受けます。各「ロケーション タイプ」の料金体系については、前述のページを参照してください。

「Multi-region」または「Dual-region」のバケットに大規模(容量が大きい/数が膨大)なファイルを格納すると、多額のレプリケーション(複製)コストが発生する場合があります。
一例として「Multi-region:us (米国の複数のリージョン)」で、以下のようなマージ(Compose)処理を再帰的に行うケースについて、考えてみます。

「Multi-region」または「Dual-region」のバケットにオブジェクト(ファイル)が作成されると、同「Multi-region」または「Dual-region」内の複数のリージョンに、対象となるオブジェクト(ファイル)がレプリケーション(複製)されます。
前述のケースでは、個々のマージファイルがレプリケーション(複製)されることになるため、ループの回数やファイルの容量によっては、多額のレプリケーション(複製)コストが発生する恐れがあります。

このような、一時的な処理で Cloud Storage を使用する場合は、「ロケーション タイプ:Region」(単一リージョン)を選択することをおすすめします。その他の場合においても、可用性やパフォーマンスも考慮した上で、適切な「ロケーション タイプ」を選択するようにしましょう。
【Cloud Storage の設定で気をつけること】適切な「ストレージ クラス」を選択する
「ストレージ クラス」とは、オブジェクト(ファイル)を保管するストレージのタイプのことを指します。「ストレージ クラス」により、データの保存・取得・オペレーションの料金が決まります。各「ストレージ クラス」の料金体系については、前述のページを参照してください。

大事なのは、ユースケースを想定した上で、適切な「ストレージ クラス」を選択することです。
たとえば、分析や施策の実施に利用するデータなど、日常的にアクセスするデータファイルを格納する場合や、一時的にファイルを格納する場合は、データ処理の料金が安く、最小保存期間の取り決めがない「Standard」がおすすめです。
使用頻度が予測できないファイルを格納する場合は「Autoclass」も選択可能です。「Autoclass」では、以下のようなルールに従ってオブジェクト(ファイル)の「ストレージ クラス」が変更されます。
- オブジェクトのデータにアクセスすると、オブジェクトが「Standard Storage」に移行します。
- 30 日間アクセスされなかったオブジェクトは「Nearline Storage」に移行されます。
- 90 日間アクセスされなかったオブジェクトは「Coldline Storage」に移行されます。
- 365 日間アクセスされなかったオブジェクトは「Archive Storage」に移行されます。
「Autoclass」の詳細については、以下のページを参照してください。
【Cloud Storage の設定で気をつけること】「削除(復元可能)ポリシー(データ復旧用)」の設定要否を判断する
「削除(復元可能)ポリシー(データ復旧用)」の設定をオンにすると、削除されたバケットやオブジェクトが一定期間保持され、その期間内であれば復元できる状態となります。

たとえば、デフォルトの設定はオン(保持期間:7日間)となっており、削除後7日間はバケットやオブジェクトが保持されます。 実際に削除されたバケットの状態を確認すると、下図のように「Soft Delete Time」と「Hard Delete Time」の間に7日間の猶予が設けられていることが分かります。

当然、上記のバケットの中にあるオブジェクトもソフトデリートされた状態となっています。
注意しなければならないのは、ソフトデリートの状態にあるオブジェクトは、通常のオブジェクトと同様に課金対象になるという点です。 オブジェクトを削除したから、もう課金は発生しないだろうと思っていたら、実は課金が続いていて、多額のコストが発生した、なんてこともあり得ます。
そもそも「削除(復元可能)ポリシー(データ復旧用)」は、偶発的な削除や悪意のある削除からデータを保護するための機能ですが、この保護が不要なバケット(例:有効期間の短い一時データが大量に含まれるバケット)では、設定をオフにしておくことをおすすめします。
ソフトデリートの状態となったバケットやオブジェクトは、プロジェクトの削除という強硬手段を除き、手動で完全削除することはできません。 課金が発生するのを指をくわえて見ているだけ、といった哀しい状況にならないために、「削除(復元可能)ポリシー(データ復旧用)」の設定要否は慎重に判断するようにしましょう。
【Cloud Storage の設定で気をつけること】「オブジェクトのバージョニング(バージョン管理用)」の設定要否を判断する
「オブジェクトのバージョニング(バージョン管理用)」の設定をオンにすると、削除されたオブジェクトを一定期間非現行バージョンのオブジェクトとして、保持できるようになります。

この機能を使用すると、オブジェクトの変更を追跡して、特定のバージョンを復元できるようになるため、バージョン管理が求められる場合は、非常に便利な機能です。
一方で、非現行バージョンのオブジェクトも、ソフトデリートの状態となったオブジェクトと同様に、課金対象となる点には注意が必要です。 仮に「削除(復元可能)ポリシー(データ復旧用)」と「オブジェクトのバージョニング(バージョン管理用)」の双方をオンにしたとすると、下図のとおりとなります。

「オブジェクトのバージョニング(バージョン管理用)」も、設定要否は慎重に判断するようにしましょう。
【課金で本当に困ったら】「Google Cloud Billing サポート」に相談してみる
Google Cloud では、課金とお支払いのサポートを無料で利用できます。

「お支払い方法に Google Cloud からの不明な料金が表示され、これらの請求を停止することができない」など、本当に困ったことがあれば、相談してみてください。
おわりに
「Google Cloud クラウド破産」でググると、多数の事例が出てきます。 一番大事なのは、それらを対岸の火事と思わずに、自分ごと化して考えることなのではと思います。 機能で対策することももちろん大切ですが、マインドからしっかり対策していきましょう。
