App Engine と Cloud Run のどちらを選ぶべきか?

Google Cloud Platform (GCP) は、アプリケーションをデプロイおよび実行するためのサーバーレスオプションを 2 つ提供しています。App Engine と Cloud Run です。どちらのサービスも、インフラストラクチャを管理する必要なく、アプリケーションをデプロイおよび実行する方法を提供しています。しかし、それらの間にはいくつかの重要な違いがあります。

概要

App Engine は Platform as a Service (PaaS) であり、完全に管理されたプラットフォーム上でアプリケーションを構築およびデプロイすることができます。Java、Python、Node.js、Go、Ruby、PHP、.NET などのサポートされている言語でコードを記述し、App Engine にデプロイすることができます。App Engine には、標準環境と柔軟な環境の 2 つの環境があります。標準環境には、各サポートされている言語に事前定義されたランタイムが用意されていますが、柔軟な環境では、Dockerfile を提供することでカスタムランタイムを使用することができます。

一方、Cloud Run は Container as a Service (CaaS) であり、完全に管理されたプラットフォーム上でステートレスなコンテナを実行することができます。アプリケーションとその依存関係をコンテナイメージにパッケージ化し、Cloud Run にデプロイすることができます。任意の言語やランタイムを使用してアプリケーションを構築することができます。

比較表

課金の概要

App Engine と Cloud Run には異なる課金モデルがあります。App Engine はインスタンス数に応じて課金されますが、Cloud Run はリソースに応じて課金されます。

App Engine にはリソースの無料枠があり、インスタンスクラスごとに時間単価が課されます。インスタンス時間の加算は、インスタンスのスケーリングの種類によって開始および終了します。
Cloud Run は、100 ミリ秒単位で切り上げたリソースのみを課金します。各リソースには無料枠があります。Cloud Run の請求額の合計は、料金表のリソースの合計になります。

Cloud Run の価格設定において、「使用しているリソース」とは、コンテナ化されたアプリケーションがリクエストを処理する際に消費する CPU とメモリのリソースを指します。Cloud Run は、アプリケーションが使用する CPU とメモリのリソースに基づいて課金し、100 ミリ秒単位で切り上げます。
たとえば、アプリケーションがリクエストを処理するために 200 ミリ秒間 1 vCPU と 1 GiB のメモリを使用した場合、1 vCPU-秒と 1 GiB-秒のリソース使用量に対して課金されます。Cloud Run にはこれらのリソースの無料枠があるため、無料枠を超える使用量に対してのみ課金されます。

要約すると、App Engine はインスタンス数に応じて課金され、Cloud Run はリソースに応じて課金されます。App Engine と Cloud Run のどちらを選択するかは、アプリケーションにとってより費用対効果の高いモデルを検討してください。

アナロジー

App Engine を、メニューから注文できるレストランと考えてください。シェフは、食材の準備から調理まですべてを担当します。あなたがする必要があるのは、食べたいものを選択することだけです。
一方、Cloud Run は、自分で食材を持ち込んで自分で料理する台所のようなものです。何を作るかについてはより多くの制御権がありますが、より多くの作業も必要になります

選択方法

App Engine と Cloud Run のどちらを選択するかを決める際には、次の要素を考慮してください。

  • 管理された環境: インフラストラクチャを心配する必要がない完全に管理された環境が必要な場合は、App Engine を選択してください。

  • カスタムランタイム: App Engine でネイティブにサポートされていない言語やランタイムを使用する必要があります。App Engine の柔軟な環境に Dockerfile を作成しデプロイするか、Cloud Run を選択してください。

  • 課金モデル: App Engine はインスタンス数に応じて課金され、Cloud Run はリソースに応じて課金されます。アプリケーションにとってより費用対効果の高いモデルを選択してください。

  • スケーリング: 両方のサービスは自動スケーリングを提供していますが、スケーリングの仕方は異なります。アプリケーションに適したスケーリングモデルを選択してください。

結論

結論として、App Engine と Cloud Run はどちらも GCP でアプリケーションをデプロイおよび実行するための強力なサーバーレスオプションです。どちらを選択するかは、特定のニーズと要件によって異なります。App Engine と Cloud Run のどちらを使用するかを選択するには、上記の要素を考慮してください。


この記事が気に入ったらサポートをしてみませんか?