第6回 GAE上でWordPressを動かす 萩原 巧 リトルソフト株式会社 中越 智哉 株式会社ナレッジエックス 2010/6/3 今回は趣向を変えて、PHPで書かれていて広く普及しているブログ作成アプリケーション「WordPress」をGAE上で動かしてみます(編集部) 連載6回目にあたる今回は、今までとは少し趣向を変えて、実際に広く使われているPHPのオープンソースソフトウェアがGAE上で動作するかについての検証を行い、動作の実現性や問題点について言及するとともに、画面表示やデータベースアクセスを含めた動作について検証を行っていく過程を通して、PHPのアプリケーションをGAE上で動作させるために必要となるテクニックなどを紹介していきます。 GAEにインストールするアプリケーションについて GAE上にて動作検証を行うアプリケーションとして、星の数ほど(大げさですが...)存在するPHP
Google APP Engineについては初期のころのまとめはあるのですが、Pythonですとリリースからそろそろ2年近くになり内容も大きく様変わりしています。最速マスターシリーズでもGoogle APP Engineについてのまとめが無く、そろそろアップデートの必要があると思いまとめてみました。 基本的にwindows環境中心です。 最初に ドキュメントを見るときは必ず英語版を見ましょう。日本語版があるのはありがたいのですが、バージョンとしてはかなり古く、特に歴史の長いPython版では現行の内容とはかなりの隔たりがあります。 Google APP EngineのドキュメントのURLは以下のようなパターンになっています。 http://code.google.com/intl/ja/appengine/docs/**** これのうちjaが言語を表すコードになっていますので、これをenに
前回のGoogle App Engine for Javaを使って無料でサイトを立ち上げる方法のつづきです。 今回は、GAE/Jで利用できるslim3を使ってプロジェクトを作成し、実際にデプロイするところまで紹介します。 1. プロジェクトを作成 1.1. slim3のダウンロード Downloadsにアクセスします。 slim3の最新アーカイブを選択します。2010年2月9日時点では、「2010/02/02版」が最新ですので、[slim3-blank-EA1-SNAPSHOT-02022010.zip]リンクをクリックします。 1.2. slim3のインポート ダウンロードしたファイル「slim3-blank-EA1-SNAPSHOT-02022010.zip」をEclipseのワークスペースにインポートします。Eclipseのメニュー[File]-[Import]を選択します。 Imp
こっちは本物のMapReduceだ! グーグルがAppEngine-MapReduceをオープンソースで開発中 グーグルはGoogle App Engine上でMapReduce処理を実現するオープンソースを開発中だと、先日行われたイベントGoogle I/Oで明らかにしています。プロジェクトのホームページもGoogle Code上に「appengine-mapreduce - Project Hosting on Google Code」として公開されています。 Reduce処理やJava版はこれから 1つ前の記事「グーグルによるMapReduceサービス「BigQuery」が登場。SQLライクな命令で大規模データ操作」では、グーグルがSQLライクな命令を用いて大規模データ処理のサービスを提供することをお伝えしました。 記事でも書いたとおり、これは内部でMapReduceを使っているかど
App EngineをjQueryでAjax化しBigtableをCRUD操作:Google App Engineで手軽に試すJavaクラウド(3)(1/4 ページ) BigtableはCRUD処理ができるんです! 連載第1回の「EclipseでJava版App Engineを始めるための基礎知識」では環境設定が中心でしたが、連載第3回となる今回は、「Google App Engine for Java(以下、GAEj)」上で動作するJSPのユーザーインターフェイス(以下、UI)をAjax/JavaScriptでリッチにし、「Bigtable」でCRUD(登録・参照・更新・削除)処理を行ってみます。 今回の解説では、Ajax/JavaScriptライブラリのjQueryのバージョン1.3.2を使用したCRUD処理画面の操作内容と、そのJavaScriptでのプログラム処理を最初に見ていき、
前回は Slim3 Datastore の導入方法をエントリにしてみました。今回はそれを利用してエンティティのクラスを作る方法を紹介してみようと思います。と、前回に引っ張ってみたのですが、Slim3 Datastore ではあまりに簡単にエンティティを定義できるのでちょっと趣向を変えようと思います。 今回は、エンティティの定義方法を簡単に紹介した後、普段私が気をつけている点について簡単に紹介してみようと思います。また、経済性を考えて、アプリケーションには次のような制約をつけておきます。 エンティティオブジェクトを永続化層以外でも利用する エンティティオブジェクトの生成はnewで行う このあたりはやや宗教的な話も含みますので、参考程度に。 なお、このエントリで言及する注意点などは、少し堅めにApp Engineのデータストアを利用したいひと向けです。非常に小さなアプリケーションを作成する場合
俺「新しいアプリだよ。さぁ、デプロイするからAppSlotを解放するんだ…!」 appengineたん「で、でぷろい…ですか…?こんなおっきなあぷり…は、入るかな…?」 俺「今日はScalaを使ったアプリケーションなんだよ」 appengineたん「Scalaなんて…そんな変態的なこと…で、できません ///」 俺「もう遅いよ。どうだ? どんどんアプリがアップロードされていくぞ!」 appengineたん「は、入りました…。こんなおっきなアプリケーション…あついです…」 俺「よしテストだ。どんどんリクエストをおくってやるからな」 appengineたん「そ、そんなにリクエストされたら…らめぇっ!!SpinUpしちゃうぅっ!!」 俺「まだまだいくぞ。おらっ!データストアにputしてやるっ!」 appengineたん「らめぇぇ!あっ、あふれちゃうっ!!データが…quotaからあふれちゃうよぉぉ
2010年02月24日22:34 カテゴリGoogle App Engineサイト構築 GAE/Jで運用中に発生する例外(と一部対処法) App Engineでのアプリケーション実行中に私が遭遇した不測の例外やエラーについて、原因と(一部のみですが)対策を書いてみます。 あくまでも個人的な経験に基づくもので、多分に推測を含みますが、多少ともお役に立てば幸いです。例外の種類は随時追加したいと思います。コードの誤りや、よりよい対策などがあれば、お知らせ頂ければ幸いです。 今回記述した例外、エラーの種類 DatastoreTimeoutException ApiProxy$UnknownException ApiProxy$CapabilityDisabledException GCacheException DeadlineExceededException ConcurrentModific
GAEのJDOのモデルは、ざっくりいうと4種類の状態があります(本当はもっといっぱいあるけど、4つをおさえておけば普通はOK)。 transient persistent detached hollow モデルをnewして、PersistenceManager#makePersistent()を呼ぶまでは、transientです。 PersistenceManager#makePersistent()がよばれるとpersistentな状態です。persistentなモデルの状態は、PersistenceManagerをcloseするかTransactionをcommitしたときに、データストアに反映されます。 PersistenceManagerをcloseしたときからが、運命の分かれ目。何の設定もしないとhollowになり、lazy loadingされているオブジェクトに触ろうとするとエ
昨日一昨日、Google App Engine (GAE)に関する日本最大の勉強会(だと思う)appengine ja night #7 (ajn7)が行われました。 その中で『ランキング問題』が話題に上がりました。『ランキング問題』とは、何十万件もの点数のデータがあるときに、App Engine上で、「◯点は何位です」と高速に求めることは難しい、という問題です。(◯ページ目を表示、というページングもこれと同じ種類の問題になります。) ajn7では「上位でない限り正確な順位は必要ないのではないか」という話になりましたが、Skiplistを用いた検索アルゴリズムを使えば正確かつ高速に順位を求めることができるのではないかと思い、実装&検証してみました。 ランキング(順位取得)のデモ 下記ページで順位取得のデモを動かしています。スコア(点数)を入力すると順位と取得にかかった時間が表示されます(時
Tagtterをリリースして、初期は「CPU Quota」連発してしまい見苦しい状態でした。ごめんなさい。 さて、一時はどうなるかと思いましたが現在は「CPU Quota」も表示される事無く動いています。 今日はこの状況を乗り切る際に行った「Google App Engine」のパフォーマンスチューニングtipsを3つほどご紹介。 webapp.WSGIApplicationのdebugフラグはFalseにすべし いきなり当たり前で申し訳ないですが、実はこのフラグがTrueかFalseかというだけで「CPU Quota」が出る頻度が極度に異なります。 実際に同じ症状の方もいらっしゃる様なので、おそらく間違いありません。 また公開する様なシステムでは、パスワード等も管理される事になるかと思いますが、debug=Trueだとスタックトレースに変数の値が表示されてしまい無茶苦茶危険です。気を付け
本サーバのログを見ていたらCPU警告だらけになっていたので、チューニングして効果のあったものを記録していく。 参考にしたページGoogle App Engineを高速化する3つのtipshttp://mattn.kaoriya.net/software/lang/python/20080526182049.htm ディスク<帯域<CPUの順に制限がキツくなるGoogle App EngineのQuota構成から見るコストパフォーマンスの高いシステム構成http://coreblog.org/ats/now-we-are-free-from-qota-hell Google App Engineのmemcacheを試してみたhttp://taichino.com/programming/487 Google App Engineのmemcache APIがやばすぎるhttp://mattn.
※2010/4/23 sessionのクリアについてご指摘頂き、追記しました。Google App Engine for Java(GAE/J)にて、どんなアプリを使う場合でも (自分的に)ほぼ必須となる設定ファイルのまとめ。 ていうか、リファレンス読めばいーんだけどさ 1.sessionを有効にする & クリアの設定をする Javaでsession使わないケースなんてあるのか? appengine-web.xml に 下記を追加 <sessions-enabled>true</sessions-enabled> GAE/Jでsessionを使う場合、このままだとDatastoreにsession情報が残ったままなので定期的にクリアするcronを設定する web.xml に 下記を追加 <servlet> <servlet-name>_ah_sessioncleanup</servlet-
はじめに 最近、 文系ド素人がmixiアプリを開発〜リリースするまでのまとめ http://d.hatena.ne.jp/kazu0620/20100412/1271071223 というエントリーが話題になりましたね。自分もwebプログラミング素人でmixiアプリを作ってみたので、ちょっと便乗して、自分がmixiアプリを作るまでのプロセスをまとめてみました。 これからアプリを作る人の参考になれば幸いです。 kazu0620さんは、個人で作っていたみたいですが、自分は会社で作りました。会社といっても、自分含め従業員数3人の超零細企業でフリーランスの延長線上みたいなかたちでやっている会社ですが。 ちなみに会社のサイトはこちら。 作ったアプリ 「ふしぎな生き物 ふにゃもらけ」 http://mixi.jp/run_appli.pl?id=9443 リリース日:3/23 実質開発期間:8ヶ月 週間
セットアップ ここから下記のjarを取得 serializer.jar xalan.jar xercesImpl.jar xml-apis.jar xsltc.jar war/WEB-INF/libにコピーする サンプルソース String xml = " <inventory> " + " <book year=\"2000\"> " + " <title>Snow Crash</title> " + " <author>Neal Stephenson</author> " + " <publisher>Spectra</publisher> " + " <isbn>0553380958</isbn> " + " <price>14.95</price> " + " </book> " + " <book year=\"2005\"> " + " <title>Burning Tower
質問形式でとりあえずApp Engineの情報を整理しようと思います。 サーバの管理コンソールで表示するとログの時刻表示がおかしい? タイムゾーンがPSTで表示されます。ローカルの時刻にするgreasemonkeyなどがあります。 firefox http://userscripts.org/scripts/show/47857 chrome https://chrome.google.com/extensions/detail/jmgkgfinhcmnheebklldfggdpgkihiha 開発時にローカルで登録したDatastoreのデータはどのようにすれば確認できますか? http://localhost:8888/_ah/adminからDatastore Viewerにアクセスすればデータ内容の確認ができます。(いま[SDK1.3]は残念なことに編集はできません。) また、/_a
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く