【发布时间】:2019-10-08 05:56:49
【问题描述】:
上下文
App Engine 服务是区域性的。尽管 Cloud Datastore 具有多区域位置,其中数据在此处所述的同一位置内的多个区域中复制,但尚不清楚当使用多区域位置之一时 App Engine 服务是否也具有多区域可用性。我们了解 App Engine 在一个区域内使用多个区域来提供高可用性,但需求文档要求设置多区域(主动-主动)App Engine。
解决方案选项
我们正在考虑以下设置作为在 2 个不同区域实现 Active-Active AppEngine+Datastore 组合的一种方式。
- 使用 2 个不同的 GCP 项目来托管相同的 AppEngine+Datastore 应用在 2 个不同的地区。其中之一将是主要的和 另一个将是活动备用。
- 使用计划作业导出 数据从 Datastore 数据从主要区域到次要区域 受此处描述的进口/出口指南的约束。
- 为了自动化数据导出和导入 App Engine cron 作业的组合 和/或可以使用云功能。
- 数据备份频率可以由应用程序 RPO 和 RTO 需求确定。
云数据存储导出和导入的原理
目前没有其他内置(GCP 托管)复制机制可用于跨区域的 Datastore 数据复制。
问题
Q1:有没有办法为 App Engine + Cloud Datastore 应用程序配置多区域可用性?要求是在 2 个区域中具有主动-主动配置。这可能吗?正确的方法是什么?
Q2:为了使用上面给出的解决方案选项,需要有一种方法将主要和次要 App Engine 应用程序的域名映射到相同的 DNS 名称,并使用某种加权 DNS 映射来启用自动路由需要故障转移时到辅助 App Engine 实例的流量,
Q3:有推荐的方法吗? Cloud DNS 或 HTTP(s) Loadbalancer - 与 Stackdriver 结合是否提供了实现此目的的方法? (注意 - App Engine 应用程序没有公共静态 IP,而是由 GCP 提供域名。) Google 有没有关于自动化 Datastore 导出和导入的最佳方法的建议?最简单的解决方案是在 VM 中使用 gcloud 命令行。还有一些方法可以通过 App Engine Cron 作业和/或 Cloud Functions 自动执行此操作? Google 有什么建议?
【问题讨论】:
标签: google-app-engine google-cloud-platform dns google-cloud-datastore google-app-engine-python