Amazon web services 用于ebs快照轮换的Lambda v Cron用于备份/灾难恢复

Amazon web services 用于ebs快照轮换的Lambda v Cron用于备份/灾难恢复,amazon-web-services,aws-lambda,boto3,amazon-cloudwatch,Amazon Web Services,Aws Lambda,Boto3,Amazon Cloudwatch,与cron驱动的boto3相比,使用AWS Lambda创建备份和灾难恢复快照有什么好处 我的目标是让快照可以追溯到30天左右,每6个月将一个快照推到冰川上。这给了我一个快速恢复的腐败或拙劣的升级与廉价的长期存储服务,如詹金斯。我有基于boto3的脚本用于创建快照/恢复到快照/装载快照) Lamda IAM政策仅与这一行动相关 Cron 基于实例角色的IAM策略泄漏到实例(例如,对于jenkins服务器来说,这不是个好主意) 使用我的python模块可能更容易些,可以通过mock等进行测试

与cron驱动的boto3相比,使用AWS Lambda创建备份和灾难恢复快照有什么好处

我的目标是让快照可以追溯到30天左右,每6个月将一个快照推到冰川上。这给了我一个快速恢复的腐败或拙劣的升级与廉价的长期存储服务,如詹金斯。我有基于boto3的脚本用于创建快照/恢复到快照/装载快照)

Lamda

  • IAM政策仅与这一行动相关
Cron

  • 基于实例角色的IAM策略泄漏到实例(例如,对于jenkins服务器来说,这不是个好主意)
  • 使用我的python模块可能更容易些,可以通过mock等进行测试
所以,Lambda看起来稍微复杂一些,但如果terraform管理它,那么我应该能够将我的python脚本与单元测试结合起来,然后将它们推送到Lambda,以便CloudWatch执行


是否有我遗漏的收益或成本?

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

如果您将脚本放在另一台服务器上,您还需要为服务器中的空闲时间付费,而不是只在需要运行维护时付费。您还需要维护另一台服务器(可能只是重新启动以更新操作系统)。对我来说,增加一些不需要维护就可以在家里得到的东西似乎是一个很大的骗局


在我最近看到的用例之外,我进一步深入研究了Lambda之后,我决定列出一系列的优点和缺点,这些优点和缺点更倾向于维护,而不是实际的代码执行,因为这才是真正的区别所在:

AWS Lambda 赞成的意见
  • 单一维修场所
  • 无远程访问问题
  • 更小的安全足迹
  • Cloud Watch触发器,其中Cron只是您可以使用的触发器之一
  • 无服务器成本,仅在使用计算时间时支付
  • 免费层访问意味着,如果您的维护不需要很长时间,您可能最终不会为此付费
  • 随着时间的推移,语言选择的适应性。您可以迁移到许多其他语言,以便团队成员进行维护
  • 本地测试很容易设置,因为Lambda在本地模拟并不困难
欺骗
  • 空闲时间是要收费的,所以要小心异步请求和低优先级。在1024MB内存选项周围似乎存在一个最佳点,即优先级大于时间,对于大量异步脚本,成本开始趋于平稳
  • 设置
  • 刚性环境
  • 一开始让环境混乱。在通过上下文对象公开之前,事物以奇怪的方式嵌套
服务器上的Cron 赞成的意见
  • 任何系统管理员都熟悉
  • 易于设置
  • 更细粒度控制
  • 不竞争计算资源或优先级
欺骗
  • 手动维护设置
  • 操作系统维护
  • 你为空闲时间买单
  • 大量闲置资源
  • 除了做一名程序员,还需要一点专业知识

维护是成功的,您不必了解任何有关系统的信息,也不必知道将来如何维护它,这一事实使Lambda对许多人如此具有吸引力。您不必担心“我是否设置了正确的权限”或“我必须手动设置的触发器是否正确”或“此子系统是否在操作系统更新之间发生了更改”。Lambda是一个定义的、受控的执行和设置空间,它为您消除了维护。这是一个相当大的胜利,也是为什么许多开发团队正在转向
DevOps
模型的原因。没有系统管理员,也没有系统问题。

您确定这不是关于产品推荐的问题吗?因为这些很快就会过时,所以如果您正在与AWS API进行任何交互,例如触发EBS快照,那么您将在AWS Lambda函数(用Python编写)中使用Boto。。。为什么要将SDK与“无服务器”云计算环境进行比较?为什么你说Lambda得到AWS的支持是一个很大的考虑因素?Boto是Python的官方AWS SDK,AWS也相应地支持它。问题是如何将服务器上的Cron作业与AWS Lambda预定函数进行比较。我想这可能是最好的选择——对我来说,更少的代码,更多的函数是“免费”的——是的,但这会带来dynamodb成本,并且有很多您可能不需要的额外功能。如果管理快照是我唯一的ops自动化用途,那么可能不值得这样做,但是如果我用于各种其他任务,那么成本可能是合理的。谢谢你回答我的问题。