App Engine スタンダード環境には、2 世代のランタイム環境があります。第 2 世代のランタイムでは、App Engine の機能が大幅に改善され、第 1 世代のランタイムのいくつかの制限が取り除かれています。このページでは、第 1 世代ランタイムと第 2 世代ランタイムの類似点と相違点について説明します。
第 2 世代 | 第 1 世代 | |
---|---|---|
サポートされている言語 |
Python 3 Java 11 Node.js PHP 7 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 以降のガイドをご覧ください。 |
独自の App Engine API |
データの永続性のため、Datastore(Python デベロッパーは、Cloud NDB も使用可能)、Firestore(新しいプロジェクトが必要)、または Cloud SQL を使用します。 |
App Engine Datastore API | |
画像処理には、Imgix をおすすめします。 または、無料枠が必要な場合は Rethumb を使用します。 |
App Engine Images API | |
メッセージングには、SendGrid、Mailgun、Mailjet などのサードパーティのメール プロバイダを使用します。 | App Engine Mail API | |
アプリデータをキャッシュ保存するには、Memorystore インスタンスを作成し、サーバーレス VPC アクセスを使用してインスタンスをアプリに接続します。 | App Engine Memcache API | |
検索可能なドキュメント インデックスの場合、Compute Engine 上で ElasticSearch のような全文検索データベースをホストし、サービスからアクセスします。 | App Engine Search API | |
push キューには、Cloud Tasks を使用します。 pull キューには、Pub/Sub を使用します。 |
App Engine Task Queue API | |
ユーザー認証には、OAuth 2.0 や Firebase Authentication などの HTTP ベースの認証システムを使用します。 | 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 ベースのコンテナ サンドボックス | 独自仕様 |
App Engine の第 1 世代ランタイムのサポート
現時点で、App Engine の追加の第 1 世代ランタイムを非推奨にする予定はありません。第 2 世代ランタイムは App Engine の今後の方向性を示していますが、第 1 世代ランタイムを使用しているデベロッパーとお客様は、サポートと必要なシステム更新を引き続き利用できます。
第 1 世代ランタイムのサポートプランの詳細については、レガシー ランタイムの長期サポートをご覧ください。
第 1 世代ランタイムと第 2 世代ランタイムの類似点
- 瞬時にスケールアップを行い、トラフィックの急増に対応できます。
- アプリケーションは同じビルドプロセスを使用して構築されます。
- 一般提供サービスで同じ SLA が使用されます。
gcloud
コマンドのサポートが同じで、GCP Console インターフェースも同じです。- 無料枠
第 1 世代から第 2 世代へのランタイム移行のリソース
各言語のランタイムに関する移行ガイドについては、長期サポートのページをご覧ください。