Amazon ECS 开发人员工具概述 - Amazon Elastic Container Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

Amazon ECS 开发人员工具概述

无论您是大型企业中的一部分还是初创公司,Amazon ECS 都能提供多种工具,帮助您快速启动和运行容器,无论您如何专业技能水平如何。您可以通过以下方式使用 Amazon ECS。

  • 了解、开发、管理和可视化使用 AWS 管理控制台 的容器应用程序和服务。

  • 通过 Amazon ECS、AWS Command Line Interface 或 ECS API 通过编程或脚本自动部署来对 AWS 软件开发工具包 资源执行特定操作。

  • 使用 AWS 定义和管理环境中的所有 AWS CloudFormation 资源以及自动部署。

  • 使用完整的 AWS Copilot CLI 端到端开发人员工作流程来创建、发布和操作符合基础设施的 AWS 最佳实践的容器应用程序。

  • 使用您的首选编程语言,将基础设施或架构定义为使用AWS CDK编写的代码。

  • 通过使用容器的 Amazon EC2 集成可移植性和工具生态系统,将本地和/或 AWS App2Container 实例上托管的应用程序容器化。

  • 使用 Amazon ECS 将 Docker Compose 应用程序部署到 Amazon ECS CLI 或使用在 ECS 中运行的容器测试本地容器。

  • 在 Docker Desktop 中使用 Docker Desktop 与 Amazon ECS 的集成 从 Amazon ECS 启动容器。

AWS 管理控制台

是一个用于管理 AWS 管理控制台 资源的基于浏览器的界面。Amazon ECS控制台提供了该服务的直观概述,使您可以轻松探索 Amazon ECS 功能和函数,而无需使用其他工具。许多相关教程和演练提供了指导您完成 控制台的使用。

有关指导您使用控制台的教程,请参阅 开始使用 Amazon ECS.

在开始时,许多客户更喜欢使用控制台,因为它提供有关他们是否成功采取的操作的即时视觉反馈。熟悉 AWS 的 AWS 管理控制台 客户可轻松管理相关资源(如负载均衡器和 Amazon EC2 实例)。

从 AWS 管理控制台 开始。

AWS Command Line Interface

(AWS Command Line Interface) 是一个可用于管理 AWS CLI 服务的统一工具。AWS仅利用这个工具,您可以控制多个 AWS 服务并通过脚本自动执行这些服务。中的 Amazon ECS 命令是 AWS CLI API 的反映。Amazon ECS

AWS 提供两组命令行工具:AWS Command Line Interface (AWS CLI) 和 适用于 Windows PowerShell 的 AWS 工具. 有关更多信息,请参阅 AWS Command Line Interface 用户指南适用于 Windows PowerShell 的 AWS 工具 用户指南.

适用于更希望并用于使用命令行工具编写脚本和进行交互的客户,并且确切地了解他们希望对其 AWS CLI 资源执行哪些操作。Amazon ECS对于希望熟悉 AWS CLI API 的客户,Amazon ECS 也很有帮助。客户可以使用 AWS CLI 来直接从命令行界面对 Amazon ECS 资源执行大量操作,包括创建、读取、更新和删除操作。

如果您确实或者希望熟悉 AWS CLI API 和相应的 CLI 命令,并且希望编写自动化脚本并对 Amazon ECS 资源执行特定操作,请使用 Amazon ECS。

AWS CloudFormation

适用于 的 AWS CloudFormationTerraformAmazon ECS 都为您提供了将基础设施定义为代码的强大方式。您可以随时跟踪模板或 AWS CloudFormation 堆栈的哪个版本正在运行,并在需要时回滚到以前的版本。您可以以相同的自动化方式执行基础设施和应用程序部署。这种灵活性和自动化是 AWS CloudFormation 和 Terraform 两种流行的格式,用于将工作负载从持续交付管道部署到 Amazon ECS。

有关 AWS CloudFormation 的更多信息,请参阅使用 Amazon ECS 创建 AWS CloudFormation 资源

如果您希望在 AWS CloudFormation 上自动执行基础设施部署和应用程序,并明确定义和管理环境中的所有 Amazon ECS 资源,请使用 AWS 或 Terraform。

AWS Copilot CLI

CLI(命令行界面)是一个全面的工具,使客户能够直接从源代码在 AWS Copilot 上部署和操作容器和环境中打包的应用程序。Amazon ECS使用 AWS Copilot 时,您可以在不了解 AWS 和 Amazon ECS 元素(如 应用程序负载均衡器、公有子网、任务、服务和集群)的情况下执行这些操作。AWS Copilot 会代表您从有提示的服务模式(如负载均衡 Web 服务或后端服务)创建 AWS 资源,为容器化应用程序提供即时生产环境。您可以通过跨多个环境、账户或区域的 AWS CodePipeline 管道进行部署,所有这些环境、账户或区域都可以在 CLI 中进行管理。通过使用 AWS Copilot,您还可以执行操作符任务,例如查看日志和服务运行状况。AWS Copilot 是一个一体式工具,可帮助您更轻松地管理云资源,以便您能够专注于开发和管理应用程序。

有关更多信息,请参阅 使用 AWS Copilot 命令行界面.

使用 AWS Copilot 完整的端到端开发人员工作流程来创建、发布和操作符合 AWS 基础设施最佳实践的容器应用程序。

AWS CDK

是一个开源的软件开发框架,允许您使用熟悉的编程语言对云应用程序资源进行建模和预置。AWS 云开发工具包 (AWS CDK) 通过 AWS CDK 以安全、可重复的方式预置您的资源。AWS CloudFormation使用 CDK,客户可以使用他们用于构建应用程序的相同语言生成行数较少的环境。Amazon ECS 在 CDK 中提供了一个名为 ecs-patterns 的模块,可创建常用的架构。可用的模式为 ApplicationLoadBalancedFargateService()。此模式创建一个集群、任务定义和其他资源,以在 Amazon ECS 上运行负载均衡的 AWS Fargate 服务。

有关更多信息,请参阅 中的Amazon ECS使用 AWS Fargate 在 AWS CDK 服务上创建 AWS 云开发工具包 (AWS CDK) 开发人员指南

如果要在首选编程语言中将基础设施或架构定义为代码,请使用 AWS CDK。例如,您可以使用编写应用程序时使用的同一语言。

AWS App2Container

有时,企业客户可能已经有本地和/或 EC2 实例上托管的应用程序。他们对 Amazon ECS 上容器的可移植性和工具生态系统感兴趣,因此需要先容器化。AWSApp2Container 使您能够实现这一目的。App2Container (A2C) 是一种命令行工具,用于将 .NET 和 Java 应用程序个性化到容器化应用程序中。A2C 分析和构建在虚拟机、本地或云中运行的所有应用程序的清单。选择要容器化的应用程序后,A2C 会将应用程序构件和标识的依赖项打包到容器映像中。然后,它配置网络端口并生成 Amazon ECS 任务。最后,它创建一个 CloudFormation 模板,您可以根据需要部署或修改该模板。

有关更多信息,请参阅 AWS App2Container 入门

如果您拥有本地和/或 Amazon EC2 实例上托管的应用程序,请使用 App2Container。

Amazon ECS CLI

利用 Amazon ECS CLI,您可以使用 Docker Compose 文件格式在 Amazon ECS 和 AWS Fargate 上运行应用程序。您可以快速预置资源,使用 Amazon ECR 推送和拉取映像,以及监控在 或 Amazon ECS 上运行的应用程序。AWS Fargate您还可以在 CLI 中测试本地运行的容器以及云中的容器。

有关更多信息,请参阅 使用 Amazon ECS 命令行界面.

如果您有 Compose 应用程序并希望将其部署到 Amazon ECS,请使用 ECS CLI,或者使用在云中的 Amazon ECS 中运行的容器测试本地容器。

Docker Desktop 与 Amazon ECS 的集成

AWS 和 Docker 已协作,提供简化的开发人员体验,让您能够使用 Docker 工具直接在 Amazon ECS 上部署和管理容器。您现在可以使用 Docker Desktop 和 Docker Compose 在本地构建并测试容器,然后将其部署到 Amazon ECS 上的 Fargate。要开始使用 Amazon ECS 和 Docker 集成,请下载 Docker Desktop 并可以选择注册 Docker ID。有关更多信息,请参阅 Docker DesktopDocker ID 注册

容器的初学者通常会使用 Docker CLI 和 Docker Compose 等 Docker 工具开始学习容器。这使得使用 Docker Compose CLI 插件 for Amazon ECS 成为在本地测试后在 AWS 上运行容器的自然下一步。Docker 提供了有关在 Amazon ECS 上部署容器的演练。有关更多信息,请参阅在 Amazon ECS 上部署 Docker 容器

您可以利用其他 Amazon ECS 功能(如服务发现、负载均衡和其他 AWS 资源),以便与 Docker Desktop 结合使用来使用应用程序。

您还可以直接从 GitHub 下载适用于 Amazon ECS 的 Docker Compose CLI 插件。有关更多信息,请参阅 GitHub 上的适用于 Amazon ECS 的 Docker Compose CLI 插件

AWS 软件开发工具包

您还可以使用 AWS 开发工具包从各种编程语言管理 Amazon ECS 资源和操作。开发工具包提供一些模块以帮助处理任务,包括以下列表中的任务。

  • 使用密码对服务请求签名

  • 重试请求

  • 处理错误响应

有关可用开发工具包的更多信息,请参阅适用于 Amazon Web Services 的工具

Summary

通过很多可供选择的选项,您可以选择最适合您的选项。请考虑以下选项。

  • 如果您面向视觉对象,则可以使用 AWS 管理控制台 直观地创建和操作容器。

  • 如果您更喜欢 CLI,请考虑使用 AWS Copilot 或 AWS CLI。或者,如果您更喜欢 Docker 生态系统,则可在 Docker CLI 中利用 ECS 的功能以部署到 AWS。部署这些资源后,您可以继续通过 CLI 管理它们,也可以通过 控制台以可视化方式管理它们。

  • 如果您是开发人员,则可以使用 AWS CDK 定义您的基础设施,并使用与应用程序相同的语言。您可以使用 CDK 和 AWS Copilot 导出到 CloudFormation 模板,其中您可以更改粒度设置、添加其他 AWS 资源以及通过脚本或 CI/CD 管道(例如 AWS CodePipeline)自动执行部署。

、开发工具包或 ECS API 是用于自动对 ECS 资源执行操作的有用工具,使得它们非常适合部署。AWS CLI要使用 AWS CloudFormation 部署应用程序,您可以使用各种编程语言或简单文本文件来建模和预置应用程序所需的所有资源。然后,您可以采用自动化且安全的方式跨多个区域和账户部署应用程序。例如,您可以将 ECS 集群、服务、任务定义或容量提供程序定义为文件中的代码,并通过 AWS CLI CloudFormation 命令进行部署。

要执行操作任务,您可以使用 AWS CLI、开发工具包或 ECS API 以编程方式查看和管理资源。或 describe-tasks 等命令显示了最新元数据或所有资源的列表。list-services与部署类似,客户可以编写包含 update-service 等命令的自动化,以对意外停止的资源检测提供纠正措施。您还可以使用 AWS Copilot 操作您的服务。或 copilot svc logs 等命令可提供有关每个微服务的详细信息,或作为整体提供您的应用程序的详细信息。copilot app show

客户可以使用本文档中提到的任何可用工具,并将它们以各种组合方式使用。ECS 工具提供了从特定工具发展到使用其他满足您不断变化的需求的工具的不同路径。例如,您可以根据需要选择对资源进行更精细的控制或更自动化。ECS 还为各种需要和专业技能水平提供了广泛的工具。