Azure 系エンジニアから見た GCP 〜Cloud Storage編〜

先週に引き続き GCP を見ていく。

前回は仮想マシン相当の Google Compute Engine だった。
Azure 系エンジニアから見た GCP 〜Google Compute Engine編〜 - ぐだぐだ言ってないでコードを書けよ、ハゲ。

今回はファイルストレージ相当の Cloud Storage。
Azure では Blob Storage、AWS では S3 にあたる。

Cloud Storage

料金

全般

Azure Storage Blob の価格 | Microsoft Azure

Google Cloud Storage の料金体系  |  Cloud Storage ドキュメント  |  Google Cloud Platform

アクセス頻度に基いてどのタイプを使うか選択する。
Azure は単リージョンに置いたとき(LRS)と複数リージョン(GRS)に置いたときで容量課金が純粋に倍になるが、GCP はそうでもない。
GCP ではマルチリージョンで細かいリージョン指定ができないので、東京のように高いリージョンは使われていなくて、結果的に料金が安く見えてるのかもしれない。

マルチリージョンでないプランならリージョンを指定できる。

余談だが Azure の料金プランは V2 ができつつある関係ですごく複雑になっていて見通しがよくないのでつらい。

SLA

細かい話だが SLA に関する対処は横並びっぽい。

料金プランの適用範囲

Azure だとストレージアカウント単位で料金プランを選ぶが、GCP では料金プランを意味する「ストレージ クラス」をオブジェクト単位で指定できるようになっている。
バケットで指定する料金プラン(ストレージクラス)は、あくまでもオブジェクトの料金プランのデフォルトという位置づけ。
特定のオブジェクトのプランを後から変更するのも可能。

オブジェクトのストレージ クラスの変更  |  Cloud Storage ドキュメント  |  Google Cloud Platform

リクエスト課金

リクエスト課金の部分はアクセス元のプロジェクトに払わせることができる。
Azure Blob にはなかったはず。

アクセス

アクセス権限を細かいレベルで管理できるのは想像がつくので特に見てない。
静的サイトのホスティングも普通にできる。

https://storage.googleapis.com/(Bucket_Name)/(Object_Name)

バージョニング

バージョニングを有効にすると、ファイルをアップロードしたときに前バージョンが残る。
最新以外のファイルを操作するにはコンソール(Webのポータル)ではできず、cli ツールである gsutil を使う必要がある。

Azure だとバージョニングはなくて、スナップショットで取ることができる。

Creating a Snapshot of a Blob | Microsoft Docs

スナップショットは明示的取らないといけないので、有効にしておけば自動的に取れる GCP とどっちがいいかは良し悪しか。

GCP Console 周り

今回も Console でいいなと思った部分があった。

調べながら使うというところがすごくカバーされているのを感じる。
Google検索を持ってるから、どこで脱落しているかなどが手に取るようにわかっているのだろう。

あとがき

わかりやすくて機能が少ないサービスは軽く流していけるが、GAE みたいなサービスをどうやって見ていこうかちょっと迷う。
GCP は数年前に見たときのイメージで Go や Java, Python あたりが一級市民てイメージがあるので、ちょっとは書ける Python かこれからの Go を書きながら検証していくしかないのかな。Java は知らん。