App Engine でアプリケーションを実行するには、App Engine フレキシブル環境または App Engine スタンダード環境を使用します。また、アプリケーションに両方の環境を同時に使用するよう選択することもできます。これにより、お使いのサービスで各環境の個々の利点を活用できるようになります。
App Engine 環境
App Engine は、特に両方の環境を利用することにした場合、マイクロサービス アーキテクチャを使用するように設計されているアプリケーションにとても適しています。次のセクションを通して、どちらの環境がアプリケーションのニーズに適しているかを知り、理解を深めてください。
スタンダード環境を選択する場合
アプリケーション インスタンスは、次に示すサポートされている言語のランタイム環境を使用して、サンドボックス内で実行されます。
迅速なスケーリングに対処する必要があるアプリケーション。
スタンダード環境は、次の特性を持つアプリケーションに適しています。
- 無駄な投資を抑え、無料または低コストで運用することを目的としている。たとえばトラフィックがない場合、アプリケーションを 0 インスタンスにスケーリングできます。
- 即時のスケーリングを必要とする、トラフィックの突然かつ急激な増加がある。
フレキシブル環境を選択する場合
アプリケーション インスタンスは、Compute Engine 仮想マシン(VM)上の Docker コンテナ内で実行されます。
一定したトラフィックを受信する、定期的にトラフィックの変動がある、または徐々にスケールアップやスケールダウンするパラメータを満たすアプリケーション。
フレキシブル環境は、次の特性を持つアプリケーションに適しています。
- 他のプログラミング言語で書かれたカスタム ランタイムやソースコードを含む、Docker コンテナで実行する。
- ネイティブ コードを含むフレームワークを使用するか、それに依存する。
- Compute Engine ネットワークにある Google Cloud プロジェクトのリソースまたはサービスにアクセスする。
機能の概要の比較
次の表は、2 つの環境の違いをまとめたものです。
機能 | スタンダード環境 | フレキシブル環境 |
---|---|---|
インスタンスの起動時間 | 秒 | 分 |
リクエストの最大タイムアウト | ランタイムとスケーリングのタイプによって異なります。 | 60 分 |
バックグラウンド スレッド | ○(制限付き) | はい |
バックグラウンド プロセス | × | はい |
SSH デバッグ | × | はい |
スケーリング | 手動、基本、自動 | 手動、自動 |
ゼロにスケーリング | はい | ×(最小 1 インスタンス) |
ローカル ディスクへの書き込み |
/tmp ディレクトリに対する読み取りおよび書き込みアクセス権。 |
○(エフェメラル、各 VM の起動時に初期化されたディスク) |
ランタイムの変更 | × | ○(Dockerfile 経由) |
デプロイ時間 | 秒 | 分 |
セキュリティ パッチの自動適用 | はい | はい(コンテナ イメージ ランタイムを除く) |
Cloud Storage、Cloud SQL、Memorystore、Google Tasks などの Google Cloud APIs とサービスへのアクセス。 | はい | はい |
WebSocket | × | ○ |
サードパーティ バイナリのインストール サポート | ○ | ○ |
ロケーション | スタンダード環境のロケーション | フレキシブル環境のロケーション |
料金 | インスタンス時間に基づく | vCPU、メモリ、永続ディスクの使用量に基づく |
また、深く掘り下げた環境の比較もご覧ください。
App Engine と Cloud Run の比較
機能の比較と Cloud Run への移行方法については、App Engine と Cloud Run の比較をご覧ください。
フレキシブル環境と 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 スタンダード環境を無料で試す