在 AWS 上设置高可用性(多个可用区)周期性任务(可能使用 Cron 触发)的推荐方式/模式是什么?
我想在多个可用区的多个 EC2 实例上安装该软件,但一次只能在一个实例上运行该任务。哪个实例并不重要。
在迁移到 AWS 之前,我们曾经在 MySQL 实例中使用数据库锁定 - 只有成功创建锁定的实例才会运行。
但是在 AWS 上一定有更好的方法吗?特别是在不需要数据库的情况下。
谢谢!
尼克。
最佳答案
自从我第一次提出这个问题后,现在可以使用 CloudWatch Events 来安排周期性事件。事件可以是:
- N 分钟/小时/天的固定费率
- Cron 表达式
目标可以是:
- 一个 AWS Lambda 函数
- 发布到 SNS 主题
- 写入 SQS 队列
- 写入 Kinesis 流
- 对 EC2/EBS 实例执行操作
然后,SQS 可用于通知多个可用性区域中机器集群中的单个实例执行操作。
这里有更多信息: https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/ScheduledEvents.html
尽管它不包含有关如果可用区出现故障会发生什么情况的弹性/可用性声明。
关于amazon-web-services - AWS 上的高可用性周期性任务 (cron),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20903302/