Amazon ECS 开发人员工具概述 - Amazon Elastic Container Service

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

Amazon ECS 开发人员工具概述

无论是大型企业还是初创企业,无论专业知识水平如何,Amazon ECS 都提供多种工具,可帮助您快速启动和运行容器。您可以通过以下方式使用 Amazon ECS:

  • 使用 AWS Management Console 了解、开发、管理和可视化容器应用程序和服务。

  • 通过编程或使用 AWS Command Line InterfaceAWS 开发工具包 或 ECS API,用自动化部署对 Amazon ECS 资源执行特定操作。

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

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

  • 使用您首选的编程语言,将基础结构或体系结构定义为带有 AWS CDK 的代码。

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

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

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

AWS Management Console

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

有关指导您使用控制台的教程,请参阅 Amazon ECS 入门

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

从 AWS Management Console 开始

AWS Command Line Interface

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

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

AWS CLI 适用于喜欢并习惯于使用命令行工具编写脚本并与之交互的客户,他们确切知道希望在其 Amazon ECS资源 上执行哪些操作。AWS CLI 对于希望熟悉Amazon ECS API的客户也很有帮助。客户可以使用 AWS CLI 直接从命令行界面对 Amazon ECS 资源执行多项操作,包括创建、读取、更新和删除操作。

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

AWS CloudFormation

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

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

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

AWS Copilot CLI

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

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

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

AWS CDK

AWS Cloud Development Kit (AWS CDK) 是一个开源软件开发框架,使您可以使用熟悉的编程语言对云应用程序资源进行建模和预置。通过 AWS CloudFormation,AWS CDK 能够以安全、可重复的方式预置资源。使用 CDK,客户可以使用与构建应用程序时使用的语言相同的语言,使用更少的代码行生成环境。Amazon ECS 在 CDK 中提供了一个名为 ecs-patterns 的模块,创建了通用的体系结构。一个可用的模式是 ApplicationLoadBalancedFargateService()。此模式创建集群、任务定义和其他资源,以便在 AWS Fargate 上运行负载平衡的 Amazon ECS 服务。

有关更多信息,请参见 使用 AWS CDK 的 Amazon ECS 入门

如果要将基础结构或体系结构定义为首选编程语言中的代码,请使用 AWS CDK。例如,您可以使用与编写您的应用程序相同的语言。

AWS App2Container

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

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

如果您的应用程序托管在本地部署或 Amazon EC2 实例上(或两者),请使用 App2Container。

Amazon ECS CLI

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

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

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

与 Amazon ECS 集成的 Docker Desktop

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

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

您可以利用其他 Amazon ECS 功能,例如服务发现、负载平衡和其他 AWS 资源与 Docker Desktop 配合使用的应用程序。

你也可以直接从中下载适用于亚马逊 ECS 的 Docker Compose CLI 插件。 GitHub有关更多信息,请参阅上的 Amazon ECS 的 Docker Compose CLI 插件。 GitHub

AWS 开发工具包

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

  • 对服务请求进行加密签名

  • 重试请求

  • 处理错误响应

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

总结

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

  • 如果您是以视觉为导向的,则可以使用 AWS Management Console 创建并操作容器。

  • 如果您更喜欢 CLI,请考虑使用 AWS Copilot 或 AWS CLI。如果您更喜欢 Docker 生态系统,您可以利用 Docker CLI 中的ECS功能部署到 AWS。部署这些资源后,您可以继续通过 CLI 或控制台进行直观管理。

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

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

要执行操作任务,您可以使用 AWS CLI、软件开发工具包或 ECS API。describe-taskslist-services 等命令显示最新的元数据或所有资源的列表。与部署类似,客户可以编写一个自动化,其中包含 update-service,以便在检测到意外停止的资源时提供纠正措施。您也可以使用 AWS Copilot 操作您的服务。copilot svc logscopilot app show 等命令提供有关每个微服务或整个应用程序的详细信息。

客户可以使用本文档中提到的任何可用刀具,并以各种组合方式使用。ECS工具提供了多种途径,可以从某些工具升级到使用其他适合您不断变化需求的工具。例如,您可以根据需要选择对资源进行更精细的控制或更多的自动化。ECS还提供多种工具,满足各种需求和专业水平。