App Engine 環境の選択

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

App Engine 環境

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

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

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

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

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

  • ソースコードが、サポートされているプログラミング言語の、特定のバージョンで記述されている。
    • Python 2.7、Python 3.7
    • Java 8、Java 11(ベータ版)
    • Node.js 8、Node.js 10
    • PHP 5.5、PHP 7.2、PHP 7.3(ベータ版)
    • Ruby 2.5(ベータ版)
    • Go 1.9、Go 1.11、Go 1.12
  • 無駄な投資を抑え、無料または低コストで運用することを目的としている。たとえばトラフィックがない場合、アプリケーションを 0 インスタンスにスケーリングできます。
  • 即時のスケーリングを必要とする、トラフィックの突然かつ急激な増加がある。

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

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

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

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

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

機能の概要の比較

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

機能 スタンダード環境 フレキシブル環境
インスタンスの起動時間
リクエストの最大タイムアウト 60 秒 - 詳細 60 分
バックグラウンド スレッド ○(制限付き)
バックグラウンド プロセス ×
SSH デバッグ ×
スケーリング 手動、基本、自動 手動、自動
ゼロにスケーリング ×(最小 1 インスタンス)
ローカル ディスクへの書き込み
  • Java 8、Java 11(ベータ版)、Node.js、Python 3.7、PHP 7.2、PHP 7.3(ベータ版)、Ruby 2.5(ベータ版)、Go 1.11、Go 1.12 では、/tmp ディレクトリの読み取りと書き込みを行うことができます。
  • Python 2.7、Go 1.9、PHP 5.5 ではディスクに書き込むことができません。
○(エフェメラル、各 VM の起動時に初期化されたディスク)
ランタイムの変更 × ○(Dockerfile 経由)
デプロイ時間
セキュリティ パッチの自動適用 ○(コンテナ イメージ ランタイムを除く)
NDBUsers APIMemcacheImages API などの App Engine API とサービスへのアクセス。
  • Python 2.7、Go 1.9、PHP 5.5、Java 8 では〇
  • Java 11(ベータ版)、Node.js、Python 3.7、PHP 7.2、PHP 7.3(ベータ版)、Ruby 2.5(ベータ版)、Go 1.11、Go 1.12 では×。
×
ネットワーク アクセス
  • Java 8、Java 11(ベータ版)、Node.js、Python 3.7、PHP 7.2、PHP 7.3(ベータ版)、Ruby 2.5(ベータ版)、Go 1.11、Go 1.12 では○。
  • Python 2.7、Go 1.9、PHP 5.5(課金有効化済み): App Engine サービス(アウトバウンド ソケットを含む)経由のみ。
サードパーティ バイナリのインストール サポート
  • Java 8、Java 11(ベータ版)、Node.js、Python 3.7、PHP 7.2、PHP 7.3(ベータ版)、Ruby 2.5(ベータ版)、Go 1.11、Go 1.12 では○。
  • Python 2.7、Go 1.9、PHP 5.5 では×。
ロケーション 北米、アジア太平洋、ヨーロッパ 北米、アジア太平洋、ヨーロッパ
料金 インスタンス時間に基づく vCPU、メモリ、永続ディスクの使用量に基づく

環境の詳細な比較については、PythonJavaGoPHP のガイドをご覧ください。

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

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

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

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

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

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

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

スタンダード環境で実行しているアプリケーションがある場合、サービスの一部をフレキシブル環境に移行することができます。詳細については、PythonJavaGoPHP のドキュメントをご覧ください。

特定のサービスを移行するには、PythonJavaGoPHP の手順をご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

App Engine ドキュメント