使用 Amazon 创建 Amazon ECS 任务定义并在EC2实例上挂载文件系统 EFS - AWS Prescriptive Guidance

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

使用 Amazon 创建 Amazon ECS 任务定义并在EC2实例上挂载文件系统 EFS

由 Durga Prasad Cheepuri 创作 () AWS

环境:PoC 或试点

技术:容器和微服务; CloudNative;管理和治理;存储和备份;Web 和移动应用程序

AWS服务:亚马逊ECS;亚马逊 EFS

Summary

此模式提供了创建亚马逊弹性容器服务 (AmazonECS) 任务定义的代码示例和步骤,该任务定义在亚马逊云服务 (EC2) 云中的亚马逊弹性计算云 (AmazonAWS) 实例上运行,同时使用亚马逊弹性文件系统 (AmazonEFS) 在这些EC2实例上挂载文件系统。使用 Amazon 的 Amazon ECS 任务EFS会自动挂载您在任务定义中指定的文件系统,并使这些文件系统可供该AWS区域所有可用区的任务容器使用。

为了满足您的永久存储和共享存储需求,您可以EFS同时使用 Amazon ECS 和 Amazon。例如,您可以使用 Amazon EFS 存储应用程序的永久用户数据和应用程序数据,活动容器和备用ECS容器对在不同的可用区中运行,以实现高可用性。您还可以使用 Amazon EFS 存储共享数据,ECS容器和分布式任务工作负载可以并行访问这些数据。

要将 Amazon EFS 与 Amazon 配合使用ECS,您可以在任务定义中添加一个或多个卷定义。卷定义包括亚马逊EFS文件系统 ID、接入点 ID 以及传输过程中AWS身份和访问管理 (IAM) 授权或传输层安全 (TLS) 加密的配置。您可以在任务定义中使用容器定义来指定容器运行时挂载的任务定义卷。当使用 Amazon EFS 文件系统的任务运行时,Amazon 会ECS确保文件系统已挂载并可供需要访问的容器使用。

先决条件和限制

先决条件

限制

  • 1.35.0 之前的亚马逊ECS容器代理版本不支持使用EC2启动类型的任务的亚马逊EFS文件系统。

架构

下图显示了一个应用程序的示例,该应用程序使用 Amazon ECS 创建任务定义并在ECS容器中的EC2实例上挂载 Amazon EFS 文件系统。

AWS Cloud architecture showing ECS task definition, ECS service, and EFS file system interaction.

图表显示了以下工作流:

  1. 创建 Amazon EFS 文件系统。

  2. 创建带有容器的任务定义。

  3. 配置容器实例以挂载 Amazon EFS 文件系统。任务定义引用卷挂载,因此容器实例可以使用 Amazon EFS 文件系统。ECS任务可以访问同一 Amazon EFS 文件系统,无论这些任务是在哪个容器实例上创建的。

  4. 使用任务定义的三个实例创建一个 Amazon ECS 服务。

技术堆栈

  • Amazon EC2

  • Amazon ECS

  • Amazon EFS

工具

  • 亚马逊 EC2 — 亚马逊弹性计算云 (AmazonEC2) 在AWS云中提供可扩展的计算容量。您可以根据需要使用 Amazon EC2 启动任意数量或数量的虚拟服务器,也可以进行横向扩展或扩展。

  • Amaz on ECS — Amazon 弹性容器服务 (AmazonECS) 是一项高度可扩展、快速的容器管理服务,用于在集群上运行、停止和管理容器。您可以在由 Far AWS gate 管理的无服务器基础架构上运行任务和服务。或者,为了更好地控制您的基础架构,您可以在自己管理的EC2实例集群上运行任务和服务。

  • 亚马逊 EFS — Amazon Elastic File System(亚马逊EFS)提供了一个简单、可扩展、完全托管的弹性NFS文件系统,用于AWS云服务和本地资源。

  • AWSCLI— AWS 命令行界面 (AWSCLI) 是一个开源工具,用于通过命令行外壳中的命令与AWS服务进行交互。只需最少的配置,您就可以在AWSCLI命令提示符下运行命令,实现与基于浏览器的AWS管理控制台提供的功能等同的功能。

操作说明

任务描述所需技能
使用AWS管理控制台创建 Amazon EFS 文件系统。
  1. 创建 Amazon EFS 文件系统并选择VPC包含您的容器的。注意:如果您使用其他连接VPC,VPC请设置对等连接

  2. 请记下文件系统 ID 值。

AWS DevOps
任务描述所需技能
使用 Amazon EFS 文件系统创建任务定义。

使用全新 Amazon ECS 控制台或具有以下配置的经典 Amazon ECS 控制台创建任务定义:

  • 如果您使用新的控制台,请为应用程序环境选择 Amazon EC2 实例。如果您使用经典控制台,请选择EC2作为启动类型。

  • 添加卷。输入卷的名称,选择EFS卷类型,然后选择您之前记下的文件系统 ID。对于根目录,选择要托管在 Amazon ECS 容器主机上的 Amazon EFS 文件系统路径。

AWS DevOps
使用创建任务定义AWSCLI。
  1. 要为任务定义创建带有输入参数占位符的JSON模板,请运行以下命令:

    aws ecs register-task-definition --generate-cli-skeleton
  2. 要使用JSON模板创建任务定义,请运行以下命令:

    aws ecs register-task-definition --cli-input-json file://<path_to_your_json_file>
  3. 根据task_definition_parameters.json文件在JSON模板中输入输入参数(附后)。注意:有关输入参数的更多信息,请参阅任务定义参数(Amazon ECS 文档)和 register-task-definition(AWSCLI命令参考)。

AWS DevOps

相关资源

附件

要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip