Crie uma definição de tarefa do Amazon ECS e monte um sistema de arquivos em instâncias do EC2 usando o Amazon EFS - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Crie uma definição de tarefa do Amazon ECS e monte um sistema de arquivos em instâncias do EC2 usando o Amazon EFS

Criado por Durga Prasad Cheepuri (AWS)

Ambiente: PoC ou piloto

Tecnologias: contêineres e microsserviços CloudNative; gerenciamento e governança; armazenamento e backup; aplicativos web e móveis

Serviços da AWS: Amazon ECS; Amazon EFS

Resumo

Esse padrão fornece exemplos de código e etapas para criar uma definição de tarefa do Amazon Elastic Container Service (Amazon ECS) que é executada em instâncias do Amazon Elastic Compute Cloud (Amazon EC2) na Amazon Web Services (AWS) Cloud, enquanto usa o Amazon Elastic File System (Amazon EFS) para montar um sistema de arquivos nessas instâncias do EC2. As tarefas do Amazon ECS que usam o Amazon EFS montam automaticamente os sistemas de arquivos que você especifica na definição de tarefa e disponibilizam esses sistemas de arquivos para os contêineres da tarefa em todas as zonas de disponibilidade em uma região da AWS.

Para atender aos seus requisitos de armazenamento persistente e armazenamento compartilhado, você pode usar o Amazon ECS e o Amazon EFS juntos. Por exemplo, você pode usar o Amazon EFS para armazenar dados persistentes de usuários e dados de aplicações para suas aplicações com pares de contêineres ECS ativos e em espera em execução em diferentes zonas de disponibilidade para alta disponibilidade. Você também pode usar o Amazon EFS para armazenar dados compartilhados que podem ser acessados paralelamente por contêineres do ECS e workloads distribuídas.

Para usar o Amazon EFS com o Amazon ECS, você pode adicionar uma ou mais definições de volume a uma definição de tarefa. Uma definição de volume inclui um ID do sistema de arquivos do Amazon EFS, ID do ponto de acesso e uma configuração para autorização do AWS Identity and Access Management (IAM) ou criptografia Transport Layer Security (TLS) em trânsito. Você pode usar as definições de contêiner nas definições de tarefas para especificar os volumes de definição de tarefas que são montados quando o contêiner é executado. Quando uma tarefa que usa um sistema de arquivos do Amazon EFS é executada, o Amazon ECS garante que o sistema de arquivos esteja montado e disponível para os contêineres que precisam acessá-lo.

Pré-requisitos e limitações

Pré-requisitos

Limitações

  • As versões do agente de contêiner Amazon ECS anteriores à 1.35.0 não oferecem suporte a sistemas de arquivos do Amazon EFS para tarefas que usam o tipo de inicialização do EC2.

Arquitetura

O diagrama a seguir mostra um exemplo de uma aplicação que usa o Amazon ECS para criar uma definição de tarefa e montar um sistema de arquivos do Amazon EFS em instâncias do EC2 em contêineres do ECS.

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

O diagrama mostra o seguinte fluxo de trabalho:

  1. Criar um sistema de arquivos do Amazon EFS.

  2. Crie uma definição de tarefa com um contêiner.

  3. Configure as instâncias do contêiner para montar o sistema de arquivos do Amazon EFS. As definições de tarefa referenciam montagens de volume de modo que a instância de contêiner possa usar o sistema de arquivos Amazon EFS. As tarefas do ECS têm acesso ao mesmo sistema de arquivos do Amazon EFS, independentemente da instância de contêiner em que essas tarefas foram criadas.

  4. Crie um serviço Amazon ECS com três instâncias da definição de tarefa.

Pilha de tecnologia

  • Amazon EC2

  • Amazon ECS

  • Amazon EFS

Ferramentas

  • Amazon EC2: o Amazon Elastic Compute Cloud (Amazon EC2) oferece capacidade computacional escalável na Nuvem AWS. Você pode usar o Amazon EC2 para iniciar quantos servidores virtuais forem necessários, podendo também aumentar ou diminuir o número de servidores.

  • Amazon ECS: o Amazon Elastic Container Service (Amazon ECS) é um serviço de gerenciamento de contêineres altamente escalável e rápido para execução, interrupção e gerenciamento de contêineres em um cluster. Você pode executar tarefas e serviços em uma infraestrutura com tecnologia gerenciada pelo AWS Fargate. Como alternativa, para ter mais controle da infraestrutura, é possível executar tarefas e serviços em um cluster de instâncias do EC2 que você gerencia.

  • Amazon EFS: o Amazon Elastic File System (Amazon EFS) fornece um sistema de arquivos NFS elástico simples, escalável, totalmente gerenciável e pronto para uso com serviços de Nuvem AWS e atributos on-premises.

  • AWS CLI: o AWS Command Line Interface (AWS CLI) é uma ferramenta de código aberto para interagir com serviços da AWS por meio de comandos em seu shell de linha de comando. Com configuração mínima, você pode executar comandos da AWS CLI que implementam funcionalidade equivalente àquela fornecida pelo Console de Gerenciamento da AWS baseado em navegador a partir de um prompt de comando.

Épicos

TarefaDescriçãoHabilidades necessárias
Crie um sistema de arquivos do Amazon EFS usando o Console de Gerenciamento da AWS.
  1. Crie um sistema de arquivos do Amazon EFS e escolha a VPC que inclui seus contêineres. Observação: se você usa uma VPC diferente, configure uma conexão de emparelhamento da VPC.

  2. Anote o ID do sistema de arquivos.

AWS DevOps
TarefaDescriçãoHabilidades necessárias
Crie uma definição de tarefa usando um sistema de arquivos do Amazon EFS.

Crie uma definição de tarefa usando o novo console do Amazon ECS ou o console clássico do Amazon ECS com as seguintes configurações:

  • Se você usar o novo console, escolha instâncias do Amazon EC2 para o ambiente de aplicativos. Se você usa o console clássico, escolha EC2 como o tipo de lançamento.

  • Adicione um volume. Insira um nome para o volume, escolha EFS para o tipo de volume e, em seguida, escolha a ID do sistema de arquivos que você anotou anteriormente. Para o diretório raiz, escolha o caminho do sistema de arquivos do Amazon EFS que você deseja hospedar no host de contêineres do Amazon ECS.

AWS DevOps
Crie uma definição de tarefa usando a AWS CLI.
  1. Para criar um modelo JSON com espaços reservados para parâmetros de entrada para a definição de tarefa, execute o seguinte comando:

    aws ecs register-task-definition --generate-cli-skeleton
  2. Execute o seguinte comando para criar a definição de tarefa com o modelo JSON:

    aws ecs register-task-definition --cli-input-json file://<path_to_your_json_file>
  3. Insira os parâmetros de entrada em seu modelo JSON com base no arquivo task_definition_parameters.json (anexado). Observação: para obter mais informações sobre parâmetros de entrada, consulte Parâmetros de definição de tarefas (documentação do Amazon ECS) e register-task-definition(AWS CLI Command Reference).

AWS DevOps

Recursos relacionados

Anexos

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip