App Engine 環境を選択する

App Engine でアプリケーションを実行するには、App Engine フレキシブル環境または App Engine スタンダード環境を使用します。また、アプリケーションに両方の環境を同時に使用するよう選択することもできます。これにより、お使いのサービスで各環境の個々の利点を活用できるようになります。

App Engine 環境

App Engine は、特に両方の環境を利用することにした場合、マイクロサービス アーキテクチャを使用するように設計されているアプリケーションにとても適しています。次のセクションを通して、どちらの環境がアプリケーションのニーズに適しているかを知り、理解を深めてください。

スタンダード環境を選択する場合

アプリケーション インスタンスは、次に示すサポートされている言語のランタイム環境を使用して、サンドボックス内で実行されます。

迅速なスケーリングに対処する必要があるアプリケーション。

スタンダード環境は、次の特性を持つアプリケーションに適しています。

  • 無駄な投資を抑え、無料または低コストで運用することを目的としている。たとえばトラフィックがない場合、アプリケーションを 0 インスタンスにスケーリングできます。
  • 即時のスケーリングを必要とする、トラフィックの突然かつ急激な増加がある。

フレキシブル環境を選択する場合

アプリケーション インスタンスは、Compute Engine 仮想マシン(VM)上の Docker コンテナ内で実行されます。

一定したトラフィックを受信する、定期的にトラフィックの変動がある、または徐々にスケールアップやスケールダウンするパラメータを満たすアプリケーション。

フレキシブル環境は、次の特性を持つアプリケーションに適しています。

  • 他のプログラミング言語で書かれたカスタム ランタイムやソースコードを含む、Docker コンテナで実行する。
  • ネイティブ コードを含むフレームワークを使用するか、それに依存する。
  • Compute Engine ネットワークにある Google Cloud プロジェクトのリソースまたはサービスにアクセスする。

機能の概要の比較

次の表は、2 つの環境の違いをまとめたものです。

機能 スタンダード環境 フレキシブル環境
インスタンスの起動時間
リクエストの最大タイムアウト ランタイムとスケーリングのタイプによって異なります。 60 分
バックグラウンド スレッド ○(制限付き) はい
バックグラウンド プロセス × はい
SSH デバッグ × はい
スケーリング 手動、基本、自動 手動、自動
ゼロにスケーリング はい ×(最小 1 インスタンス)
ローカル ディスクへの書き込み
  • Java 8、Java 11、Java 17、Node.js、Python 3、PHP 7.X、PHP 8.1、Ruby、Go 1.11、Go 1.12+ には、/tmp ディレクトリへの読み取りと書き込みのアクセス権が付与されています。
  • Python 2.7 と PHP 5.5 には、ディスクに対する書き込みアクセス権がありません。
○(エフェメラル、各 VM の起動時に初期化されたディスク)
ランタイムの変更 × ○(Dockerfile 経由)
デプロイ時間
セキュリティ パッチの自動適用 はい はい(コンテナ イメージ ランタイムを除く)
Cloud StorageCloud SQLMemorystoreGoogle Tasks などの Google Cloud APIs とサービスへのアクセス。 はい はい
WebSocket ×
Java 8、Python 2、PHP 5 には独自の Sockets API(ベータ版)が用意されていますが、API は新しい標準ランタイムでは使用できません。
はい
サードパーティ バイナリのインストール サポート
  • ○ Java 8、Java 11、Java 17、Node.js、Python 3、PHP 7.X、PHP 8.1、Ruby、Go 1.11、Go 1.12+。
  • × Python 2.7、PHP 5.5。
はい
ロケーション スタンダード環境のロケーション フレキシブル環境のロケーション
料金 インスタンス時間に基づく vCPU、メモリ、永続ディスクの使用量に基づく

また、深く掘り下げた環境の比較もご覧ください。

フレキシブル環境と Compute Engine との比較

App Engine フレキシブル環境には、Compute Engine との間に次のような違いがあります。

  • フレキシブル環境の VM インスタンスは毎週再起動します。再起動中に、Google の管理サービスがオペレーティング システムとセキュリティの更新を適用します。

  • Compute Engine VM インスタンスにはルート権限でアクセスできます。デフォルトでは、フレキシブル環境の VM インスタンスへの SSH アクセスは無効になっています。アプリの VM インスタンスに対するルートアクセスを有効にすることもできます。

  • Cloud Build サービスを使用してコンテナ イメージを構築すると、コードのデプロイに時間がかかる可能性があります。

  • フレキシブル環境の VM インスタンスの地理的なリージョンは、Google Cloud プロジェクトの App Engine アプリケーションに指定した場所によって決まります。Google の管理サービスは、VM インスタンスを同じ場所に配置して最適なパフォーマンスを得られるようにします。

スタンダード環境からフレキシブル環境への移行

スタンダード環境で実行しているアプリケーションがある場合、サービスの一部をフレキシブル環境に移行できます。詳しくは、環境の比較の推奨事項をご覧ください。

Python、Java、Go、PHP の具体的なサービスを移行するには、スタンダード環境からフレキシブル環境へのサービスの移行をご覧ください。

使ってみる

Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Ruby スタンダード環境のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。

Ruby スタンダード環境を無料で試す