使用新控制台创建服务 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用新控制台创建服务

您可以使用新的控制台创建 Amazon ECS 服务。

使用新的控制台时请考虑以下事项;

  • 目前,新控制台仅支持 Rolling update(滚动更新)(ECS) 部署类型。要使用任何其他部署类型,请切换到经典控制台。

  • 目前,新控制台仅支持 Target tracking(目标跟踪)扩展策略。要使用分步扩缩,请切换到经典控制台。

  • 有两个计算选项可分发您的任务。

    • capacity provider strategy(容量提供程序策略)会使 Amazon ECS 在一个或多个容量提供商之间分发您的任务。

    • launch type(启动类型)会让 Amazon ECS 直接在 Fargate 或您手动注册到集群的 Amazon EC2 实例上启动我们的任务。

  • 任务定义使用 awsvpc 网络模式或配置为使用负载均衡器的服务必须具有网络配置。预设情况下,控制台会选择原定设置 Amazon VPC 以及原定设置 Amazon VPC 中的所有子网和原定设置安全组。

  • 默认的任务放置策略会将任务平均分配到各可用区。

  • 当您为服务部署使用 Launch Type(启动类型)时,默认情况下,该服务会在集群 VPC 的子网中启动。

  • 对于 capacity provider strategy(容量提供程序策略),控制台会默认选择一个计算选项。下面介绍了控制台用于选择原定设置值的顺序:

    • 如果您的集群已定义原定设置容量提供程序策略,则将选择该策略。

    • 如果您的群集没有定义的原定设置容量提供程序策略,但您确实已将 Fargate 容量提供程序添加到集群中,则选择使用 FARGATE 容量提供程序。

    • 如果您的群集没有定义原定设置容量提供程序策略,但您确实已将一个或多个自动扩缩组容量提供程序添加到集群中,则选中 Use custom (Advanced) [使用自定义(高级)] 选项,且您需要手动定义策略。

    • 如果您的集群没有定义原定设置容量提供程序策略,并且没有向集群添加容量提供程序,则会选择 Fargate 启动类型。

快速创建服务

您可以使用新的控制台快速创建和部署服务。服务具有以下配置:

  • 在与您的集群关联的 VPC 和子网中部署

  • 部署一项任务

  • 使用滚动部署

  • 将容量提供程序策略与您的默认容量提供程序一起使用

  • 使用部署断路器检测故障,并将选项设置为在出现故障时自动回滚部署

要使用默认参数部署服务,请执行以下步骤。

要创建服务(新的 Amazon ECS 控制台)
  1. https://console.aws.amazon.com/ecs/v2 中打开新控制台。

  2. 集群页面上,选择要在其中创建服务的集群。

  3. 服务选项卡上,选择部署

  4. Deployment configuration(部署配置)下,指定应用程序的部署方式。

    1. 对于 Application type(应用程序类型),选择 Service(服务)。

    2. 对于任务定义,选择要使用的任务定义族和修订。

    3. 对于 Service name(服务名称),为您的服务输入一个名称。

    4. 对于 Desired tasks(预期任务),输入要在服务中启动并保留的任务数量。

  5. (可选)若要以键值对的形式向服务添加标签,请展开 Tags(标签)部分。

使用定义的参数创建服务

要使用定义的参数创建服务,请执行以下步骤。

