感想
GAEは、デプロイ完了までが長いです。
12分くらい。
GAEの全体像
App Engine の概要 | App Engine スタンダード環境での Go 1.12+ に関するドキュメント より引用
サービス
最初は、default
バージョンが存在します。
アプリを論理コンポーネントに分解できるので、バックエンド、フロントエンドとかの切り方でも運用できますし、一連のマイクロサービスとして実行したりできます。
バージョン
図にもある通り、サービスの中で複数のバージョンがあることで、ロールバック用、テスト用、など様々なバージョンにすばやく切り替えることができます。
ライフサイクル
- デプロイ
- gcloud app deploy
- 古いバージョンから新しいバージョンにトラフィックを移行
-
--no-promote
をつけなかったら、勝手に移行される
-
- 動作確認
GAEのデプロイ時のトラフィック移行について - Qiita
NuxtをGAEにデプロイ
Nuxtの実装
実装は適当に用意します。
yamlファイル
前提
GAEにNuxtをデプロイするためには、app.yaml
ファイルをトップディレクトリに配置する必要があります。
app.yml
ではなく、app.yaml
であることに注意です。
ファイル名間違うと下記のようにエラーが出ます。
ERROR: (gcloud.app.deploy) [/Users/sanotaka/Desktop/test/github-name/app.yaml] does not exist.
使用した app.yaml
ファイル
runtime: nodejs
env: flex
instance_class: F2
handlers:
- url: /_nuxt
static_dir: .nuxt/dist/client
secure: always
- url: /(.*\.(gif|png|jpg|ico|txt))$
static_files: static/\1
upload: static/.*\.(gif|png|jpg|ico|txt)$
secure: always
- url: /.*
script: auto
secure: always
env_variables:
HOST: '0.0.0.0'
NODE_ENV: 'production'
Google App Engine へデプロイするには? - NuxtJS
デプロイ
下記コマンドで実行します。
gcloud app deploy app.yaml --project [project-id]
遭遇したエラー
エラー内容
✖ Nuxt Fatal Error
Error: No build files found in /app/.nuxt/dist/server.
Use either `nuxt build` or `builder.build()` or start nuxt in development mode.
"start": "nuxt build && nuxt start",
Nuxt.jsの「Error: No build files found in XXX」への対応 | Sysrigar
バージョン管理
Google App Engineのスマートなバージョン管理 - Qiita
GAEに関する gcloud
コマンド
デプロイ
gcloud app deploy --project [project名]
既存のアプリケーションをアップデート
gcloud app update --project [project名]
詳細確認
gcloud app describe
サービス一覧
gcloud app services list
バージョン一覧
gcloud app versions list
ログの確認
gcloud app logs read
スプリット ヘルスチェック
gcloud beta app update --split-health-checks --project distance-prd
レガシー ヘルスチェックからスプリット ヘルスチェックへの移行
ブルーグリーンデプロイ
近年のデプロイ手法について|clonos|Google Cloud Platform の導入支援、構築、監視、運用代行
デプロイ / リリース 手法 まとめ - galife