2015年3月2日月曜日

Google App Engineの最近

  • ここ半年くらいApp Engineをまた使ってサーバアプリを作ってる
  • 値上がりから最近はまた値下げ
  • こつをつかむとなんかとてもお安くアプリケーションサーバーというか、アクセスの激しいサイトを運営できてお得な感じだ。
  • とりあえず今日理解したコツは大量のレコードを扱う処理はDataStore Small Operationsにおしこむようにすること。
  • 有名なSlim3もでもそうなのだが、countのためにDataStore.getList().getSize()とやると、10万レコードある場合10万レコード分のDataStore Readになってしまい、これが課金に跳ね返る。DataStore.getKeyList().getSize()をカウントの代わりに使うと、これはSmall Operationなので無料。
  • つまり、Slim3のModelListRefとかも課金に繋がるので、List<Key>とかList<String>をプロパティにして、必要な要素だけ取り出して、処理したほうが安あがりになる。
  • 当時ではそれで構わない理由があった(DataStore.Readが十分安かった)などがあるはずで、あれだがまあ5年もたつと調べなおさないと色々損するなあという所感。
追記) 現行のバージョンというか5月あたりから、DataStore Small Operationsがどのくらいなされているか表記がなくなってしまった。どんだけやってもオペレーション数あがらない。かかるお金は横ばいなんだけど…、どのオペレーションがコストがかからないかという明記がなくて、統計もないとふとしたミスでやばい課金が発生しそうで怖いですね。