Crea una definición de ECS tareas de Amazon y monta un sistema de archivos en EC2 las instancias con Amazon EFS - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Crea una definición de ECS tareas de Amazon y monta un sistema de archivos en EC2 las instancias con Amazon EFS

Creado por Durga Prasad Cheepuri () AWS

Entorno: PoC o piloto

Tecnologías: contenedores y microservicios; administración y gobierno CloudNative; almacenamiento y respaldo; aplicaciones web y móviles

AWSservicios: AmazonECS; Amazon EFS

Resumen

Este patrón proporciona ejemplos de código y pasos para crear una definición de tarea de Amazon Elastic Container Service (AmazonECS) que se ejecute en instancias de Amazon Elastic Compute Cloud (AmazonEC2) en la nube de Amazon Web Services (AWS), mientras se utiliza Amazon Elastic File System (AmazonEFS) para montar un sistema de archivos en esas EC2 instancias. ECSLas tareas de Amazon que utilizan Amazon montan EFS automáticamente los sistemas de archivos que especifique en la definición de la tarea y los ponen a disposición de los contenedores de la tarea en todas las zonas de disponibilidad de una AWS región.

Para cumplir con tus requisitos de almacenamiento persistente y almacenamiento compartido, puedes usar Amazon ECS y Amazon EFS juntos. Por ejemplo, puede usar Amazon EFS para almacenar datos persistentes de usuarios y datos de aplicaciones para sus aplicaciones con pares de ECS contenedores activos y en espera que se ejecuten en diferentes zonas de disponibilidad para una alta disponibilidad. También puedes usar Amazon EFS para almacenar datos compartidos a los que se puede acceder en paralelo mediante ECS contenedores y cargas de trabajo distribuidas.

Para usar Amazon EFS con AmazonECS, puedes añadir una o más definiciones de volumen a una definición de tarea. Una definición de volumen incluye un ID del sistema de EFS archivos de Amazon, un ID de punto de acceso y una configuración para la autorización de AWS Identity and Access Management (IAM) o el cifrado Transport Layer Security (TLS) en tránsito. Puede usar definiciones de contenedores dentro de las definiciones de tareas para especificar los volúmenes de definición de tareas que se montan cuando se ejecuta el contenedor. Cuando se ejecuta una tarea que utiliza un sistema de EFS archivos de Amazon, Amazon se ECS asegura de que el sistema de archivos esté montado y disponible para los contenedores que necesitan acceder a él.

Requisitos previos y limitaciones

Requisitos previos 

Limitaciones

  • Las versiones ECS del agente contenedor de Amazon anteriores a la 1.35.0 no admiten los sistemas de EFS archivos de Amazon para las tareas que utilizan el tipo de EC2 lanzamiento.

Arquitectura

En el siguiente diagrama se muestra un ejemplo de una aplicación que utiliza Amazon ECS para crear una definición de tarea y montar un sistema de EFS archivos de Amazon en EC2 instancias de ECS contenedores.

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

En el diagrama, se muestra el siguiente flujo de trabajo:

  1. Crea un sistema de EFS archivos de Amazon.

  2. Cree una definición de tarea con un contenedor.

  3. Configure las instancias de contenedor para montar el sistema de EFS archivos de Amazon. La definición de la tarea hace referencia a los montajes de volumen, por lo que la instancia contenedora puede utilizar el sistema de EFS archivos de Amazon. ECSlas tareas tienen acceso al mismo sistema de EFS archivos de Amazon, independientemente de la instancia de contenedor en la que se creen esas tareas.

  4. Crea un ECS servicio de Amazon con tres instancias de la definición de la tarea.

Pila de tecnología

  • Amazon EC2

  • Amazon ECS

  • Amazon EFS

Herramientas

  • Amazon EC2: Amazon Elastic Compute Cloud (AmazonEC2) proporciona capacidad informática escalable en la AWS nube. Puede utilizar Amazon EC2 para lanzar tantos o tan pocos servidores virtuales como necesite, y puede ampliarlos de forma horizontal o horizontal.

  • Amazon ECS: Amazon Elastic Container Service (AmazonECS) es un servicio de administración de contenedores rápido y altamente escalable para ejecutar, detener y administrar contenedores en un clúster. Puede ejecutar sus tareas y servicios en una infraestructura sin servidor gestionada por AWS Fargate. Como alternativa, para tener más control sobre su infraestructura, puede ejecutar sus tareas y servicios en un clúster de EC2 instancias que administre.

  • Amazon EFS: Amazon Elastic File System (AmazonEFS) proporciona un sistema de NFS archivos elástico simple, escalable y totalmente gestionado para su uso con servicios AWS en la nube y recursos locales.

  • AWSCLI— La interfaz de línea de AWS comandos (AWSCLI) es una herramienta de código abierto para interactuar con los AWS servicios mediante comandos en el shell de línea de comandos. Con una configuración mínima, puede ejecutar AWS CLI comandos que implementen una funcionalidad equivalente a la proporcionada por la consola de AWS administración basada en un navegador desde una línea de comandos.

Epics

TareaDescripciónHabilidades requeridas
Cree un sistema de EFS archivos de Amazon mediante la consola AWS de administración.
  1. Crea un sistema de EFS archivos de Amazon y elige el VPC que incluya tus contenedores. Nota: Si utilizas una conexión diferenteVPC, configura una conexión de VPC interconexión.

  2. Anote el ID del sistema de archivos.

AWS DevOps
TareaDescripciónHabilidades requeridas
Crea una definición de tarea mediante un sistema de EFS archivos de Amazon.

Cree una definición de tareas mediante la nueva ECS consola de Amazon o la ECSconsola Amazon clásica con las siguientes configuraciones:

  • Si utilizas la nueva consola, elige Amazon EC2 instances for App Environment. Si usa la consola clásica, elija EC2el tipo de lanzamiento.

  • Añada un volumen. Introduzca un nombre para el volumen, elija EFSel tipo de volumen y, a continuación, elija el ID del sistema de archivos que indicó anteriormente. Para el directorio raíz, elige la ruta del sistema de EFS archivos de Amazon que deseas alojar en el host de ECS contenedores de Amazon.

AWS DevOps
Cree una definición de tarea utilizando AWSCLI.
  1. Para crear una JSON plantilla con marcadores de posición de parámetros de entrada para la definición de la tarea, ejecute el siguiente comando:

    aws ecs register-task-definition --generate-cli-skeleton
  2. Para crear la definición de tarea con la JSON plantilla, ejecute el siguiente comando:

    aws ecs register-task-definition --cli-input-json file://<path_to_your_json_file>
  3. Introduzca los parámetros de entrada en la JSON plantilla en función del task_definition_parameters.json archivo (adjunto). Nota: Para obtener más información sobre los parámetros de entrada, consulte Parámetros de definición de tareas (ECSdocumentación de Amazon) y register-task-definition(Referencia de AWS CLI comandos).

AWS DevOps

Recursos relacionados

Conexiones

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip