amazon-web-services - AWS AutoScaling,缩减规模 - 等待进程终止

标签 amazon-web-services amazon-ec2 amazon-sqs autoscaling amazon-sns

当 SQS 队列很短时,我想使用 AWS AutoScaling 缩减一组实例。
这些实例执行一些繁重的工作,有时需要 5-10 分钟才能完成。我希望在实例终止之前完成这项工作。

我知道很多人应该遇到过同样的问题。是否可以在 EC2 上处理 AWS 终止请求并在实例实际终止之前完成我所有正在运行的进程?什么是最好的方法?

最佳答案

假设您使用的是 linux,您可以创建一个预烘焙的 AMI,您可以在附加到 Auto Scaling 组的启动配置中使用该 AMI。

在 AMI 中,您可以将脚本放在 /etc/init.d 下说 /etc/init.d/servicesdown .此脚本将执行您需要关闭的任何内容,这些脚本是 /usr/share/services 下的脚本。例如。

这有点像要点:

servicesdown

在正常关闭时,它总是会被执行。

然后在 Ubuntu/Debian 上说你会做这样的事情来将它添加到你的关机序列中:

/usr/sbin/update-rc.d servicesdown stop 25 0 1 6 .

在 CentOS/RedHat 上,您可以使用 chkconfig命令将其添加到正确的关闭运行级别。

关于amazon-web-services - AWS AutoScaling,缩减规模 - 等待进程终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20468955/

相关文章:

configuration - AWS IAM用户策略以限制对特定SQS队列的访问

python - 使用来自 Celery 的 SQS 消息

amazon-web-services - SQS 消息大小

amazon-ec2 - 如何配置 Amazon EMR 流作业以使用 EC2 Spot 实例 (Ruby CLI)?

python - Ubuntu 14.04 : command not found 中的 AWS Elastic Beanstalk (eb) 安装

java - 无法从 EMR 中运行的 Spark 应用程序删除 AWS SQS 消息

amazon-s3 - 如何使用 Zeppelin 访问 aws spark-ec2 集群和 s3 存储桶

django - 尝试获取在AWS Beanstalk上运行的django项目时不存在实例配置文件的错误

amazon-web-services - 特定于环境的 ebextensions Beanstalk 命令

amazon-web-services - .ebextensions 删除 preinit 脚本