一个集群上的 AWS ECS 多任务定义
Posted
技术标签:
【中文标题】一个集群上的 AWS ECS 多任务定义【英文标题】:AWS ECS multiple task definition on one cluster 【发布时间】:2019-06-08 06:04:41 【问题描述】:我正在构建 aws 基础架构。
我也是 AWS 基础设施的新手。
我有三个 docker 容器,所以我必须将它部署到 ECS。
下面的代码是我开始服务的一步一步的。
aws ecs create-cluster --cluster-name test
ecs-cli configure --cluster test --region ap-northeast-2 --default-launch-type EC2 --config-name test
ecs-cli configure profile --access-key AWS_ACCESS_KEY --secret-key AWS_SECRET_KEY --profile-name test
ecs-cli up --keypair my_keypair --instance-role TestRole --instance-type t2.micro --cluster-config test --force
ecs-cli compose -f ecs-docker-compose.yml up --create-log-groups --cluster-config test
运行后,创建一个ec2实例,一个任务定义,一个集群。
并且任务定义连接到集群。
但我想知道,如何在一个集群上运行多个任务定义?
为了持续部署,我的场景在这里。 (假设alb已经连接)
创建新任务定义
将新任务定义连接到集群
如果新任务定义连接成功,删除旧任务定义
总的来说我的问题。
我的持续部署场景正确吗?
如何将多个任务定义连接到一个集群?
谢谢。
【问题讨论】:
【参考方案1】:您可以使用服务和滚动更新here 来做到这一点。
服务是任务和资源的定义,很像 Kubernetes 中的部署(如果您更熟悉的话)。您为要使用的服务指定任务定义版本,并最终更新该服务以使用不同的(假设为新的)任务定义版本/修订,这将触发对该任务定义的替换。
所以,您的原则是滚动更新使用的原则,它只是已经由服务处理。无需手动配置流程。
【讨论】:
以上是关于一个集群上的 AWS ECS 多任务定义的主要内容,如果未能解决你的问题,请参考以下文章
如何在 AWS ECS 集群的服务中运行 AWS ECS 任务,而不是将服务从 Circle CI 的“aws-ecs/run-task”中排除