Help us understand the problem. What is going on with this article?

(2016年7月)GAE Datastore writeのコストが下がってるか試してみた

More than 3 years have passed since last update.

2016/7/1からCloud Datastore(GAEのDatastore)の課金体系が変わりました。

従来はオペレーション単位で課金されていて、例えば1エンティティ書き込んだとしてもsingle property indexやcustom indexの書き込みも同時に課金されていましたが、新体系ではエンティティ単位での課金になると言います。

これが本当ならばセコセコとプロパティにnoindexつけて課金を節約する、というバッドノウハウは不要になる!素晴らしい!1
\(^o^)/

詳細は下記URLを参照。

https://cloud.google.com/appengine/pricing

英語版のみ「New Cloud Datastore Pricing Starting July 1st, 2016」というところに書かれています。日本語版は未だ古い情報のみ。GCPはドキュメント翻訳がいつも遅いですよね・・・
(´・ω・`)

引用:
スクリーンショット 2016-07-07 9.24.34.png

従来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^)/

値下げ自体もとても嬉しいですが、初心者の人が「思ったよりも課金されちゃってる、なんで(´・ω・`)」という状況に陥る大きな罠が一つなくなったのが何よりですね(^_^)


  1. オペレーションに比べるとかなり安いですが、ストレージコストはインデックス分余計に発生するので、その点に関してはnoindexedは意味があります 

hogedigo
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした