通过 AWS Fargate 上的 Windows 容器开始使用控制台 - Amazon Elastic Container Service

通过 AWS Fargate 上的 Windows 容器开始使用控制台

Amazon Elastic Container Service (Amazon ECS) 是一项高度可扩展的快速容器管理服务,可让您轻松运行、停止和管理容器。您可以通过在 AWS Fargate 上启动服务或任务,将容器托管在由 Amazon ECS 管理的无服务器基础设施上。有关 Fargate 上的 Amazon ECS 的广泛概述,请参阅 什么是 Amazon Elastic Container Service?

通过在区域(这些区域中的 Amazon ECS 支持 AWS Fargate)中将 Fargate 启动类型用于您的任务,开始在 AWS Fargate 上使用 Amazon ECS。

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

先决条件

在开始之前,请确保完成 设置以使用 Amazon ECS 中的步骤,并且您的 AWS 用户具有 AdministratorAccessAmazon ECS 首次运行向导权限 IAM policy 示例中指定的权限。

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

步骤 1:创建集群

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

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

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

  3. 在导航窗格中,选择 Clusters

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

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

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

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

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

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

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

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

  8. 选择创建

步骤 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", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/fargate-windows-task-definition", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } }, "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 步:创建任务定义 中创建的任务定义。

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

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

  4. 选择 Create(创建)。

步骤 4:查看您的服务

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

注意

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

查看您的服务
  1. Clusters 页面上,选择 windows 集群。

  2. Services(服务)选项卡上,选择 windows_fargate_sample_app 服务。

  3. Service: windows_fargate_sample_app 页面上,选择服务中的任务的任务 ID。

  4. Task(任务)页面的 Configuration(配置)部分,在 Public IP(公有 IP)的下方选择 open address(打开地址)。

    
                        Amazon ECS 示例应用程序的屏幕截图。输出显示“Your application is now running on Amazon ECS”(您的应用程序现在正在 Amazon ECS 上运行)。

第 5 步:清除

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

有些 Amazon ECS 资源(如任务、服务、集群和容器实例)是使用 Amazon ECS 控制台清除的。其他资源(例如 EC2 实例、Elastic Load Balancing和自动扩缩组)必须在 Amazon EC2 控制台中手动清除或通过删除创建它们的 AWS CloudFormation 堆栈来清除。

  1. 在导航窗格中,选择 Clusters

  2. Clusters (集群) 页面上,选择要删除的集群。

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