19
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【GCP】App EngineとCloud Runの違い

Posted at

App EngineとCloud RunってどちらもGCPのサーバーレスサービスだけど、何が違うのかよくわかっていなかったので調べてみた。

技術的な違い

GCPが管理してくれる範囲、マネージドな範囲が違う。

  • App Engine: PaaS
  • Cloud Run: CaaS(Container as a Service)寄り

下の図でグレー四角で囲われた部分が各サービスでユーザーがカスタマイズする部分。
言い換えるとそれ以外はGCPにマネージドされている部分。

スクリーンショット 2022-01-04 8.30.41.png
参照

つまり、App Engineのほうが寄り多くの部分がマネージドされている。
Cloud Runを「CaaS寄り」としているのは、CaaSはコンテナ管理機能までを提供しているサービスのことで、GCPではKubernetes Engineがこれに該当し、Cloud Runは厳密にはCaaSではないから。

Cloud RunはKubernetes EngineとApp Engineの中間(どちらかというとKubernetes Engine寄り?)で、コンテナを作成、指定すれば勝手にアプリケーションがデプロイされるサービス。

この違いによりApp EngineではGCPが用意しているランタイム環境(python Node javaなど)のみに限られるが、Cloud Runでは任意にランタイム環境でコンテナを作ってデプロイすることができる。

料金的な違い

###App Engine
インスタンスの従量課金制。時間あたりの料金インスタンスクラスのごとに異なる。
最後のリクエストが終了してから15分後にインスタンスは終了する。
スクリーンショット 2022-01-04 9.03.08.png
参照

###Cloud Run
リソースごとの従量課金制。つまりCPU、メモリなどのリソースごとに課金される。
100ms単位で切り上げられたリソースの使用時間が課金対象。
スクリーンショット 2022-01-04 9.04.35.png
参照

App Engineのインスタンスが最終リクエスト終了から15分後に終了するのに対し、Cloud Runは100ms単位の課金なので、常時アクセスがあるわけではないアプリケーションならば、Cloud Runのほうが良さそう?🤔

余談

App EngineもCloud Runのどちらもサーバーレスなサービスに分類される。
サーバーレスに明確な定義はない(と思っている)が、一般に以下のようなサービスのことを言う。

  • サーバーの管理が不要
  • 自動スケーリング
  • 従量課金制

本当にサーバーが無いのではなく、アプリケーションが動いている物理的なサーバーは存在する。
ただ、サービスを使うユーザーからはサーバーが抽象化され、サーバーの状態を気にしなくて良く、管理が不要(レス)なサービスのこと。

19
8
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
19
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?