App Engine にデータやファイルを保存するには、Google Cloud サービスを使用できます。また、ご使用の言語でサポートされていて、App Engine インスタンスからアクセスできるストレージ サービスであれば、他のどのサービスでも使用できます。これらのサードパーティ データベースは、別のクラウド プロバイダでホストすることも、オンプレミスでホストすることも、サードパーティのベンダーが管理することも可能です。
Google Cloud のストレージ サービス
App Engine で実行される App Engine アプリには、次のいずれかの Google Cloud ストレージ サービスをおすすめします。
- Datastore モードの Firestore。NoSQL データベースにデータを保存します。
Cloud SQL for MySQL。MySQL データベースにデータを保存します。
Cloud SQL for PostgreSQL。PostgreSQL データベースにデータを保存します。
Cloud Storage。ランタイム環境内でファイルの読み取りと書き込みを行います。さらに、動画や画像をはじめとする静的コンテンツの静的ファイルを保存して提供できます。
Google Cloud ストレージ サービスの完全なリストについては、Cloud Storage プロダクトのページをご覧ください。
他のクラウド プロバイダ
App Engine アプリは、外部のデータベース サーバーと内部のファイアウォールが接続を受け入れるように適切に構成されていれば、他のパブリック クラウドでホストされる外部データベースに接続できます。App Engine アプリがインターネット経由で接続する際は、その外部サービスのパブリック IP アドレスを使用します。
サードパーティ ベンダーが管理するデータベース
MongoDB 用の mLab、Redis Labs のホスト型 Redis キャッシュ機能など、多くのベンダーがマネージド データベース サービスを提供しています。これらのベンダーは、データベースのホスティング、構成、メンテナンスを受け持ちます。App Engine はそれらの外部サービスにインターネット経由で接続できますが、その際は他のパブリック クラウドがそれらのサービスにパブリック IP アドレスを使用して接続するのと同じ方法を使用します。
オンプレミス
既存のオンプレミス データベースを App Engine アプリからアクセスできるようにするには、内部ネットワークとファイアウォールを構成してデータベースにパブリック IP アドレスを提供するか、または VPN を使用して接続します。
Cloud VPN を設定すると、App Engine アプリからオンプレミスのネットワークにアクセスでき、データベース サーバーを公共のインターネットに直接公開せずに済みます。App Engine と Compute Engine は同じネットワーク インフラストラクチャを使用しているので、VPN 接続を利用すれば、データベース サーバーの内部 IP アドレスを使用して App Engine アプリとオンプレミスのデータベースとの接続を確立できます。本番環境に関する考慮事項
App Engine は、さまざまな指標に基づいて、自動的にアプリケーションを水平スケールするよう構成できます。ウェブ アプリケーションとは異なり、データベースはスケールに対応するために、大規模な変更を必要とすることがよくあります。本番環境のアプリケーションでは、トラフィックが急増すると、App Engine からのデータ量がデータベースの容量を急激に上回る場合があります。データベースを構成してデプロイする際は、予想される平均トラフィックの負荷とトラフィック急増時の負荷を考慮に入れる必要があります。