App Engine スタンダード環境のランタイム

App Engine スタンダード環境には、2 世代のランタイム環境があります。第 2 世代のランタイムでは、App Engine の機能が大幅に改善され、第 1 世代のランタイムのいくつかの制限が取り除かれています。このページでは、第 1 世代ランタイムと第 2 世代ランタイムの類似点と相違点について説明します。

第 2 世代 第 1 世代
サポートされている言語 Python 3
Java 11+
Node.js
PHP 7/8
Ruby
Go 1.12+
Python 2.7
Java 8
PHP 5.5
Go 1.11
言語拡張とシステム ライブラリ サポート 任意の拡張またはライブラリ Python 2.7、PHP 5.5: 許可リストを使用する拡張機能とライブラリ
Java 8、Go 1.11: 任意の拡張機能またはライブラリ
サポートされている API

フル機能の Google Cloud サービスにアクセスするには、オープンソースの Cloud クライアント ライブラリを使用します。

Python 3、Java 11、Go 1.12 以降のランタイムに更新すると、App Engine バンドル サービスの多くを引き続き使用できます。詳しくは、Python 3Java 11 以降Go 1.12 以降のガイドをご覧ください。

Cloud クライアント ライブラリと App Engine のバンドル サービス
大容量の blob ファイル ストレージの場合は、Cloud Storage を使用するか、App Engine Blobstore API バンドル サービスを引き続き使用します。
App Engine Blobstore API
データの永続性を確保するため、リレーショナル ストレージには Datastore モードの FirestoreCloud SQL を使用します。または、App Engine Datastore API バンドル サービスを引き続き使用することもできます。
App Engine Datastore API
遅延タスクの実行には、引き続き Deferred API(Python)、DeferredTask API(Java)、Delay API(Go)を使用します。PHP ユーザーは、Task Queues API バンドル サービスを介して、引き続き遅延実行を指定できます。または、Cloud Tasks を使用して遅延機能を実装することもできます。
App Engine Deferred API
画像処理には、Cloud Storage を使用して画像を直接提供するか、サードパーティのコンテンツ配信ネットワーク(CDN)または画像処理ライブラリを使用できます。
または、App Engine Images API バンドル サービスを引き続き使用することもできます。
App Engine Images API
受信または送信のメッセージングには、App Engine Mail API のバンドル サービスを引き続き使用します。または、送信メッセージングの場合は、SendGridMailgunMailjet などのサードパーティのメール プロバイダを使用できます。
現時点では、受信メッセージングにおすすめのサードパーティのプロバイダはございません。
App Engine Mail API
アプリデータをキャッシュ保存するには、Memorystore インスタンスを作成し、サーバーレス VPC アクセスを使用してインスタンスをアプリに接続します。 または、引き続き App Engine Memcache API バンドル サービスを使用します。 App Engine Memcache API
検索可能なドキュメント インデックスの場合、Compute Engine 上で Elasticsearch のような全文検索データベースをホストし、サービスからアクセスします。Google Cloud Marketplace では、SaaS ベースの Elasticsearch サービスも提供されています。または、引き続き App Engine Search API バンドル サービスを使用します。 App Engine Search API
外部タスクを実行するには、push キューと pull キューの両方で App Engine Task Queues API バンドル サービスを引き続き使用するか、push キューを Cloud Tasks に移行します。
キューを Pub/Sub に pull します。
App Engine Task Queue API
ユーザー認証には、App Engine Users API バンドル サービスを引き続き使用するか、ユーザー認証オプションで説明されている任意の認証サービスに移行します。 App Engine Users API
外部ネットワークへのアクセス 完全アクセス権 Python 2.7, PHP 5.5: URL Fetch API 経由
Java 8、Go 1.11: 完全アクセス権。
ファイル システムへのアクセス /tmp に対する読み取り / 書き込みアクセス権 Python 2.7、PHP 5.5: なし
Java 8、Go 1.11: /tmp に対する読み取り / 書き込みアクセス権
言語ランタイム 修正なし、オープンソースのランタイム App Engine 用に修正済み
分離メカニズム gVisor ベースのコンテナ サンドボックス gVisor ベースのコンテナ サンドボックス

App Engine の第 1 世代ランタイムのサポート

App Engine 第 1 世代ランタイムのサポートは終了しました。Google は、サポートが終了したランタイム環境のコンポーネントに対して、セキュリティ アップデートやパッチの適用を行いません。

第 1 世代ランタイムのサポートプランの詳細については、以前のランタイムのサポートランタイム ライフサイクルをご覧ください。

第 1 世代ランタイムと第 2 世代ランタイムの類似点

  • 瞬時にスケールアップを行い、トラフィックの急増に対応できます。
  • アプリケーションは同じビルドプロセスを使用して構築されます。
  • 一般提供サービスで同じ SLA が使用されます。
  • gcloud コマンドのサポートが同じで、GCP Console インターフェースも同じです。
  • 無料枠

第 1 世代から第 2 世代へのランタイム移行のリソース

各言語のランタイムに関する移行ガイドについては、長期サポートのページをご覧ください。