Stay organized with collections
Save and categorize content based on your preferences.
To store data and files on App Engine, you can use Google Cloud services
or any other storage service that is supported by your language and is
accessible from your App Engine instance. Third-party databases
can be hosted on another cloud provider,
hosted on premises, or managed by a third-party vendor.
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, Redis Labs offers hosted
Redis caching. 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.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-25 UTC."],[[["\u003cp\u003eApp Engine can use Google Cloud storage services like Firestore in Datastore mode, Cloud SQL for MySQL or PostgreSQL, and Cloud Storage for various storage needs.\u003c/p\u003e\n"],["\u003cp\u003eApp Engine apps can connect to external databases hosted on other public clouds, provided the database servers and firewalls are properly configured for connection.\u003c/p\u003e\n"],["\u003cp\u003eThird-party vendor managed databases, such as mLab for MongoDB or Redis Labs for Redis, can be connected to App Engine over the Internet using the service's public IP address.\u003c/p\u003e\n"],["\u003cp\u003eOn-premises databases can be accessed by App Engine apps through either a public IP address or a secure VPN connection, such as Cloud VPN, allowing access to the database server's internal IP address.\u003c/p\u003e\n"],["\u003cp\u003eProduction environments require careful database configuration to handle traffic spikes, as App Engine's automatic horizontal scaling can overwhelm databases if not properly prepared.\u003c/p\u003e\n"]]],[],null,["# Understanding data and file storage\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\nTo store data and files on App Engine, you can use Google Cloud services\nor any other storage service that is supported by your language and is\naccessible from your App Engine instance. Third-party databases\ncan be hosted on another cloud provider,\nhosted on premises, or managed by a third-party vendor.\nFor information about reading and writing temporary files, see [Reading and\nWriting Temporary Files](/appengine/docs/standard/using-temp-files).\n\nGoogle Cloud storage services\n-----------------------------\n\nFor App Engine apps running in the standard environment, we recommend\none of the following Google Cloud storage services:\n\n- [Firestore in Datastore mode](/appengine/docs/standard/using-firestore-in-datastore-mode) to store data in a NoSQL database.\n- [Cloud SQL for MySQL](/sql/docs/mysql/connect-app-engine-standard) to store data in a MySQL database.\n- [Cloud SQL for PostgreSQL](/sql/docs/postgres/connect-app-engine-standard) to store data in a PostgreSQL database.\n- [Cloud Storage](/appengine/docs/standard/using-cloud-storage) to read and write files in the runtime environment, as well as [store and serve static files](/appengine/docs/standard/serving-static-files), such as movies or images or other static content.\n\nSee a complete list of the Google Cloud storage products on the\n[Cloud Storage Products page](/products/storage).\n\nOther cloud providers\n---------------------\n\nApp Engine apps can connect to external databases that are hosted on\nother public clouds as long as those database servers and your firewall are\nconfigured properly to accept connections. Your App Engine app connects\nover the Internet using that external service's public IP address.\n\nDatabases managed by a third-party vendor\n-----------------------------------------\n\nThere are many vendors offering managed database services such as\n[mLab](/mongodb) for MongoDB, Redis Labs offers hosted\n[Redis caching](https://redislabs.com/redis-enterprise/cloud/). These vendors handle\nhosting, configuration, and maintenance of databases. App Engine can\nconnect to these external services over the Internet, in the same way as other\npublic clouds by using that service's public IP address.\n\nOn premises\n-----------\n\nIf you have existing on-premises databases that you want to make accessible to\nyour App Engine app, you can either configure your internal\nnetwork and firewall to give the database a public IP address or connect using a\nVPN.\n\nSetting up [Cloud VPN](/network-connectivity/docs/vpn) allows your App Engine\napp to access your on-premises network without directly exposing the\ndatabase server to the public internet. Because App Engine and\nCompute Engine use the same networking infrastructure, you can use the VPN\nconnection to establish a connection between the App Engine app\nand your on-premises database using the database server's internal IP address.\n\nProduction considerations\n-------------------------\n\nApp Engine can be configured to automatically scale your application\n[horizontally](https://wikipedia.org/wiki/Scalability#Horizontal_and_vertical_scaling)\nbased on various metrics. Unlike web applications, databases often\nrequire non-trivial changes to respond to scale. In production applications,\nApp Engine can quickly overwhelm a database during traffic spikes. You\nshould take the anticipated average traffic load and load during spikes into\nconsideration when configuring and deploying databases."]]