如需在 App Engine 上存储数据和文件,您可以使用 Google Cloud 服务,或使用受您的语言支持并可从 App Engine 实例访问的任何其他存储服务。第三方数据库可以由其他云服务商托管、在本地托管或由第三方供应商管理。
Google Cloud 存储服务
对于在 Python 2 标准环境中运行的 App Engine 应用,我们建议使用以下任一 Google Cloud 存储服务:
名称 | 结构 | 一致性 | 费用 |
---|---|---|---|
Datastore 模式 Firestore | 无架构 (NoSQL) | 高度一致,执行全局查询时除外。 | Datastore 模式会提供免费配额,但具有每日限制。对于付费账号,存储、读取和写入操作次数不受限制。如需了解详情,请参阅“数据存储区配额”页面。 |
Cloud SQL for MySQL 或 Cloud SQL for PostgreSQL |
关系型 | 强一致性 | Google 为 Google Cloud SQL 提供了两种结算方案:套餐和按使用量计费。如需了解详情,请参阅 Cloud SQL 价格表。 |
Cloud Storage | 文件及其关联的元数据(云端文件存储) | 高度一致,为获取存储分区或对象列表而执行 list 操作时除外。 | 调用 Google Cloud Storage 不收取任何相关费用。但是,您需要为存储在 Google Cloud Storage 中的任何数据支付正常的 Google Cloud Storage 数据存储费用。 如需了解 Cloud Storage 价格,请参阅 Cloud Storage 价格表。 |
这些存储方案并不相互排斥。例如,同一应用既可以将信息存储在 Cloud SQL 数据库中,也可以将文件存储在 Cloud Storage 存储分区中。
如需查看 Google Cloud 存储产品的完整列表,请参阅 Cloud Storage 产品页面。
其他云服务商
App Engine 应用可以连接到其他公有云上托管的外部数据库,前提是这些数据库服务器和您的防火墙已正确配置,可以接受连接。您的 App Engine 应用使用该外部服务的公共 IP 地址通过互联网进行连接。
由第三方供应商管理的数据库
很多供应商都提供代管式数据库服务,例如 mLab 提供 MongoDB 服务,而 Redis Labs 提供托管式 Redis 缓存服务。这些供应商会处理数据库的托管、配置和维护。App Engine 可以通过互联网连接到这些外部服务,具体方式与其他公有云使用这些服务的公共 IP 地址进行连接时相同。
本地
如果您希望 App Engine 应用可以访问您的现有本地数据库,可以通过配置内部网络和防火墙来为数据库提供一个公共 IP 地址,也可以使用 VPN 进行连接。
生产注意事项
App Engine 可配置为根据各种指标自动横向扩缩应用。与 Web 应用不同,数据库通常需要进行大幅度的调整来响应扩缩要求。在生产应用中,App Engine 可能会在流量高峰期使数据库急速过载。在配置和部署数据库时,您应该考虑预期的平均流量负载及高峰期负载。