如需在 App Engine 上存储数据和文件,您可以使用 Google Cloud 服务,或使用受您的语言支持并可从 App Engine 实例访问的任何其他存储服务。第三方数据库可以由其他云服务商托管、在本地托管或由第三方供应商管理。
如需详细了解如何读取和写入临时文件,请参阅读取和写入临时文件。Google Cloud 存储服务
对于在标准环境中运行的 App Engine 应用,我们建议使用以下任一 Google Cloud Storage 服务:
- Datastore 模式的 Firestore:用于将数据存储在 NoSQL 数据库中。
- Cloud SQL for MySQL:用于将数据存储在 MySQL 数据库中。
- Cloud SQL for PostgreSQL:用于将数据存储在 PostgreSQL 数据库中。
- Cloud Storage:用于在运行时环境中读取和写入文件,以及存储和传送静态文件(例如影片、图片或其他静态内容)。
如需查看 Google Cloud 存储产品的完整列表,请参阅 Cloud Storage 产品页面。
其他云服务商
App Engine 应用可以连接到其他公有云上托管的外部数据库,前提是这些数据库服务器和您的防火墙已正确配置,可以接受连接。您的 App Engine 应用使用该外部服务的公共 IP 地址通过互联网进行连接。
由第三方供应商管理的数据库
很多供应商都提供代管式数据库服务,例如 mLab 提供 MongoDB 服务,而 Redis Labs 提供托管式 Redis 缓存服务。这些供应商会处理数据库的托管、配置和维护。App Engine 可以通过互联网连接到这些外部服务,具体方式与其他公有云使用这些服务的公共 IP 地址进行连接时相同。
本地
如果您希望 App Engine 应用可以访问您的现有本地数据库,可以配置内部网络和防火墙,为数据库提供一个公共 IP 地址,也可以使用 VPN 进行连接。
设置 Cloud VPN 后,您的 App Engine 应用可访问本地网络,而无需将数据库服务器直接暴露在公共互联网上。由于 App Engine 和 Compute Engine 使用相同的网络基础架构,因此您可以使用数据库服务器的内部 IP 地址在 App Engine 应用和本地数据库之间建立 VPN 连接。
生产注意事项
App Engine 可配置为根据各种指标自动横向扩缩应用。与 Web 应用不同,数据库通常需要进行大幅度的调整来响应扩缩要求。在生产应用中,App Engine 可能会在流量高峰期使数据库急速过载。在配置和部署数据库时,您应该考虑预期的平均流量负载及高峰期负载。