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

GCPUG Shonan fet.GAE vol.3 に参加したメモ

More than 3 years have passed since last update.

概要

湘南の東京都江東区という場所に済んでいるので GCPUG Shonan fet.GAE vol.3 に参加してきました。茅ヶ崎まで60kmぐらいです。電車では90分ぐらいかかります。普段横浜のタネマキGAEに参加している縁もあって 人類には早すぎたなどと謂われなき批難を受け続けたGAEですが、最近やっと人類が追いついてきたと思うんですよね。

GAEはいいぞ。

発表の内容について

発表者(敬称略) タイトル 使用GAE
s0kam0 PHP:ZendExpressive + SendGridでメール送信 Standard (PHP)
secondarykey GAE/Goでブログを作ってみた Standard (Go)
ryu22e GAEで社内向けドキュメント公開 Standard (Go)
sou GAE デプロイボットを GAE で動かす話 Flexible
junya_debari GAEとBigQueryでジオコーディングの精度を調べたい話 Standard (Py)
nagai7 「パフォーマンスを言語ごとで調べてみた」 色々
nuki_pon GAEからGCEinstanceを上げたり、落としたり Standard (Go)

PHP:ZendExpressive + SendGridでメール送信

App Engine と いまどきのPHP というタイトルに変わっていました。「GAE/PHP は凄く使われてるってGoogleは言ってるよ!」「Qiitaで記事数を調べてみた」「GAE/PHPの霊圧が・・・」みたいな話がありました。Frexible 環境の Ruby の方が記事数が多いという衝撃の検索結果ですが、 NodeJS よりは件数多そうです。
GAE/PHP ではファイルキャッシュができないので memcache を使う話なんかはもうちょっと強調してもいいと思います。強調しておきますね。 GAE/PHP ではファイルキャッシュができないので memcache を使う。

そういえば ECCube (EC系のオープンソース) でもファイルキャッシュが基本だったような気がしますが、PHPでは一般的なんでしょうか。

GAE/Goでブログを作ってみた

GAE/Go でブログを作る話ですね。Go言語は私自身は勉強中なのですが、GAEの根本的なところは変わらないはず。レンダリングしたHTMLはデータストアに保存しているような話だったと思います。私がGAE/Pythonで何か作った時はレンダリングしたHTMLを普通にキャッシュに突っ込んでいたような気がします。

一度は単純にCursorの文字列でページングをしていたのですが、そのURLを検索エンジンに覚えられてもだったのでページ数を指定して、それをmemcacheに設定してアクセスしています

データストアって普通に LIMIT と OFFSET が指定できたと思うんですが、 GAE/Go では違うんでしょうか・・・?どんなに頑張っても OFFSET が1,000までしかいかない(エラーは出ないのに返却値は1,000のところで止まる)時代があったりしてあんまりページングに向いてない印象があります。先に進むときのカーソルは普通に設定して問題ないのですが、逆向きのカーソルを作ろうとすると結構ややこしかったような記憶があります。 ブログ記事1,000件以上遡ってはいけないとかでいいんじゃないでしょうか。ダメか。

memcache って結構油断できない消え方するし、定期的に memcache に値を設定するために cron とか使うと instance hour が上がっていく。

GAEで社内向けドキュメント公開

社内ドキュメント置き場にGAEを使う話ですね。有益。是非自分でも使っていきたい。権限管理とかも全部Googleで完結するし。login: required とユーザドメインの組み合わせでどうにかなると思う。GAEのユーザオブジェクトの username って確か Google Apps アカウントでアクセスするとドメインまで付与される。gmail.com だと@より前しか出ないけど。
自動生成したドキュメントとかガンガンGAEに放り込んでいけばいいですよね。正直Wikiとかだと記法が使ってるWikiによって違ったりするし、世の中全部自動生成したドキュメントと MarkDown だけでいいと思います。Qiita は全部 MarkDown で完結するので便利でいいですね。Qiita:Team と ryu22e さんのコレで社内ドキュメントを完結させたい。

GAE デプロイボットを GAE で動かす話

GAE/Go にデプロイするための Slack bot を GAE NodeJS (on Frexible Environment) で動かす話です。いつのまにか落ちてることがあったり、多重起動してることがあったりするものの、業務で利用するレベルでは問題はない、とのこと。

GAE のいいところって「必要な時だけ立ち上がって必要な時は落ちてる」っていうところだと思いますが、現状 Flexible Environment ではそういうわけにもいかなさそうです。とはいえ、bot の導入で人間がやってるデプロイ作業を軽減できるのであれば費用対効果は充分高いと思います。お金かかんないならソレに超したことはないですけどね。Slack Bot である以上は立ち上がらないでいることもできないので、どっちにしてもお金はかかりそうである。

GAEとBigQueryでジオコーディングの精度を調べたい話

私の話です。正確には 逆ジオコーディングの話です。

Google Geocoding API に緯度経度を送ると住所に変換してくれますが、この「住所」というのは最寄りの代表点の住所でしかなくて、正確に送った場所の住所ではなさそうです。ということは、ココには誤差があるわけで、この誤差の収集をGAEで行い、分析をBigQueryで行う、ということをやろうとしています。

が、「BigQueryの事例って結構多い」ということで、後半から GAEしくじり先生みたいな話になりました。ざっくり書くと memcache の値はバンバン揮発するのでフローの制御に使うべきではない ということです。memcache はあくまでデータストアからの取得高速化とか、レンダリングの結果保存とかに使いましょう。memcache で排他制御とかやると値が揮発してプロセスが多重起動しまくるので、instance hour が高騰する原因に成り得ます。

「パフォーマンスを言語ごとで調べてみた」

GAE の Standard, Flexible 各環境各言語で Hello, World を書いて Apache Bench でシバく話です。PHP のパフォーマンスが興味深く、Flexible の方が Standard よりもインスタンス数が少ない。っていうか PHP は前に Apache や NGINX などの Web サーバを置いて使うので Flexible ではそうしてる気配があって、 Standard Environment はそうではないような気配がありますね。どういう実装になっているんだろう、GAE/PHPは。シングルプロセスになっているかのようなインスタンス数の延びでした。

あと、お金大丈夫なのか、あのテストは?

GAEからGCEinstanceを上げたり、落としたり

タイトルのまんまですが、GAEで作った Web クライアントからGCEのインスタンスを上げたり落としたりする話。裏側で Compute Engine API を叩いてインスタンスを動かしているようです。 GCE の start-up-script は Google Cloud Storage とかに置いておけばいい。Google Cloud Storage といえば、 gs://hogehoge って Ghostscript の略じゃないんですよ。なんてことだ。

そういえばデモで立ち上がらなかったインスタンスはどうなったんでしょうか。

懇親会

GCPUG は Google から補助金が出ているとはいえ、ホントにこんなに豪勢でいいのか?というぐらい豪勢な懇親会でした。GCPUG Shonan すごい。茅ヶ崎Loninすごい。茅ヶ崎といえばChigasaki-Guild.NETが立ち上がったらしいです。

まとめ

  • GAEはいいぞ。
  • GCPUG Shonan はいいぞ。
debari
博士(情報科学)。 ZETA株式会社のエンジニア。検索エンジンを作ったり、レコメンドエンジンを作ったり。
zeta
サイト内検索/レコメンドを主軸としたECソリューションを開発・提供。ディープラーニング技術のEC展開にも注力しています。
https://zeta.jpn.com/
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
ユーザーは見つかりませんでした