動かざることバグの如し

殿、温めておいたバグがこちらでございます

GCPのGoogle Cloud Storage無料枠を使うには注意が必要

GoogleAWSと違って半永久的に使える「枠」が用意されている。例えばUSリージョンの一番スペックの低いマシンならずっと起動していても課金されない(1台のみだが)

AWSでいうEC2にあたるGoogle Cloud Storageにも無料枠が用意されている。さすがGoogle先生太っ腹

で、パット見5GBまで無料だが、チュートリアル等で紹介されている以下のようなバケット作成コマンドを叩くと無料枠の対象外になる。

# NG
gsutil mb -p PROJECT_ID gs://BUCKET_NAME

なぜ無料枠の対象外なのか

GCPの公式サイトには以下のような記述がある。

Google Cloud Storageの項目より、

  • 5 GB の Regional Storage(バージニア州北部を除く米国リージョンのみ)
  • 5,000 回のクラス A オペレーション(1 か月あたり)
  • 50,000 回のクラス B オペレーション(1 か月あたり)
  • 1 GB の北米から全リージョン宛ての下りネットワーク(1 か月あたり、中国とオーストラリアを除く)

つまりリージョンが米国リージョンじゃないからか、と理解し、以下のコマンドでバケットを作成する

gsutil mb -p PROJECT_ID -l us-central1 gs://BUCKET_NAME

が、残念ながらこれでも無料枠の対象ではない

ストレージに種類がある。

GCSにはStorage Classなるものがあって、Multi-Regional Storage、Regional Storage、Nearline Storage、Coldline Storageの4種類があり、左から順に1GBあたりの料金が高い。

詳しい説明は公式ドキュメントに譲るとして、要は無料枠はRegional Storageだけだが、クラス無指定だとデフォルトのMulti-Regional Storageになってしまう。よって課金されてしまうのである。。。

無料枠に入るバケット作成コマンド

明示的にストレージクラスを指定してあげればいよいので以下になる

gsutil mb -p PROJECT_ID -l us-central1 -c regional gs://BUCKET_NAME

ちなみに無料枠のリージョンは他にもあって

がある。北米だが北バージニアにあたる「us-east4」は無料枠の対象外なので注意。