Google Cloud 上で実行される Django アプリは、すべての Google プロダクトと同じインフラストラクチャで実行され、たいてい可変ワークロードへの適応性が向上します。
ホスティング プラットフォーム
Google Cloud で Django をデプロイするオプションには以下のものがあります。
Django のデプロイ オプション | 始める |
---|---|
App Engine スタンダード環境 | |
App Engine フレキシブル環境 | |
Cloud Run |
|
Google Kubernetes Engine(GKE) | |
Compute Engine |
これらのプラットフォームの違いの詳細については、Google Cloud でのアプリのホスティング オプションをご覧ください。
データベース
Django オブジェクト リレーショナル マッパー(ORM)は、SQL リレーショナル データベースで最適に動作します。
新しいプロジェクトを開始する場合、Cloud SQL を選択することをおすすめします。Google が管理およびスケーリングし、Django でサポートされている PostgreSQL データベースや MySQL データベースもデプロイできます。
バックエンドが Cloud Spanner の Django は、python-spanner-django データベース バックエンドを使用してデプロイできます。
ときには、NoSQL データベースを使用せざるをえない場合もあります。Django ORM は、NoSQL データベースでも使用できますが、いくつかの制限があり、Django で正式にはサポートされていません。多数のコミュニティがサポートするバックエンド コネクタ データストアがあります。たとえば、App Engine を使用している場合は djangae、Cloud Run を使用している場合は django-gcloud-connectors などです。MongoDB を使用する場合は、Cloud Marketplace を使用してデプロイし、独自の管理を行うか、mLab 提供のマネージド MongoDB ホスティング サービスを使用します。
キャッシュ
Memorystore では、Memcache と Redis 向けのマネージド ホスティング オプションがあります。App Engine については、Memcache からの移行に関するガイドをご覧ください。
タスクのキューイング
Pub/Sub はイベント ドリブン システムのメッセージング機能を提供し、Tasks は非同期タスク実行機能を提供します。App Engine については、タスクキューからの移行に関するガイドをご覧ください。
Pub/Sub を使用して Python 用 Pub/Sub タスクキュー(psq)にタスクを追加する実装例を確認できます。
Cloud Tasks を介したタスクキューのサポートは、多数のコミュニティがサポートするパッケージを通してサポートされています。