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 3、Java 11 以降、Go 1.12 以降のガイドをご覧ください。 |
Cloud クライアント ライブラリと App Engine のバンドル サービス |
大容量の blob ファイル ストレージの場合は、Cloud Storage を使用するか、App Engine Blobstore API バンドル サービスを引き続き使用します。 |
App Engine Blobstore API | |
データの永続性を確保するため、リレーショナル ストレージには Datastore モードの Firestore と Cloud 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 のバンドル サービスを引き続き使用します。または、送信メッセージングの場合は、SendGrid、Mailgun、Mailjet などのサードパーティのメール プロバイダを使用できます。 現時点では、受信メッセージングにおすすめのサードパーティのプロバイダはございません。 |
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 世代へのランタイム移行のリソース
各言語のランタイムに関する移行ガイドについては、長期サポートのページをご覧ください。