2011年11月12日土曜日

appengine 新課金対策 その2

DataStore Read Operations Quotaを喰らって以来、色々試行錯誤を続けてます。

全体的な課金額を減らすことは出来ていますが。Read Operationsを0に抑えるのはかなり難しいですね。memcacheを使っても減った気がしません。ただこの辺りはユーザの操作のバラツキがかなりあるので、アクセスログを精査する必要があるでしょう。

初日は、サービスが止まってた分もあり正規の運用では無かったと思います。
2日目は、Backendsの実権をしちゃったこともあり、やや高いですね。
3日めから、memcacheで色々節約しようとしてます。



日本時間では現在は土曜日なので、平日と同列に扱ってよいものかどうか?本日分は、$1未満には抑えられそうです。ただしFrontend Instances Hoursの上昇が早いのが気にはなってました。もっと早く調べるべきでした。

ああ、なるほど、これですね。



複数のインスタンスが勝手に立ち上がって処理する。それは良いのですが、その立ち上げの時間も課金額に含むって話らしいのです。どうなのそれ?

http://najeira.blogspot.com/2011/09/google-app-engine.html
http://www.google.com/enterprise/cloud/appengine/pricing.html

ログを見ていて気になってはいたのですよ。memcacheに入ってるデータを引っ張ってるはずなのに、スピンアップに時間が掛かってるケースがある。インスタンスが違ってた訳ですね。

となると、Front Instancesを1つに絞って、cronはBackendsに突っ込むのがどうやら正しい運用、というかグーグル側の想定運用ということになりそうです。

色々試してみると、ファイルを細々とロードしてるページでは、割とアッサリ3つ挙がっちゃうみたいですね。ただし、2つめ以降の出番は少ないようなので、Idle Instances を絞るか、Pending Latencyを下げて、アッサリ落ちるようにするか。

取り急ぎ、Max Idles Instancesとやらを減らしてみました。



Instacesは、待機Auto 、Max 2 にして、本日分は様子見。