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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用控制台创建服务

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

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

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

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

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

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

  • 默认的任务放置策略在可用区之间均匀分配任务。

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

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

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

    • 如果您的集群没有定义默认容量提供者策略,但您已将 Fargate 容量提供程序添加到集群,则会选择使用容量提供程序的自定义FARGATE容量提供者策略。

    • 如果您的集群没有定义默认容量提供者策略,但您已向集群中添加了一个或多个 Auto Scaling 组容量提供程序,则会选择 “使用自定义(高级)” 选项,您需要手动定义策略。

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

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

    有关更多信息,请参阅 部署断路器

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

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

    • CodeDeployDefault.ecsLinear10 PercentEvery 1Minutes:在所有流量转移之前,每分钟移动 10% 的流量。

    • CodeDeployDefault.ecsLinear10 PercentEvery 3Minutes:每 3 分钟移动 10% 的流量,直到所有流量都转移完毕。

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

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

  • 如果您需要一个应用程序来连接到在 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(使用集群原定设置)。

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

    注意

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

    启动类型
    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,选择服务用于向授权发出 API 请求的 IAM 角色 Amazon Web Services。

    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(使用日志收集)选项来指定日志配置。对于每个可用的日志驱动程序,都有日志驱动程序选项要指定。默认选项将容器日志发送到 Lo CloudWatch gs。其他日志驱动程序选项是使用配置的 Amazon FireLens。有关更多信息,请参阅 使用自定义日志路由

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

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

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

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

      • Amazon OpenSearch 服务-将任务配置为将容器日志发送到 OpenSearch 服务域。必须提供日志驱动程序选项。有关更多信息,请参阅 将日志转发到亚马逊 OpenSearch 服务域

      • 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. (可选)要配置服务 Auto Scalin g,请展开服务自动缩放,然后指定以下参数。

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

    2. 在 “最小任务数” 中,输入要使用的 service auto Scaling 任务数的下限。所需计数不会低于此计数。

    3. 在 “最大任务数” 中,输入要使用的 service auto Scaling 的任务数上限。所需计数不会高于此计数。

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

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

      目标跟踪

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

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

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

        • ECS ServiceAverage CPU利用率-服务的平均CPU利用率。

        • ECS ServiceAverageMemoryUtilization-服务的平均内存利用率。

        • ALB RequestCountPerTarget — A pplication Load Balancer 目标组中每个目标完成的请求数。

      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 如何在容器实例上放置任务

    • 可用区平衡分布-跨可用区和可用区中的容器实例分配任务。

    • 可用区平衡 BinPack-在可用内存最少的可用区域和容器实例之间分配任务。

    • BinPack— 根据最少可用的 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 (删除标签)