Using Third-Party Databases

From App Engine, you can easily access other Google Cloud Platform services such as Cloud Datastore, Cloud SQL, and Cloud Storage. You can also choose from a variety of other cloud or third-party databases to use with your applications.

You can use any external database that is supported by your language if that database is accessible from your App Engine instance. These third-party databases can be hosted on Compute Engine, hosted on another cloud provider, hosted on premises, or managed by a third-party vendor.

For information about how to serve your static content, see Serving Static Files.

Google Cloud Platform storage services

For improved performance of your App Engine apps, you should use a GCP hosted database option.

For example, here are some App Engine-specific tutorials:

See a complete list of the GCP storage products on the Cloud Storage Products page.

Hosting on Compute Engine

App Engine instances are part of the same private internal network as Compute Engine instances. Your App Engine app can communicate with services hosted on Compute Engine within the same project without going through the public internet. In many cases, your app connects to the service using the instance's internal IP address without needing to assign the database an external, public IP address. If desired, you can assign a public IP address to allow the database to be accessed from outside of GCP.

Many popular third-party databases such as Redis, MongoDB, PostgreSQL, Cassandra, Hadoop, and Microsoft SQL Server can be quickly deployed to Compute Engine by using the Cloud Launcher. See the following guides for details about deploying MySQL or PostgreSQL.

Other cloud providers

App Engine apps can connect to external databases that are hosted on other public clouds as long as those database servers and your firewall are configured properly to accept connections. Your App Engine app connects over the Internet using that external service's public IP address.

Databases managed by a third-party vendor

There are many vendors offering managed database services such as mLab for MongoDB. These vendors handle hosting, configuration, and maintenance of databases. App Engine can connect to these external services over the Internet, in the same way as other public clouds by using that service's public IP address.

On premises

If you have existing on-premises databases that you want to make accessible to your App Engine app, you can either configure your internal network and firewall to give the database a public IP address or connect using a VPN.

Setting up Cloud VPN allows your App Engine app to access your on-premises network without directly exposing the database server to the public internet. Because App Engine and Compute Engine use the same networking infrastructure, you can use the VPN connection to establish a connection between the App Engine app and your on-premises database using the database server's internal IP address.

Production considerations

App Engine can be configured to automatically scale your application horizontally based on various metrics. Unlike web applications, databases often require non-trivial changes to respond to scale. In production applications, App Engine can quickly overwhelm a database during traffic spikes. You should take the anticipated average traffic load and load during spikes into consideration when configuring and deploying databases.

Was this page helpful? Let us know how we did:

Send feedback about...

App Engine flexible environment for PHP docs