在上使用 Windows 容器 AWS Fargate - Amazon Elastic Container Service

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

在上使用 Windows 容器 AWS Fargate

在 Amazon AWS Fargate ECS 支持 Fargate 的区域使用 Fargate 启动类型执行任务,开始开启 Amazon ECS。 AWS

要在 AWS Fargate上开始使用 Amazon ECS,请完成以下步骤。

先决条件

在开始之前,请完成中的步骤,设置以使用 Amazon ECS并确保您的 AWS 用户具有 AdministratorAccess IAM 策略示例中指定的权限。

控制台会尝试自动创建任务执行 IAM 角色,这是 Fargate 任务需要的。要确保控制台能够创建该 IAM 角色,必须满足以下条件之一:

重要

使用任务定义创建服务时所选择的安全组,必须为入站流量开放端口 80。将以下入站规则添加到安全组。有关如何创建安全组的信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的向安全组添加规则

  • 类型:HTTP

  • 协议:TCP

  • 端口范围:80

  • 来源:Anywhere(任何位置)(0.0.0.0/0

步骤 1:创建集群

您可以创建名为 windows 并且使用默认 VPC 的新集群。

使用创建集群 AWS Management Console
  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. 从导航栏中,选择要使用的区域。

  3. 在导航窗格中,选择集群

  4. Clusters(集群)页面上,选择 Create cluster(创建集群)。

  5. Cluster configuration(集群配置)下方的 Cluster name(集群名称)中,输入 windows

  6. (可选)要打开 Container Insights,请展开 Monitoring(监控),然后打开 Use Container Insights(使用 Container Insights)。

  7. (可选)为了帮助识别您的集群,请展开 Tags(标签),然后配置您的标签。

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

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

    • 对于,输入键值。

    [删除标签] 选择标签的“键”和“值”右侧的Remove(删除)。

  8. 选择Create(创建)。

步骤 2:注册 Windows 任务定义

您必须先注册任务定义,然后才能在 Amazon ECS 集群中运行 Windows 容器。以下任务定义示例在具有 mcr.microsoft.com/windows/servercore/iis 容器映像的容器实例的端口 8080 上显示一个简单网页。

要将示例任务定义注册到 AWS Management Console
  1. 在导航窗格中,选择 Task definitions(任务定义)。

  2. 选择 Create new task definition(创建新的任务定义)、Create new task definition with JSON(使用 JSON 创建新的任务定义)。

  3. 将以下示例任务定义复制并粘贴到框中,然后选择 Save (保存)

    { "containerDefinitions": [ { "command": ["New-Item -Path C:\\inetpub\\wwwroot\\index.html -Type file -Value '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p>'; C:\\ServiceMonitor.exe w3svc"], "entryPoint": [ "powershell", "-Command" ], "essential": true, "cpu": 2048, "memory": 4096, "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019", "name": "sample_windows_app", "portMappings": [ { "hostPort": 80, "containerPort": 80, "protocol": "tcp" } ] } ], "memory": "4096", "cpu": "2048", "networkMode": "awsvpc", "family": "windows-simple-iis-2019-core", "executionRoleArn": "arn:aws:iam::012345678910:role/ecsTaskExecutionRole", "runtimePlatform": {"operatingSystemFamily": "WINDOWS_SERVER_2019_CORE"}, "requiresCompatibilities": ["FARGATE"] }
  4. 验证您的信息并选择 Create

步骤 3:使用您的任务定义创建服务

在注册任务定义后,您可以使用任务定义在集群中放置任务。以下过程使用任务定义创建一个服务并将一个任务放置在集群中。

使用控制台从任务定义创建服务
  1. 在导航窗格中,选择 Clusters(集群),然后选择您在 步骤 1:创建集群 中创建的集群。

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

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

    1. Task Definitions(任务定义)中,选择您在 步骤 2:注册 Windows 任务定义 中创建的任务定义。

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

    3. 对于 Desired tasks(所需任务),输入 1

  4. 联网下,您可以为创建安全组或者选择现有安全组。确保您使用的安全组具有 先决条件 下列出的入站规则。

  5. 选择 创建

步骤 4:查看您的服务

当您的服务在集群中启动任务后,您可以查看服务并在浏览器中打开 IIS 测试页面以验证容器是否正在运行。

注意

下载容器实例并提取 Windows 容器基础层最多需要花费 15 分钟的时间。

查看您的服务
  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. 在导航窗格中,选择集群

  3. 选择您在其中运行服务的集群。

  4. 服务选项卡中的服务名称下,选择您在 步骤 3:使用您的任务定义创建服务 中创建的服务。

  5. 选择任务选项卡,然后在服务中选择任务。

  6. 在“任务”页面的配置部分,在公有 IP 的下方选择打开地址

第 5 步:清除

完成使用 Amazon ECS 集群后,您应清除与其关联的资源,以避免产生与您未使用的资源相关的费用。

有些 Amazon ECS 资源(如任务、服务、集群和容器实例)是使用 Amazon ECS 控制台清除的。其他资源,例如 Amazon EC2 实例、Elastic Load Balancing 负载均衡器和 Auto Scaling 组,必须在 Amazon EC2 控制台中手动清理或删除创建它们的 AWS CloudFormation 堆栈。

  1. 在导航窗格中,选择集群

  2. 集群页面上,选择您为本教程而创建的集群。

  3. 选择服务选项卡。

  4. 选择服务,然后选择删除

  5. 在确认提示符处,输入 delete,然后选择 Delete(删除)。

    等待直至系统删除服务。

  6. 选择 Delete Cluster (删除集群)。在确认提示符中,输入 delete cluster-name,然后选择 Delete(删除)。删除该集群将清除使用该集群创建的关联资源,包括自动扩缩组、VPC 或负载均衡器。