GoogleAppEngineで複数のサービスにわかれたシステムを構築してみる


GoogleAppEngine便利ですよね。
だいたいのサービスはGAEがあれば、コストを極限まで抑えた上で、
インフラも運用のことも考えずに実装できるのでよく使用しています。

なんですが、ここの処理だけ別の言語で書きたいな〜……とか、
Admin向けのAPIサーバとSPAと、ユーザ向けのAPIサーバと、これまたAPIサーバを参照するSPA、、、
複数サービスを一個のプロジェクトで管理したいな〜……とか、それなりにあったりするので。

上のリンクに書いてある内容でだいたい実現可能なんですが、その時の対応方法を備忘録も兼ねて。

実装例

https://neko-gae-multi-service.appspot.com/
https://neko-gae-multi-service.appspot.com/php

簡単な構成図ですが、一旦こんな感じで組んでみました。
キモはdispatch.yamlになります。

dispatch:
  - url: "*neko-gae-multi-service.appspot.com/php"
    service: php-service

このファイルを合わせてgaeにdeployすることで、
指定のURLに応じてリクエストを返すサービスを変更することができます。
どれにも一致しなければdefaultのサービスでレスポンスが返却されます。

今回は指定のパスで切り替えるという設定にしましたが、ドメイン単位での振り分けも可能なので、
実際に使用する場合はサービスの仕様に応じて柔軟に変更する感じになります!

最後に

株式会社ネコカリでは猫の手も借りたい🔥炎上中🔥なお仕事を募集しています!
一緒に働くメンバーも募集していますので、よかったら是非!