要创建服务(新的 Amazon ECS 控制台)
  1. https://console.aws.amazon.com/ecs/v2 中打开新控制台。

  2. 集群页面上,选择要在其中创建服务的集群。

  3. 服务选项卡上,选择部署

  4. (可选)选择任务在集群基础设施中的分发方式。展开 Compute configuration(计算配置),然后选择您的选项。

    分配方式 步骤

    容量提供程序策略

    1. Compute options(计算选项)部分中,选择 Capacity provider strategy(容量提供程序策略)。

    2. 选择策略:

      • 要使用集群的原定设置容量提供程序策略,请选择 Use cluster default(使用集群原定设置)。

      • 如果集群没有原定设置的容量提供程序策略,或者要使用自定义策略,请选择 Use custom(使用自定义),Add capacity provider strategy(添加容量提供程序策略),并通过指定 Base(基准)、Capacity provider(容量提供程序)和 Weight(权重)来定义自定义容量提供程序策略。

    注意

    要在策略中使用容量提供程序,容量提供程序必须与集群相关联。有关容量提供程序的更多信息,请参阅 Amazon ECS 容量提供程序

    启动类型
    1. Compute options(计算选项)部分中,选择 Launch type(启动类型)。

    2. 对于 Launch type(启动类型),请选择一种启动类型。

    3. (可选)当指定 Fargate 启动类型时,对于平台版本中,指定要使用的平台版本。如果未指定任何版本,将原定设置使用 LATEST 平台版本。

  5. 要指定服务的部署方式,请展开 Deployment configuration(部署配置),然后选择您的选项。

    1. 对于 Application type(应用程序类型),选择 Service(服务)。

    2. 对于 Task definition(任务定义)和 Revision(修订),选择要使用的任务定义系列和修订。

    3. 对于 Service name(服务名称),为您的服务输入一个名称。

    4. 对于 Service type(服务类型),选择服务计划策略。

      • 要让计划程序只在每个活动容器实例上部署一个任务,以满足所有任务放置约束,选择 Daemon(进程守护程序)。

      • 要让计划程序在集群上放置并维护所需数量的任务,选择 Replica(副本)。

      有关更多信息,请参阅服务计划程序概念

    5. 如果您对于 Desired tasks(预期任务)使用 Replica(副本),输入要在服务中启动并保留的任务数量。

    6. 要更改在服务部署期间允许正在运行的任务的最小正常百分比和最大百分比,请展开 Deployment options(部署选项),然后指定以下参数。

      1. 对于Min running tasks(最小运行任务数),输入服务中在部署期间必须保持 RUNNING 状态的任务数的下限,以所需任务数的百分比表示(四舍五入到最接近的整数)。有关更多信息,请参阅部署配置

      2. 对于 Max running tasks(最大运行任务数),输入部署期间 RUNNINGPENDING 状态下允许的服务中任务数的上限,以所需任务数的百分比表示(四舍五入到最接近的整数)。

    7. 要配置 Amazon ECS 如何检测和处理部署故障,请展开 Deployment failure detection(部署故障检测),然后选择您的选项。

      1. 要使用部署断路器,请选择 Use the Amazon ECS deployment circuit breaker(使用 Amazon ECS 部署断路器)。

      2. 要让软件在部署断路器将部署设置为故障状态时自动将部署回滚到上次完成的部署状态,请选择 Rollback on failure(故障时回滚)。

  6. 要配置服务自动扩缩,请展开 Service auto scaling(服务自动扩缩),然后指定以下参数。

    1. 要使用服务自动扩缩,请选择 Service auto scaling(服务自动扩缩)。

    2. 对于 Minimum number of tasks(最小任务数),输入供 Service Auto Scaling 使用的任务数的下限。所需计数不会低于此计数。

    3. 对于 Maximum number of tasks(最大任务数),输入供 Service Auto Scaling 使用的任务数的上限。所需计数不会高于此计数。

    4. 对于 Scaling policy type (扩展策略类型) 选择 Target tracking (目标跟踪)。

    5. 对于 Policy name(策略名称),请输入策略的名称。

    6. 对于 ECS service metric(ECS 服务指标),选择以下指标之一:

      • ECSServiceAverageCPUUtilization:服务的平均 CPU 使用率。

      • ECSServiceAverageMemoryUtilization:服务的平均内存使用率。

      • ALBRequestCountPerTarget:应用程序负载均衡器目标组中每个目标完成的请求数。

        指标需要一个应用程序负载均衡器以及应用程序负载均衡器的目标组。

    7. 对于 Target value(目标值),输入服务为所选指标保留的值。

    8. 对于 Scale-out cooldown period(横向扩展冷却时间),输入扩展活动结束且没有发生其他扩展的时间(以秒为单位)。

    9. 对于 Scale-in cooldown period(横向缩减冷却时间),输入缩减活动结束且没有发生其他缩减的时间(以秒为单位)。

    10. 要防止策略执行缩减活动,请选择 Turn off scale-in(关闭横向缩减)。

  7. (可选)要为您的服务配置负载均衡器,请展开 Load balancing(负载均衡)。

    选择负载均衡器。

    要使用此负载均衡器… 请执行此操作...

    Application Load Balancer

    1. 对于 负载均衡器类型,选择 Application Load Balancer

    2. 选择创建新负载均衡器来创建新的 Application Load Balancer,或使用现有负载均衡器选择现有 Application Load Balancer。

    3. 对于 Load balancer name(负载均衡器名称),输入唯一的名称。

    4. 对于 Choose container to load balance(选择用于负载均衡的容器),选择托管服务的容器。

    5. 对于 Listener(侦听器),为应用程序负载均衡器输入一个端口和协议,以侦听连接请求。预设情况下,负载均衡器将配置为使用端口 80 和 HTTP。

    6. 对于 Target group name(目标组名称),输入应用程序负载均衡器要将请求路由到的目标组的名称和协议。默认情况下,目标组会将请求路由到任务定义中定义的第一个容器。

    7. 对于 Health check path(运行状况检查路径),输入容器中存在的路径,应用程序负载均衡器应定期发送请求以验证应用程序负载均衡器和容器之间的连接运行状况。默认路径为根目录(/)。

    8. 对于 Health check grace period(运行状况检查宽限期),输入服务计划程序忽略未正常运行的 Elastic Load Balancing 目标运行状况检查的时长(以秒为单位)。

    Network Load Balancer
    1. 对于 Load balancer type(负载均衡器类型),选择网络负载均衡器

    2. 对于 Load Balancer(负载均衡器),选择一个现有的网络负载均衡器。

    3. 对于 Choose container to load balance(选择用于负载均衡的容器),选择托管服务的容器。

    4. 对于 Target group name(目标组名称),输入应用程序负载均衡器要将请求路由到的目标组的名称和协议。默认情况下,目标组会将请求路由到任务定义中定义的第一个容器。

    5. 对于 Health check path(运行状况检查路径),输入容器中存在的路径,应用程序负载均衡器应定期发送请求以验证应用程序负载均衡器和容器之间的连接运行状况。默认路径为根目录(/)。

    6. 对于 Health check grace period(运行状况检查宽限期),输入服务计划程序忽略未正常运行的 Elastic Load Balancing 目标运行状况检查的时长(以秒为单位)。

  8. (可选)要使用默认策略之外的其他任务放置策略,请展开 Task Placement(任务放置),然后从以下选项中进行选择。

    有关更多信息,请参阅Amazon ECS 任务放置

    • AZ Balanced Spread (AZ 均衡分散) – 在各个可用区以及每个可用区中的各个容器实例中分配任务。

    • AZ Balanced BinPack (AZ 均衡装填) – 在各个可用区以及具有最低可用内存的容器实例中分配任务。

    • BinPack (装填) – 根据 CPU 或内存的最低可用量来分配任务。

    • One Task Per Host (每个主机一项任务) – 在每个容器实例中最多可放置服务的一个任务。

    • Custom (自定义) – 定义您自己的任务放置策略。

    如果您选择了 Custom(自定义),请定义放置任务的算法和任务放置过程中要考虑的规则。

    • Strategy(策略)下,对于 Type(类型)和 Field(字段),选择算法和用于该算法的实体。

      您最多可输入 5 个策略。

    • Constraint(约束)下,对于 Type(类型)和 Expression(表达式),选择要用于该约束的规则和属性。

      当您输入 Expression(表达式)时,请勿输入双引号(" ")。例如,要设置在 T2 实例上放置任务的约束,对于 Expression(表达式),输入 attribute:ecs.instance-type =~ t2.*

      您最多可输入 10 个约束。

  9. 如果您的任务定义使用 awsvpc 网络模式,请展开 Networking(联网)。使用以下步骤指定自定义配置。

    1. 对于 VPC,选择要使用的 VPC。

    2. 对于 Subnets(子网),选择 VPC 中的一个或多个子网,任务计划程序在放置任务时会考虑这些子网。

      重要

      awsvpc 网络模式仅支持私有子网。任务不接收公有 IP 地址。因此,出站互联网访问需要 NAT 网关,且入站互联网流量通过负载均衡器进行路由。

    3. 对于安全组,您可以选择现有安全组或创建新安全组。要使用现有安全组,请选择该安全组并移至下一步。要创建新安全组,请选择 Create a new security group (创建新安全组)。您必须指定安全组名称、说明,然后为该安全组添加一个或多个入站规则。

  10. (可选)为了帮助确定您的服务和任务,请展开 Tags(标签)部分,然后配置您的标签。

    要让 Amazon ECS 使用集群名称和任务定义标签自动标记全部新启动的任务,选择 Turn on Amazon ECS managed tags(启用 Amazon ECS 托管标签),然后选择 Task definitions(任务定义)。

    要让 Amazon ECS 使用集群名称和服务标签自动标记全部新启动的任务,选择 Turn on Amazon ECS managed tags(启用 Amazon ECS 托管标签),然后选择 Service(服务)。

    添加或删除标签。

    • [添加标签] 选择 Add tag(添加标签),然后执行以下操作:

      • 对于 Key(键),输入键名称。

      • 对于 Value(值),输入键值。

    • [删除标签] 在标签旁,选择 Remove tag (删除标签)