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

使用控制台创建 Amazon ECS 服务

您可以使用控制台创建服务。

使用控制台时请考虑以下事项:

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

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

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

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

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

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

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

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

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

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

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

  • 默认的部署故障检测默认选项是使用 Amazon ECS 部署断路器选项和故障时回滚选项。

    有关更多信息,请参阅 Amazon ECS 部署断路器如何检测故障

  • 如果要使用蓝绿部署选项,请确定 CodeDeploy 如何移动应用程序。以下选项可用:

    • CodeDeployDefault.ECSAllAtOnce:将所有流量一次性转移到更新后的 Amazon ECS 容器

    • CodeDeployDefault.ECSLinear10PercentEvery1Minutes:在所有流量转移之前,每分钟转移 10% 的流量。

    • CodeDeployDefault.ECSLinear10PercentEvery3Minutes:在所有流量转移之前,每 3 分钟转移 10% 的流量。

    • CodeDeployDefault.ECSCanary10Percent5Minutes:在第一个增量中转移 10% 的流量。其余 90% 部署在五分钟后进行转移。

    • CodeDeployDefault.ECSCanary10Percent15Minutes:在第一个增量中转移 10% 的流量。其余 90% 部署在 15 分钟后进行转移。

  • 如果您需要一个应用程序来连接到在 Amazon ECS 中运行的其他应用程序,则请确定适合您的架构的选项。有关更多信息,请参阅 互连 Amazon ECS 服务

  • 您必须使用 Amazon CloudFormation 或 Amazon Command Line Interface 来部署使用以下任一参数的服务:

    • 使用自定义指标跟踪策略

    • 更新服务 – 您无法更新 awsvpc 网络配置和运行状况检查宽限期。

    有关如何使用 Amazon CLI 创建服务的信息,请参阅《Amazon Command Line Interface 参考》中的 create-service

    有关如何使用 Amazon CloudFormation 创建服务的信息,请参阅《Amazon CloudFormation 用户指南》中的 AWS::ECS::Service

快速创建服务

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

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

  • 部署一项任务

  • 使用滚动部署

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

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

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

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

  2. 在导航页面中,选择集群

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

  4. Services(服务)选项卡上,选择 Create(创建)。

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

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

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

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

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

  6. (可选)为了帮助确定您的服务和任务,请展开 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(键),输入键名称。

      • 对于,输入键值。

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

