了解如何创建 Fargate 启动类型的 Amazon ECS Windows 任务
通过在区域(这些区域中的 Amazon ECS 支持 AWS Fargate)中将 Fargate 启动类型用于您的任务,开始在 AWS Fargate 上使用 Amazon ECS。
要在 AWS Fargate 上开始使用 Amazon ECS,请完成以下步骤。
先决条件
在开始之前,请完成 设置以使用 Amazon ECS 中的步骤,并且您的 AWS 用户具有 AdministratorAccess
IAM policy 示例中指定的权限。
控制台会尝试自动创建任务执行 IAM 角色,这是 Fargate 任务需要的。要确保控制台能够创建该 IAM 角色,必须满足以下条件之一:
-
您的用户拥有管理员权限。有关更多信息,请参阅 设置以使用 Amazon ECS。
-
您的用户拥有创建服务角色的 IAM 权限。有关更多信息,请参阅创建角色以向 AWS 服务委派权限。
-
拥有管理员权限的用户手动创建了任务执行角色,使之对要所用的账户可用。有关更多信息,请参阅 Amazon ECS 任务执行 IAM 角色。
重要
使用任务定义创建服务时所选择的安全组,必须为入站流量开放端口 80。将以下入站规则添加到安全组。有关如何创建安全组的信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的为 Amazon EC2 实例创建安全组。
-
类型:HTTP
协议:TCP
-
端口范围:80
-
来源:Anywhere(任何位置)(
0.0.0.0/0
)
步骤 1:创建集群
您可以创建名为 windows 并且使用默认 VPC 的新集群。
使用 AWS Management Console创建集群
-
从导航栏中,选择要使用的区域。
-
在导航窗格中,选择集群。
-
在 Clusters(集群)页面上,选择 Create cluster(创建集群)。
-
在 Cluster configuration(集群配置)下方的 Cluster name(集群名称)中,输入 windows。
-
(可选)要打开 Container Insights,请展开 Monitoring(监控),然后打开 Use Container Insights(使用 Container Insights)。
-
(可选)为了帮助识别您的集群,请展开 Tags(标签),然后配置您的标签。
[添加标签] 选择 Add tag(添加标签),然后执行以下操作:
-
对于 Key(键),输入键名称。
-
对于值,输入键值。
[删除标签] 选择标签的“键”和“值”右侧的Remove(删除)。
-
-
选择Create(创建)。
步骤 2:注册 Windows 任务定义
您必须先注册任务定义,然后才能在 Amazon ECS 集群中运行 Windows 容器。以下任务定义示例在具有 mcr.microsoft.com/windows/servercore/iis
容器映像的容器实例的端口 8080 上显示一个简单网页。
使用 AWS Management Console注册示例任务定义
-
在导航窗格中,选择 Task definitions(任务定义)。
-
选择 Create new task definition(创建新的任务定义)、Create new task definition with JSON(使用 JSON 创建新的任务定义)。
-
将以下示例任务定义复制并粘贴到框中,然后选择 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"] }
-
验证您的信息并选择 Create。
步骤 3:使用您的任务定义创建服务
在注册任务定义后,您可以使用任务定义在集群中放置任务。以下过程使用任务定义创建一个服务并将一个任务放置在集群中。
使用控制台从任务定义创建服务
-
在导航窗格中,选择 Clusters(集群),然后选择您在 步骤 1:创建集群 中创建的集群。
-
在 Services(服务)选项卡上,选择 Create(创建)。
-
在 Deployment configuration(部署配置)下,指定应用程序的部署方式。
-
在 Task Definitions(任务定义)中,选择您在 步骤 2:注册 Windows 任务定义 中创建的任务定义。
-
对于 Service name(服务名称),为您的服务输入一个名称。
-
对于 Desired tasks(所需任务),输入 1。
-
-
在联网下,您可以为创建安全组或者选择现有安全组。确保您使用的安全组具有 先决条件 下列出的入站规则。
-
选择创建。
步骤 4:查看您的服务
当您的服务在集群中启动任务后,您可以查看服务并在浏览器中打开 IIS 测试页面以验证容器是否正在运行。
注意
下载容器实例并提取 Windows 容器基础层最多需要花费 15 分钟的时间。
查看您的服务
-
在导航窗格中,选择集群。
-
选择您在其中运行服务的集群。
-
在服务选项卡中的服务名称下,选择您在 步骤 3:使用您的任务定义创建服务 中创建的服务。
-
选择任务选项卡,然后在服务中选择任务。
-
在“任务”页面的配置部分,在公有 IP 的下方选择打开地址。
第 5 步:清除
完成使用 Amazon ECS 集群后,您应清除与其关联的资源,以避免产生与您未使用的资源相关的费用。
有些 Amazon ECS 资源(如任务、服务、集群和容器实例)是使用 Amazon ECS 控制台清除的。其他资源(例如 EC2 实例、Elastic Load Balancing和自动扩缩组)必须在 Amazon EC2 控制台中手动清除或通过删除创建它们的 AWS CloudFormation 堆栈来清除。
-
在导航窗格中,选择集群。
-
在集群页面上,选择您为本教程而创建的集群。
-
选择服务选项卡。
-
选择服务,然后选择删除。
-
在确认提示符处,输入 delete,然后选择 Delete(删除)。
等待直至系统删除服务。
-
选择 Delete Cluster (删除集群)。在确认提示符中,输入 delete
cluster-name
,然后选择 Delete(删除)。删除该集群将清除使用该集群创建的关联资源,包括自动扩缩组、VPC 或负载均衡器。