miyasakura’s diary

日記です。

Go+Google App Engine を使ったメモ

最近ちょっとしたWebサービスをGo+App Engine+Google Cloud Datastoreで作ったので、はまったことをメモ。

Qiitaにまとめようかと思ったものの、くだらないミスが主で内容としては大したことがないのでチラ裏的にこのブログに。

選んだ理由

この資料の影響が大きい。

「メルカリ アッテ」を支える Google App Engine と Golang - Speaker Deck

App Engineが東京に出てきたのもあり、それなりにこの構成は流行ってくるんじゃないかなーという感じがしているので勉強がてら実装。

苦労した流れ

  • なんかGoはフルスタックなフレームワーク(WAF)を使わないほうがイケてるらしい
  • ミニマムなフレームワークとして Goji (github.com/zenazn/goji ) をチョイスし使ってみる
  • 作ったけどなぜかデプロイがうまくいかない
  • フレームワークを使わずに net/http を使ってみる
  • さすがにルーティングが貧弱なので github.com/julienschmidt/httprouter を使う
  • やはりなぜかデプロイがうまくいかない
  • フレームワークの問題じゃなかったと思い、再度Gojiへ戻る
  • Gojiの最新版が github.com/goji/goji に移ったらしいのでこっちを使ってみる
  • デプロイしてみるとコンパイルエラー
  • Go 1.7前提の部分があって、App Engineは1.6なので使えなかった(過去の例から言って3ヶ月くらいで最新バージョンに追いついているのでそろそろ1.7が出そうではある)
  • 古い方を使うのもあれなので Gin にしてみる
  • やはりなぜかデプロイがうまくいかない
  • aedeploy を使っているのがいけないらしい
  • 読んでいたドキュメントが Flexible Environment 用のものだった
  • goapp deploy にしたら無事デプロイできた解決

反省点

流し読みじゃなくてちゃんとドキュメントを読みましょう。

あとGoもGAEもちゃんと理解していなかったので、Goの問題かGAEの問題か切り分けができずつらかった。

Google App Engine についての感想

DatastoreとFull Text SearchとMemcachedを使ったけど、設定を何もしなくてもそのまま使えるのが良い。AWSだと各サービスのインスタンスを作って設定ファイルに登録して、みたいな流れになるのがGAEでは全く必要無かったことに驚いた。AWSに慣れすぎていて逆に違和感があったものの、これがあるべき姿だと思う。

あとはもう少しWebに情報が転がってると嬉しいと思った。まだこれから流行っていくものだと思うので自分でも少しずつ情報を発信しつつ慣れていきたい。