Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

App Engine Flexible Environment

More than 3 years have passed since last update.

App Engine Flexible Environment

by sinmetal
1 / 23

sinmetal.png


What is App Engine FE?


App Engine Architecture

appengine.png


App Engine Standard Environment

  • 限定されたコンテナ
  • runtime 縛り (Java, Python, Go, PHP)
  • CPUはシングルコアのみ
  • メモリの最大は1GB

App Engine Standard Environment

  • ミドルウェア利用不可
  • local file systemに書き込み不可
  • 好きなportをlistenできない

App Engine Flexible Environment

  • Compute Engine上にコンテナを立てる
  • Dockerコンテナ
  • 自由な世界
  • App EngineのAPIをそのまま使える
  • ミドルウェアインストール可能

App Engine FE Architecture

appengine_fe.png


FEで用意済みのRuntime

  • Go
  • Java 8 / Servlet 3.1 / Jetty 9
  • Python 2.7 and Python 3.4
  • Node.js
  • Ruby

Demo


Custom Runtime

  • 好きなDockerfileを書いて動かす

App Engine FEの使いどころ

  • WebSocket (ただし、めんどう。。。)
  • マルチコアCPU, 豊富なメモリ
  • ImageMagickなどミドルウェアが必要な時
  • standard runtime以外が使いたい時

FEでClientからのリクエストを受け取る


WebSocketはなぜめんどうか?

  • App Engine FrontendはWetSocketが使えない
  • FEが動いているGCEのグローバルIPAddrに接続する必要がある

client_gce.png


FEは好きなportをlistenできる?

  • Yes
  • しかし、やっぱり、App Engine Frontendは通れない

client_gce.png


SEでできないことをFEに頼る


SEでできないことをFEに頼る

  • ユーザからのリクエストはSEで受け、後ろのバッチはFEで回す
  • Example : サムネイル作成 ...

Screen Shot 2016-07-28 at 21.44.56.png


FEで失われた物

  • spinup speed - SE:10ms ~ 7000ms, FE:1min
  • price - SE:豊富な無料枠, FE:Compute Engineの料金に準拠

FEの不便なところ

  • Preemptible VMが使えない
  • 1VM 1コンテナ
  • 最低インスタンス台数 = 1

Preemptible VMを使ったバッチ処理

  • TaskはQueueで管理し、Preemptible Instanceがshutdonwされても、別のWokerでTaskをリトライする
  • Taskの数に応じてWorkerの数を調整

Screen Shot 2016-08-25 at 00.27.00.png


Preemptible VMを使う利点

安い


僕が欲しかったFE

  • 1 VM マルチコンテナ
  • 負荷に応じて、コンテナをスケールさせる

Screen Shot 2016-07-28 at 21.48.40.png


Resources

sinmetal
GCPUG Admin https://gcpug.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away