2016/7/1からCloud Datastore(GAEのDatastore)の課金体系が変わりました。
従来はオペレーション単位で課金されていて、例えば1エンティティ書き込んだとしてもsingle property indexやcustom indexの書き込みも同時に課金されていましたが、新体系ではエンティティ単位での課金になると言います。
これが本当ならばセコセコとプロパティにnoindexつけて課金を節約する、というバッドノウハウは不要になる!素晴らしい!1
\(^o^)/
詳細は下記URLを参照。
英語版のみ「New Cloud Datastore Pricing Starting July 1st, 2016」というところに書かれています。日本語版は未だ古い情報のみ。GCPはドキュメント翻訳がいつも遅いですよね・・・
(´・ω・`)
従来writeオペレーションは$0.06/100,000opeでエンティティのputには最低2ope必要だった為、完全にnoindexedなエンティティの場合は従来の方が少しだけ安くなりますが、少しでもindexはると新体系の方が安くなりますね。indexの利便性を考えると今後はnoindexedにする理由は殆どなくなるかな。。
Deleteがかなり安くなったのも嬉しいですね。今までストレージコストに対してDeleteコストが高すぎて古いエンティティを残しておくか悩ましかったのですが、今後は積極的に削除してもよいかもしれないです。
あと、ドキュメントを読んで、一点気になることが・・・
インデックス書き込みが無料になる様ですがsingle property indexのみなのか、custom indexも対象になるのかはっきりとは書かれてませんでした。
試して見た
モデル
// indexなし
type NoIndex struct {
Name string `datastore:",noindex"`
Value int `datastore:",noindex"`
Values []string `datastore:",noindex"`
Time time.Time `datastore:",noindex"`
}
// single property indexのみ
type SinglePropIndex struct {
Name string
Value int
Values []string
Time time.Time
}
// custom index
type CustomIndex struct {
Name string
Value int
Values []string
Time time.Time
}
インデックス定義
index.yaml
indexes:
- kind: CustomIndex
properties:
- name: Value
- name: Values
- name: Name
- name: Time
- kind: CustomIndex
properties:
- name: Value
- name: Name
- name: Time
それぞれ300,000件ずつPutしました。
結果
全てのモデルのPutが下記コストでした。
Datastore Entity Writes
Usage | 0.30 Million Ops |
Billable | 0.28 |
Price | $1.80 / Million Ops |
Cost | $0.50 |
ちゃんと新体系のコストで課金されてました。
これは安い嬉しい!\(^o^)/
しかもカスタムインデックスも無料みたい!?
インデックス貼り間違えてインデックス爆発起こしても無料ってことでしょうか。。
すごい!Google太っ腹!!\(^o^)/
値下げ自体もとても嬉しいですが、初心者の人が「思ったよりも課金されちゃってる、なんで(´・ω・`)」という状況に陥る大きな罠が一つなくなったのが何よりですね(^_^)
-
オペレーションに比べるとかなり安いですが、ストレージコストはインデックス分余計に発生するので、その点に関してはnoindexedは意味があります ↩