AWS Elastic Container Service(ECS)是一种可管理的容器服务,可以轻松运行和扩展Docker容器。在ECS中,有两种服务类型可供选择:Daemon和任务(Task)。若要确保单个运行主机上只运行一个实例,则可以使用约束条件'One Task Per Host”。
Daemon服务 Daemon服务是无限循环运行的服务,该服务在一个主机上运行一个或多个容器。当需要在ECS集群中运行无需主机感知的后台任务时,可以使用Daemon服务。Daemon可运行在EC2实例或Fargate服务中,并且会将容器描述符传递给ECS调度程序。
下面是一个使用AWS CLI创建Daemon服务的示例:
aws ecs create-service \
--service-name my-service \
--task-definition my-task \
--desired-count 1 \
--launch-type EC2 \
--scheduling-strategy DAEMON
使用约束条件的任务服务 任务服务是有限数量运行的服务,该服务在主机上运行一个或多个容器。可以使用约束条件来确保每台主机上最多只运行一个任务实例。对于需要在多个主机上运行的应用程序,这可以确保应用程序在EC2实例上负载平衡运行。
以下是使用CLI创建一个基于约束条件的任务服务的示例:
aws ecs create-service \
--service-name my-service \
--task-definition my-task \
--desired-count 3 \
--launch-type EC2 \
--placement-constraints constraint-type=memberOf,expression=attribute:ecs.instance-type==t3.small \
--placement-strategy type=binpack
在此示例中,使用了'属性”约束条件,以便只能在具有t3.small实例类型的EC2实例中运行任务实例。使用了'每个主机一个任务”的约束条件,以确保每个EC2实例上最多只运行一个任务实例。
下一篇:AWSECS服务连接与服务发现