Google App Engine for Python 4アプ目
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2011/04/12(火) 17:54:29.62ID:???http://code.google.com/appengine/
■過去スレ
Google App Engine
http://pc11.2ch.net/test/read.cgi/php/1207754942/
Google App Engine 2アプ目
http://pc11.2ch.net/test/read.cgi/php/1243654802/
Google AppEngine 3アプ目
http://hibari.2ch.net/test/read.cgi/php/1267057923/
■リンク集
はてなブックマーク
http://b.hatena.ne.jp/t/gae
http://b.hatena.ne.jp/t/Google%20App%20Engine
Delicious
http://delicious.com/popular/gae
http://delicious.com/popular/googleappengine
■参考サイト
App Engine ギャラリー
http://appgallery.appspot.com/
ドキュメント
http://code.google.com/appengine/docs/python/overview.html
0910nobodyさん
2012/12/17(月) 10:16:45.96ID:???>ちなみに画像が主体のWebサービスで、今はさくらVPSの1500円で済んでいるのに、
>GAEに引っ越すと、転送量だけで5〜7万近くいく試算がでた。
>S3は確かに少し安くなったと思うが、それでも1500円と比べるとありえないわー
わかるー!
転送量に料金がかかるのは、GAEに限らず海外サーバの欠点だよね。
ほんとはそれが料金体制としては正しいことだとは思うけど。
0911nobodyさん
2012/12/17(月) 10:33:04.81ID:???0912nobodyさん
2012/12/17(月) 13:15:10.39ID:???>>910
逆に転送量無料で無制限っていうさくらもありえないわーって感じだけどね
0913nobodyさん
2012/12/17(月) 13:46:30.96ID:EWD5rxbL本気でGAEのスケールが重要になってくるようなサービスなら
ストレージもスケールしてくれなきゃ困るんだから
S3とかGCSとか使うのが当たり前だろ
VPSで充分なものをPaaSに持ってくるのがそもそも間違いだ
0914nobodyさん
2012/12/17(月) 14:47:37.60ID:???さくらVPSをN個契約して分散させることも十分可能
しかも一度その分散の仕組みを作ったらさくらVPSを買い足すことで無限にスケール可能
S3とかなら一貫しているので管理や設計しやすいメリットはあるが、
やっぱり転送量考えるとさくらVPSで分散した方が遥かに安い
このメリットは譲れない
0915nobodyさん
2012/12/17(月) 17:39:57.55ID:EWD5rxbLあっという間にストレージ使い切る様なサービスなら
VPSの継ぎ足しは馬鹿らしいし管理もクソ
参照主体ならさくらみたいなものでもありはあり
でもそんな細切れストレージに使いたいだけなら
ablenetとかで充分じゃね?なんでそんなにさくら推し?
0916nobodyさん
2012/12/17(月) 23:16:32.90ID:???まあ十年もしない内に世の中のインフラコストも下がって「馬鹿けた手法」になるんだろうけど
ただ、今のところ自分のように音や画像をふんだんに使うサービスはそういう方法を取らなければ無料で運用することはできない
>なんでそんなにさくら推し?
別にさくらのさくらじゃないよ
転送料無料で無制限で安定してるならどこでもよし
0917nobodyさん
2012/12/18(火) 18:29:56.92ID:???既存のは古くて話にならん
0918sage
2012/12/19(水) 10:37:54.42ID:GfFb/zFv0919nobodyさん
2012/12/20(木) 16:27:33.33ID:???日本語のドキュメントが全然ないんで手出しできないよ
0920nobodyさん
2012/12/25(火) 12:28:26.43ID:???Google検索よりはしょぼい
あいまい検索とか出来ないし
でもDtastoreだけで出来なかったあれこれが
比較的低コストに叶うっぽう
0921nobodyさん
2012/12/28(金) 17:20:12.56ID:Np5nab0m0922nobodyさん
2012/12/29(土) 03:05:05.43ID:???http://techtarget.itmedia.co.jp/tt/news/1212/28/news01.html
米Googleは、GmailやGoogle Driveといったビジネス向け製品について、
米MicrosoftのWindows 8やWindows Phone 8版のアプリケーションを
開発しない計画であることを明らかにした。
同社は、目覚しい発展を遂げるモバイル市場のニーズに対応すべく、
iOSとAndroid向けのアプリケーション強化に注力する。
0923nobodyさん
2012/12/30(日) 07:07:31.09ID:J1x2YB3ihttp://uni.2ch.net/test/read.cgi/newsplus/1356743275/
0924nobodyさん
2013/01/05(土) 05:49:28.30ID:???ttp://gae-init.appspot.com
Slim3でWebアプリ開発しようと思ってたが揺らいできた
ttp://d.hatena.ne.jp/higayasuo/20100319/1268984735
>とても単純なアプリケーションで比較するとPythonのspin-upは100ms以下。
>Javaは1000ms以下。大雑把にいってPythonの方が10倍速いと言えるでしょう。
Slim3の開発者のひがさんもこう言ってるし…
スピンアップ後でもJavaは何かもっさり、Pythonはサクサクという印象がある
0925nobodyさん
2013/01/05(土) 09:19:01.99ID:jXQiYMIwJavaでインスタンス立ち上げっぱなしの方が
トータルで良い性能が出るはず
小さめのサービスや徐々に育てていくつもりのものは
明らかにPythonの方が向いてると思う
なので俺はPythonを選んだわ
0926nobodyさん
2013/01/05(土) 11:21:50.20ID:???0927nobodyさん
2013/01/05(土) 11:32:59.44ID:jXQiYMIwスピンアップがネックなんであって
AllwaysOnなんか使って温め続けられるなら
Javaの方が性能は良い
でもサービスが小さかったり試行錯誤中は
中々起動しっぱなしにするコストはかけられない
小さく初められるPythonの方が向いてる
サービスが充分に大きくなったらJavaに切り替え
というのがGAEで個人や小さな資本が
でかいサービス狙う場合のベターな方法じゃないかな
Datastore等インフラは共通だし
移行に非現実的なコストが掛かるわけじゃない
まあPythonでも余程の規模じゃなきゃ問題ないと思うけど
0928nobodyさん
2013/01/05(土) 11:56:04.02ID:jXQiYMIwオリジナルの画像処理するとか
演算のみの比較ならJavaの方がかなり速い
ちなみにひがさんのコメントにもあるけど
1年半前ぐらいの比較だと単純処理は10倍近い差
でもDatastoreとかUrlFetch使うと
結局大きな差が見られなくなってく
Memcacheでがすがすリクエスト捌いて
TaskQueueでDatastoreに書き込みとかしないと
その速度差が活かせない
Javaで書いててもっさりに感じるとしたら
結局はスピンアップが足引っ張ってるんじゃないかな
一番割安で済むインスタンスの設定とかだと
スピンアップが頻繁に発生するし
0929nobodyさん
2013/01/05(土) 14:40:46.66ID:???0930nobodyさん
2013/01/05(土) 19:09:06.57ID:???http://tinyurl. com/9w97424
0932nobodyさん
2013/01/08(火) 20:45:35.46ID:???なにか減らすコツとかってないの?
0933nobodyさん
2013/01/09(水) 01:31:52.71ID:???0934nobodyさん
2013/01/09(水) 02:05:59.57ID:???つかAlwaysOnでいいだろ
0935932
2013/01/09(水) 10:38:58.46ID:???インスタンス起こしっぱなしはちょっと無理なんだ
せめてpython側の書き方とかオプションとかで
スピンアップにかかる時間減らせないかな?
0936nobodyさん
2013/01/09(水) 11:25:01.44ID:MFA8x2Gu0937932
2013/01/09(水) 12:26:41.62ID:???無料枠に収まってるんだ
けどスピンアップが遅くていざ使おうとすると
もたついてイライラする
静的なファイル増やしてAjaxでデータ取って
とかいう方法が良さそうなのは分かるんだけど
pythonの書き方そのものを工夫したら
もうちょっとスピンアップ時間減らせないかなと思ったんだ
0938nobodyさん
2013/01/09(水) 12:54:38.31ID:CFlVPMl1単一のmain.pyに何でもぶっこまない
ぐらいかな
0939nobodyさん
2013/01/09(水) 13:26:14.59ID:???mainがいくつももてるの?
0940nobodyさん
2013/01/10(木) 19:09:21.86ID:???0941nobodyさん
2013/01/10(木) 19:10:27.20ID:???関数の中とかで必要になったときにimportってことだね
0942nobodyさん
2013/01/11(金) 02:31:43.27ID:???いいかなぁ。そりゃスケーラビリティの有利さはあるけど。
0943nobodyさん
2013/01/11(金) 12:24:41.08ID:gLHAc5k8そもそもGAEが好適なアプリケーションとか規模なら
どんなインフラ使ったって気違いみたいな最適化は要るよ
もちろんPaaSだから下の層触れないって割り切りだし
GAEの限界は色々あるけどさ
今までのノウハウで対応できないだけで
機械部分の管理不要はメリットでかいよ
0944nobodyさん
2013/01/11(金) 12:30:53.02ID:???0945nobodyさん
2013/01/11(金) 12:59:17.99ID:6pl5qRPFお互いに、どの程度の「スケール」を想定してるかに齟齬があるかも
0946nobodyさん
2013/01/11(金) 16:07:57.92ID:gLHAc5k8その辺のレンタルサーバーじゃ捌くのが面倒な程度
リクエストが来る用途じゃなきゃ
GAEなんか使うメリットないのは当たり前じゃん
機械をカリカリにチューニングする労力を
価値あって稼げる実装に回せや
って状況で生きる代物だろ
汎用性求める時点でおかしいよ
0947nobodyさん
2013/01/11(金) 19:28:45.07ID:???0948nobodyさん
2013/01/11(金) 21:26:44.84ID:6pl5qRPF言語(あるいはAPI)としての汎用性としての話でさ、レンタルサーバのコードがどの程度
使いまわせるかって話の流れだとしたいんだけど、ずれてる?
0949nobodyさん
2013/01/11(金) 21:39:39.26ID:gLHAc5k8今のGAEの不便さってのはオートスケールのためのもの
サービスをでかく或いは熱く仕立てて
オートスケールのメリットを受けられないアプリは
そもそもGAEに適してないよ
今のとこソーシャルゲームのバックエンドが好適例で
1億リクエスト/dayとか捌く事例が出たりしてるけど
もっとオーソドックスなサービスが育ってくれば
ユーザーの受け取り方も変わると思う
0950nobodyさん
2013/01/12(土) 03:29:27.48ID:KTdWHGw/それは、最初からGAE想定してスタートアップするってことになるの?
0951nobodyさん
2013/01/12(土) 22:45:39.09ID:???http://s.ameblo.jp/cabeat-e/entry-11394475313.html
slim3本
http://www.amazon.co.jp/gp/aw/d/4798026999
上のレスと同じになっちゃうけど
RDB使わずにbigtableの制約に従って設計することで、放置してもスケールするのがGAE。
bigtableでできないことはやらないか、局所的に閉じ込めてスケールしない前提で動かす。
最近はGAEからMySQLなども使えるが、そういうものを中心に使うならGAEである必要性はないと思う。
(bigtableでは無く)MySQL使ってるようなソーシャルゲーム運営などはAWSでミニマムスタートしても、当たりそうであればレスポンス命になって、データベースまわりにRAID0-SSDやIBを使いデータセンターはIX直通と環境移すことが必要になるので、移植性が大切だったりする。
0952nobodyさん
2013/01/12(土) 23:30:55.34ID:???無料枠があるのも魅力の一つ
0953nobodyさん
2013/01/13(日) 01:16:59.55ID:Y3d4fqdGversionごとにサーバーの設定ができるようにしたいって言ってたけど、
あれから進展あんのかな?
0954nobodyさん
2013/01/13(日) 10:43:29.83ID:???GAEがそうなるのも時間の問題
0955nobodyさん
2013/01/13(日) 18:40:56.36ID:???0956nobodyさん
2013/01/17(木) 12:48:33.46ID:???2.7以降に単一のインスタンスがスレッドを捌けるようになった
その恩恵を受けるにはapp.yamlにthreadsafe: trueを指定
そしてthreadingモジュールも使えるようになったので
それを使ってスレッドを制御しなさい
こんな認識でいるんですがGAEから本格的なプログラミング始めたばかりで
スレッドセーフとは何なのかはっきりつかめていません
例えばwebappとdbを使って一般的なアプリケーションを書くとして
どういう箇所が非スレッドセーフになりうるんでしょうか
ぼんやりした理解としてはmutableなオブジェクトが
グローバルやクラスに存在すると駄目?程度です
ヒントだけでも構いませんのでお願いします
0957nobodyさん
2013/01/17(木) 13:29:53.64ID:EsHQfGhD0958nobodyさん
2013/01/17(木) 15:00:14.80ID:???threadsafeじゃないとどうなんの?
0959nobodyさん
2013/01/17(木) 16:10:33.90ID:???0960nobodyさん
2013/01/17(木) 16:25:44.44ID:???運用はまだ2.5でやってるから関係ないけど
0961nobodyさん
2013/01/17(木) 16:40:43.53ID:???Django?
webapp2?
Kay Framework?
Flask?
どれがオススメかな
Flaskが良さげなんだが日本語の参考サイトがちょっと足りない
0962nobodyさん
2013/01/17(木) 17:12:24.33ID:???0963nobodyさん
2013/01/17(木) 17:18:42.74ID:???0964nobodyさん
2013/01/17(木) 17:55:19.40ID:IKfy6gSY0965nobodyさん
2013/01/17(木) 18:08:21.07ID:???0966nobodyさん
2013/01/17(木) 18:19:11.98ID:???多少の不満は手入れできるし
appengineメインで設計されてるんで楽だし
0967nobodyさん
2013/01/17(木) 18:59:33.57ID:???が無駄すぎる
枯れてる生に近いやつ選べ
0968nobodyさん
2013/01/17(木) 19:27:35.17ID:???レンダリングだけDjango
0969961
2013/01/17(木) 19:49:45.75ID:???webapp2で良さそうだな
ルーティングめんどくさいけど、javaのweb.xmlでマッピング設定情報をXMLでシコシコ書き込むよりはマシだろう
ちなみにこれをFlaskで実装しようとしたがワケワカメで挫折した
tp://localhost:8080/image
キャプチャ認証に使えそうなテキスト文字画像を出力する処理ね
(Arial.ttfはスクリプトファイルと同じ場所にファイル持ってきて置く)
import webapp2
from PIL import Image, ImageDraw, ImageFont
class ImageCreater(webapp2.RequestHandler):
def get(self):
color = "green"
text = "AhsAA"
canvas = Image.new('RGB', (80,40), color)
font = ImageFont.truetype("Arial.ttf", 20)
draw = ImageDraw.Draw(canvas)
draw.text((10,10), text, font=font)
self.response.headers["Content-Type"] = "image/png"
canvas.save(self.response.out, "PNG")
app = webapp2.WSGIApplication([
('/image', ImageCreater)
], debug=True)
0970nobodyさん
2013/01/17(木) 21:07:06.49ID:???from flask import Flask, Response
from PIL import Image, ImageDraw, ImageFont
app = Flask(__name__)
@app.route('/image')
def image_creator():
color = "green"
text = "AhsAA"
canvas = Image.new('RGB', (80,40), color)
font = ImageFont.truetype("Arial.ttf", 20)
draw = ImageDraw.Draw(canvas)
draw.text((10,10), text, font=font)
res = Response(mimetype='image/png')
canvas.save(res.stream, "PNG")
return res
0972nobodyさん
2013/01/18(金) 09:05:01.27ID:d9ZkYgTb0973966
2013/01/18(金) 10:27:21.28ID:???webapp2はルーティング面倒かな
Routesに並べてもいいしFlaskみたいなSinatraライクも可能
Routesには文字列で渡しておいて遅延importも可能
結構柔軟で良いんだけど
0974nobodyさん
2013/01/18(金) 13:10:05.82ID:???どういうモジュールにしていったらいいのか
わかんねーよーたすけて
0975nobodyさん
2013/01/18(金) 16:01:56.27ID:???Flaskで言うと
http://a2c.bitbucket.org/flask/patterns/packages.html
こういうことをやりたいのかな?
0976nobodyさん
2013/01/18(金) 16:13:53.51ID:???1コントローラー1ファイル、1モデル定義1ファイルで分けたくなるよね
webapp2はそこらへんを詳しく説明する資料少ないかもしれん
俺も色々ググってるうちに上のFlaskの資料を見つけて
「webapp2じゃなくてFlaskでいいか」となったw
※
myapp/
controller/
view/
model/
0977nobodyさん
2013/01/18(金) 18:49:32.93ID:???Moduleは廃止されてBlueprintに置き換わった
http://flask.pocoo.org/docs/blueprints/
0979nobodyさん
2013/01/19(土) 02:50:41.71ID:2VybpXiQRoutesの仕組みを使って
ハンドラクラスの中の関数をよぶみたいな感じじゃいかんの?
0980nobodyさん
2013/01/19(土) 10:03:08.40ID:???いいよ〜
0981nobodyさん
2013/01/19(土) 11:46:53.52ID:???project/
controller/ ←これを作成
__init__.py ←この名前の空ファイルも作成
foo.py ←適当なハンドラ
bar.py ←適当なハンドラ
app.yaml
main.py
0982nobodyさん
2013/01/19(土) 11:47:51.98ID:???main.py
#######################
import webapp2
from controller import *
app = webapp2.WSGIApplication([
("/foo", foo.fooHandler),
("/bar", bar.barHandler)
], debug=True)
#######################
controller/__init__.py
#######################
import os
handlers = []
except_list = ["__init__.py"]
for filename in os.listdir("controller"):
if filename.endswith(".py"):
if filename not in except_list:
handlers.append(filename.rstrip(".py"))
__all__ = handlers
#######################
0983nobodyさん
2013/01/19(土) 11:50:57.24ID:???あとFooHandlerだったわ 小文字→大文字
##########################
controller/foo.py
##########################
import webapp2
class FooHandler(webapp2.RequestHandler):
def get(self):
self.response.out.write("Hello Webapp2!")
##########################
0984nobodyさん
2013/01/19(土) 13:00:09.47ID:???0985nobodyさん
2013/01/19(土) 13:16:21.58ID:???apps/
api/
back/
hadlers/
bar.py
BooHandler
templates/
static/
main.app
front/
common/
models/
baz.py
Foo
Bar
Boo
lib/
app.yaml
0986nobodyさん
2013/01/19(土) 13:18:56.36ID:???ルーティングは、
routes = [
('/foo/(.*)', 'apps.front.handlers.foo.ShowHandler'),
('/foo', 'apps.front.handlers.foo.IndexHandler'),
('/', 'apps.front.handlers.index.IndexHandler'),
]
とか文字列で組み立てて、
app = webapp2.WSGIApplication(routes, debug=DEBUG, config=config)
って渡せば遅延ロードになるよ
0988nobodyさん
2013/01/19(土) 13:51:40.19ID:???Google APP Engine Python入門(2010年2月版)
ttp://d.hatena.ne.jp/kagigotonet/20100209/1265726225
> Google APP Engineについては初期のころのまとめはあるのですが、Pythonですとリリースからそろそろ2年近くになり内容も大きく様変わりしています。
> 最速マスターシリーズでもGoogle APP Engineについてのまとめが無く、そろそろアップデートの必要があると思いまとめてみました。
> 基本的にwindows環境中心です。
Google App Engineを使って無料でサイトを立ち上げる方法
http://techblog.ecstudio.jp/tech-tips/freewebsite-with-google-app-engine.html
> このGoogle App Engine(以下 GAE)、アプリケーション開発だけでしか使えないと思われがちなのですが、実は設定を工夫すれば通常のHTMLによるサイトを作って運用することも可能です。
> 多少初期設定の手順は複雑ですが、このスペックのサーバーを無料で使用出来ることを考えれば試してみる価値はあるのではないかと思います。
> Webサイトを立ち上げるまでの手順をまとめてみましたので、公開したいと思います。
【特集】Google App Engineで開発するためのフレームワーク × 16 + α
http://coolcoding.com/2010/01/frameworks_for_gae/
> いざGAEで開発をはじめるとしても、素のままで書き始める必要はありません。
> すでに多様なフレームワークが提供されており、そうしたフレームワークを活用することでより素早くGAE上での開発ができるようになります。
> 今回はGAEで開発を行う際にチェックしたいフレームワークを紹介したいと思います。
Google App Engineで開発するスケールするアプリケーション(前編)
http://codezine.jp/article/detail/4591
> 本稿の前編では、主にGoogle App Engineの概要と特徴、そしてWebシステムをスケールするための手法、考え方について説明します。
> 中編・後編では、Google App Engine上で動作する、twitterと連携したアプリケーションを紹介し、Google App Engine上でのアプリケーション構築方法について説明します。
0989nobodyさん
2013/01/19(土) 13:52:28.05ID:???Google APP Engine Python入門(2010年2月版)
ttp://d.hatena.ne.jp/kagigotonet/20100209/1265726225
> Google APP Engineについては初期のころのまとめはあるのですが、Pythonですとリリースからそろそろ2年近くになり内容も大きく様変わりしています。
> 最速マスターシリーズでもGoogle APP Engineについてのまとめが無く、そろそろアップデートの必要があると思いまとめてみました。
> 基本的にwindows環境中心です。
Google App Engineを使って無料でサイトを立ち上げる方法
http://techblog.ecstudio.jp/tech-tips/freewebsite-with-google-app-engine.html
> このGoogle App Engine(以下 GAE)、アプリケーション開発だけでしか使えないと思われがちなのですが、実は設定を工夫すれば通常のHTMLによるサイトを作って運用することも可能です。
> 多少初期設定の手順は複雑ですが、このスペックのサーバーを無料で使用出来ることを考えれば試してみる価値はあるのではないかと思います。
> Webサイトを立ち上げるまでの手順をまとめてみましたので、公開したいと思います。
【特集】Google App Engineで開発するためのフレームワーク × 16 + α
http://coolcoding.com/2010/01/frameworks_for_gae/
> いざGAEで開発をはじめるとしても、素のままで書き始める必要はありません。
> すでに多様なフレームワークが提供されており、そうしたフレームワークを活用することでより素早くGAE上での開発ができるようになります。
> 今回はGAEで開発を行う際にチェックしたいフレームワークを紹介したいと思います。
Google App Engineで開発するスケールするアプリケーション(前編)
http://codezine.jp/article/detail/4591
> 本稿の前編では、主にGoogle App Engineの概要と特徴、そしてWebシステムをスケールするための手法、考え方について説明します。
> 中編・後編では、Google App Engine上で動作する、twitterと連携したアプリケーションを紹介し、Google App Engine上でのアプリケーション構築方法について説明します。
0990nobodyさん
2013/01/19(土) 14:00:56.96ID:???迷惑な行為はないもんだ
0991nobodyさん
2013/01/19(土) 15:43:30.28ID:???>>990
自分で構築しない連中が書くんだからしょうがない
このフレームワークのここが嫌い
とかいう個人の感想の方がよほどためになるよね
0992nobodyさん
2013/01/19(土) 15:47:45.08ID:???Google App Engine for Python 6アプ目
http://kohada.2ch.net/test/read.cgi/php/1358570953/
0994nobodyさん
2013/01/19(土) 16:37:06.07ID:???0995nobodyさん
2013/01/19(土) 18:27:29.23ID:???0996nobodyさん
2013/01/19(土) 18:28:36.74ID:???0997nobodyさん
2013/01/19(土) 19:36:12.22ID:???0998nobodyさん
2013/01/20(日) 14:51:07.37ID:???0999nobodyさん
2013/01/21(月) 04:14:59.58ID:???1000nobodyさん
2013/01/21(月) 09:12:17.18ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。