使用定义的参数创建服务

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

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

  2. 确定要从其中启动服务的资源。

    从中启动服务 步骤

    集群

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

    2. Services(服务)选项卡上,选择 Create(创建)。

    启动类型
    1. 任务定义页面上,选择任务定义旁边的选项按钮。

    2. 部署菜单上,选择创建服务

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

    分配方式 步骤

    容量提供程序策略

    1. 计算选项下,选择容量提供程序策略

    2. 选择策略:

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

      • 如果集群没有默认的容量提供程序策略,或者要使用自定义策略,请选择使用自定义添加容量提供程序策略,然后通过指定基准容量提供程序权重来定义自定义容量提供程序策略。

    注意

    要在策略中使用容量提供程序,容量提供程序必须与集群相关联。

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

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

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

  4. 要指定服务的部署方式,请转到部署配置部分,然后选择您的选项。

    1. 对于应用程序类型,仍选择服务

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

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

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

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

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

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

    6. 确定服务的部署类型。展开部署选项,然后指定以下参数。

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

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

      蓝绿部署
      1. 对于部署配置,指定在部署期间 CodeDeploy 如何将生产流量路由到您的替换任务集。

      2. 对于 CodeDeploy 的服务角色,请选择该服务用于向授权的 Amazon Web Services 发出 API 请求的 IAM 角色。

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

      1. 要在任务无法启动时停止部署,请选择 Use the Amazon ECS deployment circuit breaker(使用 Amazon ECS 部署断路器)。

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

      2. 要根据应用程序指标停止部署,请选择使用 CloudWatch 警报。然后,从 CloudWatch 警报名称中选择警报。要创建新报警,请转到 CloudWatch 控制台。

        要让软件在 CloudWatch 警报将部署设置为故障状态时自动将部署回滚到上次完成的部署状态,请选择故障时回滚

  5. (可选)要使用 Service Connect,请选择 Turn on Service Connect(开启 Service Connect),然后指定以下内容:

    1. Service Connect configuration(Service Connect 配置)下,指定客户端模式。

      • 如果您的服务运行的网络客户端应用程序只需要连接到命名空间中的其他服务,请选择仅限客户端

      • 如果您的服务运行网络或 Web 服务应用程序且需要为该服务提供端点并连接到命名空间中的其他服务,请选择 Client and server(客户端和服务器)。

    2. 要使用默认集群命名空间以外的命名空间,对于 Namespace(命名空间),请选择服务命名空间。

    3. (可选)选择 Use log collection(使用日志收集)选项来指定日志配置。对于每个可用的日志驱动程序,都有日志驱动程序选项要指定。默认选项将容器日志发送到 CloudWatch Logs。其他日志驱动程序选项都使用 Amazon FireLens 进行配置。有关更多信息,请参阅 将 Amazon ECS 日志发送到 Amazon 服务或 Amazon Partner

      下面更详细地介绍了每个容器日志目标。

      • Amazon CloudWatch – 将任务配置为将容器日志发送到 CloudWatch Logs。提供了默认的日志驱动程序选项,用于代表您创建 CloudWatch 日志组。要指定其他日志组名称,请更改驱动程序选项值。

      • Amazon Data Firehose – 将任务配置为将容器日志发送到 Firehose。提供了默认的日志驱动程序选项,这些选项将日志发送到 Firehose 传输流。要指定其他传输流名称,请更改驱动程序选项值。

      • Amazon Kinesis Data Streams – 将任务配置为将容器日志发送到 Kinesis Data Streams。提供了默认的日志驱动程序选项,这些选项将日志发送到 Kinesis Data Streams 流。要指定其他传输流名称,请更改驱动程序选项值。

      • Amazon OpenSearch Service – 将任务配置为将容器日志发送到 OpenSearch Service 域。必须提供日志驱动程序选项。

      • Amazon S3 – 将任务配置为将容器日志发送到 Amazon S3 存储桶。提供了默认的日志驱动程序选项,但您必须指定有效的 Amazon S3 存储桶名称。

  6. (可选)要使用服务发现,请选择使用服务发现,然后指定以下内容。

    1. 要使用新的命名空间,请在配置命名空间下选择创建新命名空间,然后提供命名空间名称和描述。要使用现有命名空间,请选择选择现有命名空间,然后选择要使用的命名空间。

    2. 提供服务发现的服务信息,例如服务的名称和描述。

    3. 要让 Amazon ECS 定期执行容器级别的运行状况检查,请选择启用 Amazon ECS 任务运行状况传播

    4. 对于 DNS record type (DNS 记录类型),选择要为服务创建的 DNS 记录类型。Amazon ECS 服务发现仅支持 ASRV 记录,具体取决于您的任务定义指定的网络模式。有关这些记录类型的更多信息,请参阅 Amazon Route 53开发者指南中的支持的 DNS 记录类型

      • 如果您的服务任务指定的任务定义使用 bridgehost 网络模式,则只支持类型 SRV 记录。选择要与记录关联的容器名称和端口组合。

      • 如果您的服务任务指定的任务定义使用 awsvpc 网络模式,请选择 ASRV 记录类型。如果您选择 A,请跳到下一步。如果您选择 SRV,请指定可以在其上找到该服务的端口或与该记录关联的容器名称和端口组合。

      对于 TTL,请输入 DNS 解析器和 Web 浏览器缓存记录集的时长(以秒为单位)。

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

    选择负载均衡器。

    使用此负载均衡器 请执行该操作

    应用程序负载均衡器

    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. 对于注销延迟,请输入负载均衡器将目标状态更改为 UNUSED 的秒数。默认值为 300 秒。

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

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

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

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

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

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

    5. 对于注销延迟,请输入负载均衡器将目标状态更改为 UNUSED 的秒数。默认值为 300 秒。

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

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

  8. (可选)要配置服务自动扩缩,请展开服务自动扩缩,然后指定以下参数。

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

    2. 对于最小任务数,输入供服务自动扩缩使用的任务数的下限。所需计数不会低于此计数。

    3. 对于最大任务数,输入供服务自动扩缩使用的任务数的上限。所需计数不会高于此计数。

    4. 选择策略类型。在扩展策略类型下,选择以下选项之一。

      要使用该策略,请键入... 请执行此操作...

      目标跟踪

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

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

      3. 对于 ECS 服务指标,选择以下指标之一。

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

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

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

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

      5. 对于横向扩展冷却时间,输入一个横向扩展活动(添加任务)结束后,在另一个横向扩展活动启动之前必须经过的时间量(以秒为单位)。

      6. 对于横向缩减冷却时间,输入一个横向缩减活动(删除任务)结束后,在另一个横向缩减活动启动之前必须经过的时间量(以秒为单位)。

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

      8. •(可选)如果您希望扩展策略针对增加的流量进行横向扩展,但不需要在流量减少时横向缩减,请选择关闭横向缩减

      分步扩缩
      1. 对于 Scaling policy type (扩展策略类型) 选择 Step scaling (分步扩展)。

      2. 对于策略名称,请输入策略的名称。

      3. 对于 Alarm name (警报名称),为警报输入一个唯一名称。

      4. 对于 Amazon ECS 服务指标,选择要用于警报的指标。

      5. 对于统计信息,请选择警报统计信息。

      6. 对于周期,选择警报的周期。

      7. 对于警报条件,请选择如何将所选指标与定义的阈值进行比较。

      8. 用于比较指标的阈值启动警报的评估周期中,请输入用于警报的阈值和评估阈值的时长。

      9. 扩展操作下,执行以下操作:

        • 对于操作,选择是否为您的服务增加、删除或设置具体预期数量。

        • 如果您选择增加或删除任务,对于,请输入启动扩展操作后要增加或删除的任务数(或现有任务的百分比)。如果您选择设置了所需的数量,则请输入任务数量。在类型中,选择是整数还是现有所需计数的百分比值。

        • 对于下限上限,输入分步扩展调整的下限和上限。默认情况下,添加策略的下限为警报阈值,上限为正 (+) 无穷。默认情况下,移除策略的上限为警报阈值,下限为负 (-) 无穷。

        • (可选)添加其他扩展选项。选择添加新的扩展操作,然后重复扩展操作步骤。

        • 对于冷却时间,输入等待先前的扩展活动生效的时间(以秒为单位)。对于添加策略,该时间是在横向扩展活动之后,扩展策略阻止横向缩减活动并限制一次可以横向扩展的任务数量的时间。对于移除策略,该时间是横向缩减活动结束后,在另一个横向缩减活动可以开始前经过的时间。

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

    有关更多信息,请参阅 Amazon ECS 如何将任务放置在容器实例上

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

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

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

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

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

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

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

      您最多可输入 5 个策略。

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

      例如,要设置在 T2 实例上放置任务的约束,对于 Expression(表达式),输入 attribute:ecs.instance-type =~ t2.*

      您最多可输入 10 个约束。

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

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

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

      重要

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

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

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

    要让 Amazon ECS 使用集群名称和任务定义标签自动标记全部新启动的任务,选择开启 Amazon ECS 托管标签,然后对于从中传播标签,选择任务定义

    要让 Amazon ECS 使用集群名称和服务标签自动标记全部新启动的任务,选择开启 Amazon ECS 托管标签,然后对于从中传播标签,选择服务

    添加或删除标签。

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

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

      • 对于,输入键值。

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