LoginSignup
2
0

More than 1 year has passed since last update.

App Engine(GAE)でサービスごとに複数ドメインを使用する方法

Posted at

GAEのサービス

GAEには「サービス」という概念があって、アプリをデプロイする際にサービス名を指定することで、複数のアプリを1つのプロジェクトで同時に立ち上げることができます。
また、各サービスにドメインを割り当てることもできるので、複数のアプリにそれぞれ異なった複数のドメインを割り当てることも可能です。

app.yamlでサービスを設定する

最初に、アプリごと別のサービスとして立ち上げるためにはapp.yamlにサービス名を指定する必要があります。

app.yaml
service: SERVICE_NAME
runtime: nodejs10
# ...

これをデプロイすればGAEにサービスが立ち上がります。(コンソールのGAE⇨サービスで確認可能)

dispatch.yamlでルーティングルールを変更する

ここからようやく本題ですが、
dispatch.yamlを使ってドメインんとサービスを紐づけます。

dispatch.yaml
dispatch:
  - url: "*www.example.com/*"
    service: default # ターゲットとなるサービス名
  - url: "*app.example.com/*"
    service: backend # ターゲットとなるサービス名

この設定は1つのプロジェクト内で共通の設定とされるため、この場合だと、defaultかbackendどちらか1つのディレクトリからデプロイしておけば正しく動作します。

あとは、DNSでそれぞれのドメインをGAEサーバに向ければ完了です。

デメリット

GAEで複数のサービスを立ち上げるのはとても便利ですが、その分注意しなければならないデメリットもあります。
コストの最適化のためにも以下の点に注意して適宜Cloud Functionを利用するなり他の選択肢を取ることも考慮すべきです。

  1. サービスの分だけインスタンスが立ち上がる。
  2. 価格が高くなりがち
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0