gpt4 book ai didi

amazon-web-services - 如何强制AWS ECS将容器迁移到另一个ASG?

转载 作者:行者123 更新时间:2023-12-04 08:04:08 24 4
gpt4 key购买 nike

我正在使用user_data对ECS中用于运行容器的主机进行初始配置。我希望能够告诉AWS ECS一旦更新user_data将容器迁移到新创建的主机。我怎样才能做到这一点?

我正在使用Terraform进行AWS基础设施部署。

最佳答案

我认为ECS没有内置的方法可以做到这一点。结果,它通常需要相当繁琐且手动的过程(尽管可以编写脚本)。有几种不同的方法可以执行此操作,但这通常是最简单的方法:


更改为user_data
运行terraform apply
对于您的ASG中具有旧user_data的每个EC2实例:


终止该EC2实例。您可以通过AWS CLI或EC2 Web控制台执行此操作。
稍后,ASG将使用您的新user_data自动启动新的EC2实例,以替换终止的EC2实例。
稍后,ECS将自动启动恰好在终止的EC2实例上运行的任何ECS任务的新副本。



完成此过程后,ASG中的所有实例都将运行新的user_data。请注意,只要您的ECS任务的停机时间为零,即可完成此操作:


每个ECS任务至少有2个副本,每个副本在您的ASG中的单独EC2实例上。
您需要在终止EC2实例之间等待足够的时间,以重新启动ECS任务。


如果您不能满足这些要求,那么您可能会有一些停机时间,或者您可能需要采用更复杂的选择,其中涉及将ASG的大小增加一倍,等待新的EC2实例(它将具有新的user_data)部署在ASG中,将ECS任务的数量加倍,等待这些新的ECS任务部署(它们通常将部署到新的EC2实例上),然后再将每个ECS任务减少一半(理论上,旧的ECS任务和旧的EC2实例将终止,仅保留新实例。

关于amazon-web-services - 如何强制AWS ECS将容器迁移到另一个ASG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39949227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com