はじめに
先日、GAEがNode.js 10に対応に対応されました。
https://cloud.google.com/appengine/docs/standard/nodejs/
Qiita記事を見ると、Nuxt.jsをGAEにデプロイする際の app.yaml
ファイルの記述が単純でそのままSSRとしてデプロイしてしまうとすぐにメモリ不足で落ちて500エラーとなります。
runtime: nodejs8
env: standard
解決方法
以下のapp.yamlにするとある程度のメモリ不足は回避出来ます。
app.yamlに関する情報はこちらに記載されています。
https://cloud.google.com/appengine/docs/standard/nodejs/config/appref
runtime: nodejs10
instance_class: F2
handlers:
- url: /_nuxt
static_dir: .nuxt/dist/client
- url: /(.*\.(gif|png|jpg|ico|txt))$
static_files: static/\1
upload: static/.*\.(gif|png|jpg|ico|txt)$
- url: /.*
script: auto
secure: always
app.yamlの記述について
runtime
Nuxt.js v2だと思いますので、nodejs10
にしましょう。
instance_class
Nuxt.jsでSSRする際はデフォルトのインスタンスF1
だと厳しいので F2
にしましょう。
詳しい料金表はこちらです。
https://cloud.google.com/appengine/pricing
handlers
handlersオプションを使用して、静的ファイルをCDN配信する事が出来ます。
※ここ凄い重要です。
handlersについて
https://cloud.google.com/appengine/docs/standard/python/config/appref#handlers_element
これでも厳しいって方は scaling_elements
等を設定して試行錯誤する必要があると思います。
https://cloud.google.com/appengine/docs/standard/python/config/appref#scaling_elements