【问题标题】:Lambda v Cron for ebs snapshot rotation for backup/DR用于备份/灾难恢复的 ebs 快照轮换的 Lambda v Cron
【发布时间】:2018-06-21 00:14:41
【问题描述】:

使用 AWS Lambda 而非由 cron 驱动的 boto3 来创建用于备份和灾难恢复的快照有什么好处?

我的目标是让快照可以追溯到 30 天左右,每 6 个月将一个快照推送到冰川。这使我可以快速恢复损坏或升级失败,并为 jenkins 等服务提供廉价的长期存储。我有用于 create-snap/restore-to-snap/mount-snap 的基于 boto3 的脚本。

拉姆达

  • IAM 政策仅与该一项操作相关联

Cron

  • 基于实例角色的 IAM 策略泄漏到实例(例如,这对于 jenkins 服务器来说是不理想的)。
  • 可能更容易使用我的 python 模块,可以通过模拟等进行测试。

因此,Lambda 似乎稍微复杂一些,但如果 terraform 管理它,那么我应该能够将我的 python 脚本与单元测试结合起来,然后将它们推送到 lambda 以供 CloudWatch 执行。

有没有我遗漏的赢利或成本?

【问题讨论】:

  • 你确定这不是关于产品推荐的问题吗?因为这些很快就会过时

标签: amazon-web-services aws-lambda boto3 amazon-cloudwatch


【解决方案1】:

AWS lambda 允许从多个来源触发,包括数据库中剩余的存储,甚至是 cron 触发器。您甚至可以将脚本彼此级联,这意味着您可以运行几个易于维护的小型脚本,而不是一个大型编排脚本。您还可以轻松地在资源旁边进行维护,使其成为 AWS 中的单点维护。

如果您将脚本放在另一台服务器上,您也需要为服务器中的空闲时间付费,而不是仅在需要运行维护时付费。您还需要维护其他服务器(取决于可能只是重新启动以更新操作系统)。添加维护 rui 一些你可以在没有维护的情况下获得的东西对我来说似乎是一个很大的骗局。


在我最近刚刚看到的用例之外进一步深入研究 Lambda 之后,我决定汇总一个优点和缺点列表,这些优点和缺点更侧重于维护而不是实际代码执行,因为这确实是差异所在:

AWS Lambda

优点

  • 单一维护地点
  • 没有远程访问问题
  • 更小的安全足迹
  • Cloud Watch 触发器,其中 Cron 只是您可以使用的触发器之一
  • 无服务器费用,仅在使用计算时间时付费
  • 免费层级访问意味着如果您的维护不需要很长时间,您可能实际上最终不会为此付费
  • 随着时间的推移选择语言的适应性。您可以迁移到许多其他语言以供团队成员维护
  • 本地测试很容易设置,因为 Lambda 在本地模拟并不难

缺点

  • 空闲时间是您需要付费的,因此请注意异步请求和低优先级。 1024 MB 内存选项似乎存在一个最佳点,优先级超过了时间,而且繁重的异步脚本的成本开始趋于平稳
  • 设置
  • 刚性环境
  • 起初环境令人困惑。在通过上下文对象公开之前,事物会以奇怪的方式嵌套

服务器上的 Cron

优点

  • 任何系统管理员都熟悉
  • 易于设置
  • 更精细的控制
  • 不竞争计算资源或优先级

缺点

  • 手动维护设置
  • 操作系统维护
  • 您为空闲时间付费
  • 大量闲置资源
  • 除了成为一名程序员之外,还需要一些专业知识

维护是赢家,而且您不必了解系统或将来如何维护系统这一事实使 Lambda 对许多人如此有吸引力。您不必担心“我是否正确设置了权限”或“我必须手动设置的触发器是否正确”或“此子系统是否在操作系统更新之间发生了变化”。 Lambda 是一个已定义、受控的执行和设置空间,可以为您免除维护工作。这是一个相当大的胜利,也是许多开发团队转向DevOps 模型的原因。没有系统管理员,也没有系统问题。

【讨论】:

  • 如果您正在与 AWS API 进行任何交互(例如触发 EBS 快照),您将在 AWS Lambda 函数(用 Python 编写)中使用 Boto...您为什么要尝试将 SDK 与“无服务器”云计算环境?为什么说 AWS 对 Lambda 的支持是一个重要的考虑因素? Boto 是适用于 Python 的官方 AWS 开发工具包,因此受到 AWS 的支持。问题是将服务器上的 Cron 作业与计划的 AWS Lambda 函数进行比较。
  • 我的猜测是docs.aws.amazon.com/solutions/latest/ops-automator/… 可能是最好的选择——对我来说更少的代码更多的“免费”功能
  • 你可以,但它会带来 dynamodb 成本,并且有很多你可能不需要的额外费用。仍然有一些预定义的任务可能真的很有帮助
  • 如果管理快照是我唯一的操作自动化用途,那么也许它不值得,但是如果我用于各种其他任务,那么成本可能是值得的。感谢您回答我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-16
  • 2018-06-02
  • 2018-08-28
相关资源
最近更新 更多