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: Allowlisted 拡張機能とライブラリ Java 8、Go 1.11: すべての拡張機能またはライブラリ |
サポートされている API | Google Cloud サービスにアクセスするには、 オープンソース Cloud クライアント ライブラリを使用します |
独自の App Engine API |
画像処理には、Imgix をおすすめします。
または、無料枠が必要な場合は Rethumb を使用します。 |
Images App Engine API | |
メッセージングには、SendGrid、Mailgun、Mailjet などのサードパーティのメール プロバイダを使用します。 | Mail App Engine API | |
アプリデータをキャッシュ保存するには、Cloud Memorystore インスタンスを作成し、サーバーレス VPC アクセスを使用してインスタンスをアプリに接続します。 | Memcache App Engine API | |
検索可能なドキュメント インデックスの場合、Compute Engine 上で ElasticSearch のような全文検索データベースをホストし、サービスからアクセスします。 | Search App Engine API | |
push キューには、Cloud Tasks を使用します。 pull キューには、Cloud Pub/Sub を使用します。 |
Task Queue App Engine API | |
ユーザー認証には、OAuth 2.0 や Firebase Authentication などの HTTP ベースの認証システムを使用します。 | Users App Engine 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 世代ランタイムと第 2 世代ランタイムの類似点
- 瞬時にスケールアップを行い、トラフィックの急増に対応できます。
- アプリケーションは同じビルドプロセスを使用して構築されます。
- 一般提供サービスで同じ SLA が使用されます。
gcloud
コマンドのサポートが同じで、GCP Console インターフェースも同じです。- 無料枠。