部署 API 冗余备份

Deploy API redundant backup

我在网络不稳定的本地服务器上有一个 API 运行。我想添加一些基于云的冗余,但不知道 best/cheapest 的实现方式。

API 从 webhook 接收一些数据并更新本地网络上的设备。

我一直在集思广益的是 API 的精简版本,它只保留 webhook 数据,ping 主 API,如果它已启动并收到数据,则什么都不做(如果是这种情况,不会将数据保存在本地),但如果 Main API 已关闭,它会发送一封电子邮件并存储数据,然后每隔 12-24 小时重新发送一次数据,直到成功(机会很高,网络已关闭,直到有人物理重置硬件需要 $ 来修复我没有)。有没有更好的方法来实现这一目标?

此外,哪种服务最适合这种 deployment/what 工具可以帮助解决此类问题?每月发送和接收的请求不会超过 100 个,所以我想保留它 cheap/free。虽然我不知道使用 24 小时计时器的最佳方式。我过去使用过 Heroku 并且我知道它的调度程序功能,但我没有使用过它们并且在将其作为解决方案投资之前需要更多的输入。当前的 API 无法按原样部署,我可能必须从头开始重建才能使其在云环境中运行,因此我想事先挑选一些东西。

无服务器架构听起来是这种情况下的最佳选择(即 AWS Lambda)。您可以使用托管存储服务(即 S3)来存储数据,直到您可以到达本地 API。对于此用例,任何涉及持续 运行 服务的事情都可能不符合成本效益。

您可以安排无服务器作业或让您的本地 API 按计划从存储服务中读取。如果您的本地 API 可以检测到这些网络故障,您可以完全避免调度并在连接恢复时检查更新。

我提到了 AWS,但还有很多替代方案(Google 云是最明显的)。